16 public DoorBlock(
string modelName,
float pivotDistance) {
24 for (
int i = 0; i < 16; i++) {
28 float num = !rightHanded ? 1 : -1;
41 boneAbsoluteTransform * identity,
49 boundingBox.Max.Y = 1f;
121 else if (num2 ==
MathUtils.
Max(num, num2, num3, num4)) {
124 else if (num3 ==
MathUtils.
Max(num, num2, num3, num4)) {
127 else if (num4 ==
MathUtils.
Max(num, num2, num3, num4)) {
131 int num6 = raycastResult.CellFace.X + point.
X;
132 int y = raycastResult.CellFace.Y + point.
Y;
133 int num7 = raycastResult.CellFace.Z + point.
Z;
134 bool rightHanded =
true;
156 result.CellFace = raycastResult.
CellFace;
183 if (face == hingeFace) {
198 public static bool GetOpen(
int data) => (data & 4) != 0;
202 public static int SetRotation(
int data,
int rotation) => (data & -4) | (rotation & 3);
204 public static int SetOpen(
int data,
bool open) {
225 int num = rotation - 1 < 0 ? 3 : rotation - 1;
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)
virtual bool IsNonAttachable(int value)
int DefaultShadowStrength
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 void Initialize()
override BoundingBox[] GetCustomCollisionBoxes(SubsystemTerrain terrain, int value)
BlockMesh m_standaloneBlockMesh
BlockMesh[] m_blockMeshesByData
static int SetOpen(int data, bool open)
static bool GetRightHanded(int data)
static int GetRotation(int data)
override void DrawBlock(PrimitivesRenderer3D primitivesRenderer, int value, Color color, float size, ref Matrix matrix, DrawBlockEnvironmentData environmentData)
override BlockPlacementData GetPlacementValue(SubsystemTerrain subsystemTerrain, ComponentMiner componentMiner, int value, TerrainRaycastResult raycastResult)
方块放置方向
override bool IsMovableByPiston(int value, int pistonFace, int y, out bool isEnd)
static int SetRightHanded(int data, bool rightHanded)
ElectricConnectorType? GetConnectorType(SubsystemTerrain terrain, int value, int face, int connectorFace, int x, int y, int z)
ElectricElement CreateElectricElement(SubsystemElectricity subsystemElectricity, int value, int x, int y, int z)
BoundingBox[][] m_collisionBoxesByData
static int SetRotation(int data, int rotation)
static bool IsBottomPart(Terrain terrain, int x, int y, int z)
static bool GetOpen(int data)
override bool IsHeatBlocker(int value)
static int GetHingeFace(int data)
int GetConnectionMask(int value)
static bool IsTopPart(Terrain terrain, int x, int y, int z)
override void GenerateTerrainVertices(BlockGeometryGenerator generator, TerrainGeometry geometry, int value, int x, int y, int z)
override int GetShadowStrength(int value)
DoorBlock(string modelName, float pivotDistance)
static ? ElectricConnectorDirection GetConnectorDirection(int mountingFace, int rotation, int connectorFace)
TerrainGeometrySubset SubsetAlphaTest
TerrainGeometrySubset SubsetOpaque
static int ExtractContents(int value)
static int ReplaceData(int value, int data)
virtual int GetCellValue(int x, int y, int z)
virtual int GetCellContents(int x, int y, int z)
static int ReplaceContents(int value, int contents)
方块值的最低10位,替换为目标Content
static int ExtractData(int value)
ElectricConnectorDirection
static Matrix CreateFromQuaternion(Quaternion quaternion)
static Matrix CreateTranslation(float x, float y, float z)
static readonly Matrix Identity
static Matrix CreateRotationY(float radians)
static Matrix CreateScale(float scale)
static readonly Vector3 UnitX
static readonly Vector3 UnitZ
static float Dot(Vector3 v1, Vector3 v2)
static int OppositeFace(int face)
static Point3 FaceToPoint3(int face)