28 public PostedSignBlock(
string modelName,
int coloredTextureSlot,
int attachedSignBlockIndex) {
39 for (
int i = 0; i < 16; i++) {
49 boneAbsoluteTransform * m,
59 boneAbsoluteTransform2 * m,
82 boneAbsoluteTransform3 * m,
93 textureCoordinates.Y = 1f - textureCoordinates.
Y;
94 m_surfaceMeshes[i].Vertices.Array[j].TextureCoordinates = textureCoordinates;
133 return base.GetCategory(value);
152 List<BlockDropValue> dropValues,
153 out
bool showDebris) {
165 if (color.HasValue) {
182 if (color.HasValue) {
225 if (color2.HasValue) {
262 result.CellFace = raycastResult.
CellFace;
266 float num =
float.MinValue;
268 for (
int i = 0; i < 8; i++) {
278 result.CellFace = raycastResult.
CellFace;
316 public static int SetDirection(
int data,
int direction) => (data & -8) | (direction & 7);
329 public static int SetVariant(
int data,
int variant) => (data & -16) | (variant & 0xF);
332 if ((data & 0x10) != 0) {
333 return (data >> 5) & 0xF;
339 if (color.HasValue) {
340 return (data & -497) | 0x10 | ((color.Value & 0xF) << 5);
ModelMesh FindMesh(string name, bool throwIfNotFound=true)
ReadOnlyList< ModelMeshPart > MeshParts
static int SetColor(int data, int? color)
static int SetFace(int data, int face)
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)
ComponentCreatureModel ComponentCreatureModel
ComponentCreature ComponentCreature
static object Get(Type type, string name)
static bool GetHanging(int data)
override BlockDebrisParticleSystem CreateDebrisParticleSystem(SubsystemTerrain subsystemTerrain, Vector3 position, int value, float strength)
ElectricConnectorType? GetConnectorType(SubsystemTerrain terrain, int value, int face, int connectorFace, int x, int y, int z)
static int SetVariant(int data, int variant)
override string GetCategory(int value)
int GetConnectionMask(int value)
BlockMesh m_standaloneColoredBlockMesh
static int GetDirection(int data)
override void Initialize()
override BlockMesh GetSignSurfaceBlockMesh(int data)
override IEnumerable< int > GetCreativeValues()
override void DrawBlock(PrimitivesRenderer3D primitivesRenderer, int value, Color color, float size, ref Matrix matrix, DrawBlockEnvironmentData environmentData)
BlockMesh[] m_blockMeshes
int m_attachedSignBlockIndex
static int SetDirection(int data, int direction)
Vector3[] m_surfaceNormals
static int SetColor(int data, int? color)
PostedSignBlock(string modelName, int coloredTextureSlot, int attachedSignBlockIndex)
static int GetVariant(int data)
BlockMesh[] m_coloredBlockMeshes
BlockMesh[] m_surfaceMeshes
override BoundingBox[] GetCustomCollisionBoxes(SubsystemTerrain terrain, int value)
override BlockPlacementData GetPlacementValue(SubsystemTerrain subsystemTerrain, ComponentMiner componentMiner, int value, TerrainRaycastResult raycastResult)
方块放置方向
override void GetDropValues(SubsystemTerrain subsystemTerrain, int oldValue, int newValue, int toolLevel, List< BlockDropValue > dropValues, out bool showDebris)
override string GetDisplayName(SubsystemTerrain subsystemTerrain, int value)
BoundingBox[][] m_collisionBoxes
BlockMesh m_standaloneBlockMesh
override Vector3 GetSignSurfaceNormal(int data)
ElectricElement CreateElectricElement(SubsystemElectricity subsystemElectricity, int value, int x, int y, int z)
override void GenerateTerrainVertices(BlockGeometryGenerator generator, TerrainGeometry geometry, int value, int x, int y, int z)
int Paint(SubsystemTerrain terrain, int value, int? color)
static int SetHanging(int data, bool hanging)
int? GetPaintColor(int value)
static ? int GetColor(int data)
static ? ElectricConnectorDirection GetConnectorDirection(int mountingFace, int rotation, int connectorFace)
string GetName(int index)
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 CreateFromQuaternion(Quaternion quaternion)
static Matrix CreateTranslation(float x, float y, float z)
static Matrix CreateRotationY(float radians)
static Matrix CreateScale(float scale)
static readonly Vector2 Zero
static float Dot(Vector3 v1, Vector3 v2)