26 public AttachedSignBlock(
string modelName,
int coloredTextureSlot,
int postedSignBlockIndex) {
36 for (
int i = 0; i < 4; i++) {
37 float radians = (float)Math.PI / 2f * i;
44 boneAbsoluteTransform * m,
65 boneAbsoluteTransform2 * m,
97 List<BlockDropValue> dropValues,
98 out
bool showDebris) {
110 if (color.HasValue) {
127 if (color.HasValue) {
170 if (color2.HasValue) {
228 public static int GetFace(
int data) => data & 3;
230 public static int SetFace(
int data,
int face) => (data & -4) | (face & 3);
233 if ((data & 4) != 0) {
234 return (data >> 3) & 0xF;
240 if (color.HasValue) {
241 return (data & -125) | 4 | ((color.Value & 0xF) << 3);
249 return pistonFace ==
GetFace(data);
ModelMesh FindMesh(string name, bool throwIfNotFound=true)
ReadOnlyList< ModelMeshPart > MeshParts
static int GetFace(int data)
BlockMesh[] m_surfaceMeshes
int GetConnectionMask(int value)
int? GetPaintColor(int value)
static ? int GetColor(int data)
override Vector3 GetSignSurfaceNormal(int data)
static int SetColor(int data, int? color)
override void Initialize()
override BlockMesh GetSignSurfaceBlockMesh(int data)
override void GetDropValues(SubsystemTerrain subsystemTerrain, int oldValue, int newValue, int toolLevel, List< BlockDropValue > dropValues, out bool showDebris)
BlockMesh[] m_coloredBlockMeshes
override BlockDebrisParticleSystem CreateDebrisParticleSystem(SubsystemTerrain subsystemTerrain, Vector3 position, int value, float strength)
BlockMesh m_standaloneColoredBlockMesh
BlockMesh[] m_blockMeshes
override void DrawBlock(PrimitivesRenderer3D primitivesRenderer, int value, Color color, float size, ref Matrix matrix, DrawBlockEnvironmentData environmentData)
AttachedSignBlock(string modelName, int coloredTextureSlot, int postedSignBlockIndex)
int Paint(SubsystemTerrain terrain, int value, int? color)
override void GenerateTerrainVertices(BlockGeometryGenerator generator, TerrainGeometry geometry, int value, int x, int y, int z)
BlockMesh m_standaloneBlockMesh
int m_postedSignBlockIndex
override BlockPlacementData GetPlacementValue(SubsystemTerrain subsystemTerrain, ComponentMiner componentMiner, int value, TerrainRaycastResult raycastResult)
方块放置方向
override BoundingBox[] GetCustomCollisionBoxes(SubsystemTerrain terrain, int value)
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_collisionBoxes
Vector3[] m_surfaceNormals
static int SetFace(int data, int face)
override bool IsMovableByPiston(int value, int pistonFace, int y, out bool isEnd)
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)
float DestructionDebrisScale
virtual BoundingBox CalculateBoundingBox()
static Matrix GetBoneAbsoluteTransform(ModelBone modelBone)
virtual void AppendModelMeshPart(ModelMeshPart meshPart, Matrix matrix, bool makeEmissive, bool flipWindingOrder, bool doubleSided, bool flipNormals, Color color)
static void DrawMeshBlock(PrimitivesRenderer3D primitivesRenderer, BlockMesh blockMesh, float size, ref Matrix matrix, DrawBlockEnvironmentData environmentData)
static object Get(Type type, string name)
static int SetColor(int data, int? color)
static ? ElectricConnectorDirection GetConnectorDirection(int mountingFace, int rotation, int connectorFace)
Color GetColor(int index)
TerrainGeometrySubset SubsetOpaque
static int ReplaceData(int value, int data)
static int MakeBlockValue(int contents)
static int ExtractData(int value)
static Matrix CreateTranslation(float x, float y, float z)
static Matrix CreateRotationY(float radians)
static readonly Vector2 Zero