19 for (
int i = 0; i < 16; i++) {
34 boneAbsoluteTransform * identity,
90 upsideDown = raycastResult.
HitPoint().
Y - raycastResult.CellFace.Y > 0.5f;
98 rotation = num ==
MathUtils.
Max(num, num2, num3, num4) ? 2 :
101 upsideDown = raycastResult.CellFace.Face == 5;
106 result.CellFace = raycastResult.
CellFace;
115 return base.GetCustomCollisionBoxes(terrain, value);
144 public static bool GetOpen(
int data) => (data & 4) != 0;
148 public static int SetRotation(
int data,
int rotation) => (data & -4) | (rotation & 3);
150 public static int SetOpen(
int data,
bool open) {
ModelMesh FindMesh(string name, bool throwIfNotFound=true)
ReadOnlyList< ModelMeshPart > MeshParts
static int Max(int x1, int x2)
virtual void GenerateShadedMeshVertices(Block block, int x, int y, int z, BlockMesh blockMesh, Color color, Matrix? matrix, int[] facesMap, 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)
static ? ElectricConnectorDirection GetConnectorDirection(int mountingFace, int rotation, int connectorFace)
TerrainGeometrySubset SubsetAlphaTest
static int ReplaceData(int value, int data)
static int ReplaceContents(int value, int contents)
方块值的最低10位,替换为目标Content
static int ExtractData(int value)
static int SetUpsideDown(int data, bool upsideDown)
override BoundingBox[] GetCustomCollisionBoxes(SubsystemTerrain terrain, int value)
static bool GetUpsideDown(int data)
override void GenerateTerrainVertices(BlockGeometryGenerator generator, TerrainGeometry geometry, int value, int x, int y, int z)
override bool IsCollapseSupportBlock(SubsystemTerrain subsystemTerrain, int value)
BlockMesh m_standaloneBlockMesh
static int SetOpen(int data, bool open)
BoundingBox[][] m_collisionBoxesByData
int GetConnectionMask(int value)
BlockMesh[] m_blockMeshesByData
TrapdoorBlock(string modelName)
override BlockPlacementData GetPlacementValue(SubsystemTerrain subsystemTerrain, ComponentMiner componentMiner, int value, TerrainRaycastResult raycastResult)
方块放置方向
ElectricElement CreateElectricElement(SubsystemElectricity subsystemElectricity, int value, int x, int y, int z)
static int GetMountingFace(int data)
static int GetRotation(int data)
static bool GetOpen(int data)
override bool IsMovableByPiston(int value, int pistonFace, int y, out bool isEnd)
override void Initialize()
ElectricConnectorType? GetConnectorType(SubsystemTerrain terrain, int value, int face, int connectorFace, int x, int y, int z)
override void DrawBlock(PrimitivesRenderer3D primitivesRenderer, int value, Color color, float size, ref Matrix matrix, DrawBlockEnvironmentData environmentData)
override bool IsCollapseDestructibleBlock(int value)
static int SetRotation(int data, int rotation)
ElectricConnectorDirection
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 readonly Matrix Identity
static Matrix CreateRotationY(float radians)
static readonly Vector3 UnitX
static readonly Vector3 UnitZ
static float Dot(Vector3 v1, Vector3 v2)
Vector3 HitPoint(float offsetFromSurface=0f)