本文整理汇总了C#中Sandbox.Game.Entities.MyVoxelBase.GetOrePriority方法的典型用法代码示例。如果您正苦于以下问题:C# MyVoxelBase.GetOrePriority方法的具体用法?C# MyVoxelBase.GetOrePriority怎么用?C# MyVoxelBase.GetOrePriority使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Sandbox.Game.Entities.MyVoxelBase
的用法示例。
在下文中一共展示了MyVoxelBase.GetOrePriority方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: TryDrillVoxels
protected virtual bool TryDrillVoxels(MyVoxelBase voxels, Vector3D hitPosition, bool collectOre, bool onlyCheck, bool applyDamagedMaterial)
{
const float DISCARDING_MULTIPLIER = 3.0f;
if (voxels.GetOrePriority() == MyVoxelConstants.PRIORITY_IGNORE_EXTRACTION) return false;
bool somethingDrilled = false;
var bsphere = new MyShapeSphere()
{
Center = m_cutOut.Sphere.Center,
Radius = (float)m_cutOut.Sphere.Radius
};
if (!collectOre) bsphere.Radius *= DISCARDING_MULTIPLIER;
float voxelsCountInPercent;
MyVoxelMaterialDefinition material;
MyVoxelGenerator.CutOutShapeWithProperties(voxels, bsphere,
out voxelsCountInPercent, out material, m_drilledMaterialBuffer, Sync.IsServer, onlyCheck, applyDamagedMaterial);
foreach (var entry in m_drilledMaterialBuffer)
{
somethingDrilled = (!collectOre || TryHarvestOreMaterial(entry.Key, hitPosition, entry.Value, onlyCheck)) || somethingDrilled;
if (somethingDrilled && !onlyCheck)
{
MyDebris.Static.CreateDirectedDebris(hitPosition,
MyUtils.GetRandomVector3Normalized(), 0.1f, 1, 0, MathHelper.Pi, 5, 1, 0.15f, entry.Key);
}
}
m_drilledMaterialBuffer.Clear();
return somethingDrilled;
}