27 for (
int i = 0; i < 6; i++) {
31 radians = i * (float)Math.PI / 2f;
35 radians = -(float)Math.PI / 2f;
39 radians = (float)Math.PI / 2f;
42 for (
int j = 0; j < 4; j++) {
43 float radians2 = -j * (float)Math.PI / 2f;
44 int num = (i << 2) + j;
54 boneAbsoluteTransform * m,
67 boneAbsoluteTransform * m2,
125 else if (num2 ==
MathUtils.
Max(num, num2, num3, num4)) {
128 else if (num3 ==
MathUtils.
Max(num, num2, num3, num4)) {
131 else if (num4 ==
MathUtils.
Max(num, num2, num3, num4)) {
137 num5 |= raycastResult.CellFace.Face << 2;
140 result.CellFace = raycastResult.
CellFace;
151 public static int SetRotation(
int data,
int rotation) => (data & -4) | (rotation & 3);
ModelMesh FindMesh(string name, bool throwIfNotFound=true)
ReadOnlyList< ModelMeshPart > MeshParts
static int Max(int x1, int x2)
virtual void GenerateMeshVertices(Block block, int x, int y, int z, BlockMesh blockMesh, Color color, Matrix? matrix, TerrainGeometrySubset subset)
virtual void GenerateWireVertices(int value, int x, int y, int z, int mountingFace, float centerBoxSize, Vector2 centerOffset, TerrainGeometrySubset subset)
static Matrix GetBoneAbsoluteTransform(ModelBone modelBone)
static void DrawMeshBlock(PrimitivesRenderer3D primitivesRenderer, BlockMesh blockMesh, float size, ref Matrix matrix, DrawBlockEnvironmentData environmentData)
ComponentCreatureModel ComponentCreatureModel
ComponentCreature ComponentCreature
static object Get(Type type, string name)
override BlockPlacementData GetPlacementValue(SubsystemTerrain subsystemTerrain, ComponentMiner componentMiner, int value, TerrainRaycastResult raycastResult)
方块放置方向
override int GetFace(int value)
static int GetRotation(int data)
BlockMesh m_standaloneBlockMesh
RotateableMountedElectricElementBlock(string modelName, string meshName, float centerBoxSize)
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 GenerateTerrainVertices(BlockGeometryGenerator generator, TerrainGeometry geometry, int value, int x, int y, int z)
static int SetRotation(int data, int rotation)
BlockMesh[] m_blockMeshes
BoundingBox[][] m_collisionBoxes
override void Initialize()
TerrainGeometrySubset SubsetOpaque
static int MakeBlockValue(int contents)
static int ExtractData(int value)
static Matrix CreateRotationX(float radians)
static Matrix CreateFromQuaternion(Quaternion quaternion)
static Matrix CreateTranslation(float x, float y, float z)
static Matrix CreateRotationZ(float radians)
static Matrix CreateRotationY(float radians)
static readonly Vector2 Zero
static readonly Vector3 UnitX
static readonly Vector3 UnitZ
static float Dot(Vector3 v1, Vector3 v2)