24 for (
int i = 0; i < 4; i++) {
32 boneAbsoluteTransform * m,
85 result.CellFace = raycastResult.
CellFace;
94 return base.GetCustomCollisionBoxes(terrain, value);
97 public static int GetFace(
int data) => data & 3;
99 public static int SetFace(
int data,
int face) => (data & -4) | (face & 3);
104 return pistonFace ==
GetFace(data);
ModelMesh FindMesh(string name, bool throwIfNotFound=true)
ReadOnlyList< ModelMeshPart > MeshParts
virtual void GenerateMeshVertices(Block block, int x, int y, int z, BlockMesh blockMesh, Color color, Matrix? matrix, TerrainGeometrySubset subset)
static Matrix GetBoneAbsoluteTransform(ModelBone modelBone)
static void DrawMeshBlock(PrimitivesRenderer3D primitivesRenderer, BlockMesh blockMesh, float size, ref Matrix matrix, DrawBlockEnvironmentData environmentData)
static object Get(Type type, string name)
static int GetFace(int data)
BlockMesh m_standaloneBlockMesh
override bool IsMovableByPiston(int value, int pistonFace, int y, out bool isEnd)
override BlockPlacementData GetPlacementValue(SubsystemTerrain subsystemTerrain, ComponentMiner componentMiner, int value, TerrainRaycastResult raycastResult)
方块放置方向
override void GenerateTerrainVertices(BlockGeometryGenerator generator, TerrainGeometry geometry, int value, int x, int y, int z)
override void DrawBlock(PrimitivesRenderer3D primitivesRenderer, int value, Color color, float size, ref Matrix matrix, DrawBlockEnvironmentData environmentData)
override BoundingBox[] GetCustomCollisionBoxes(SubsystemTerrain terrain, int value)
override void Initialize()
BlockMesh[] m_blockMeshesByData
static int SetFace(int data, int face)
LadderBlock(string modelName, float offset)
BoundingBox[][] m_collisionBoxesByData
TerrainGeometrySubset SubsetOpaque
static int MakeBlockValue(int contents)
static int ExtractData(int value)
static Matrix CreateTranslation(float x, float y, float z)
static Matrix CreateRotationY(float radians)