public override BlockPlacementData GetDigValue(SubsystemTerrain subsystemTerrain, ComponentMiner componentMiner, int value, int toolValue, TerrainRaycastResult raycastResult) { BlockPlacementData result = default(BlockPlacementData); result.CellFace = raycastResult.CellFace; return(result); }
public static BlockPlacementData GetPlacementValue(SubsystemTerrain subsystemTerrain, ComponentMiner componentMiner, int value, TerrainRaycastResult raycastResult) { BlockPlacementData result = default(BlockPlacementData); int realdata = 0;//位置修正 Vector3 forward = Matrix.CreateFromQuaternion(componentMiner.ComponentCreature.ComponentCreatureModel.EyeRotation).Forward; float num = Vector3.Dot(forward, Vector3.UnitZ); float num2 = Vector3.Dot(forward, Vector3.UnitX); float num3 = Vector3.Dot(forward, -Vector3.UnitZ); float num4 = Vector3.Dot(forward, -Vector3.UnitX); if (num == MathUtils.Max(num, num2, num3, num4)) { realdata = 2; } else if (num2 == MathUtils.Max(num, num2, num3, num4)) { realdata = 3; } else if (num3 == MathUtils.Max(num, num2, num3, num4)) { realdata = 0; } else if (num4 == MathUtils.Max(num, num2, num3, num4)) { realdata = 1; } result.Value = ILibrary.setDirection(value, realdata);//4*4表示方块位置,朝向 result.CellFace = raycastResult.CellFace; return(result); }
public virtual BlockPlacementData GetPlacementValue(SubsystemTerrain subsystemTerrain, ComponentMiner componentMiner, int value, TerrainRaycastResult raycastResult) { BlockPlacementData result = default; result.Value = value; result.CellFace = raycastResult.CellFace; return(result); }