Survivalcraft API 1.8.2.3 v1.8.2.3
Survivalcraft 2.4
载入中...
搜索中...
未找到
AxeBlock.cs
浏览该文件的文档.
1using Engine;
3
4namespace Game {
5 public abstract class AxeBlock : Block {
7
8 public int m_headTextureSlot;
9
11
12 public AxeBlock(int handleTextureSlot, int headTextureSlot) {
13 m_handleTextureSlot = handleTextureSlot;
14 m_headTextureSlot = headTextureSlot;
15 }
16
17 public override void Initialize() {
18 Model model = ContentManager.Get<Model>("Models/Axe");
19 Matrix boneAbsoluteTransform = BlockMesh.GetBoneAbsoluteTransform(model.FindMesh("Handle").ParentBone);
20 Matrix boneAbsoluteTransform2 = BlockMesh.GetBoneAbsoluteTransform(model.FindMesh("Head").ParentBone);
21 BlockMesh blockMesh = new();
22 blockMesh.AppendModelMeshPart(
23 model.FindMesh("Handle").MeshParts[0],
24 boneAbsoluteTransform * Matrix.CreateTranslation(0f, -0.5f, 0f),
25 false,
26 false,
27 false,
28 false,
30 );
32 BlockMesh blockMesh2 = new();
33 blockMesh2.AppendModelMeshPart(
34 model.FindMesh("Head").MeshParts[0],
35 boneAbsoluteTransform2 * Matrix.CreateTranslation(0f, -0.5f, 0f),
36 false,
37 false,
38 false,
39 false,
41 );
43 m_standaloneBlockMesh.AppendBlockMesh(blockMesh);
44 m_standaloneBlockMesh.AppendBlockMesh(blockMesh2);
45 base.Initialize();
46 }
47
48 public override void GenerateTerrainVertices(BlockGeometryGenerator generator, TerrainGeometry geometry, int value, int x, int y, int z) { }
49
50 public override void DrawBlock(PrimitivesRenderer3D primitivesRenderer,
51 int value,
52 Color color,
53 float size,
54 ref Matrix matrix,
55 DrawBlockEnvironmentData environmentData) {
56 BlocksManager.DrawMeshBlock(primitivesRenderer, m_standaloneBlockMesh, color, 2f * size, ref matrix, environmentData);
57 }
58 }
59}
ModelMesh FindMesh(string name, bool throwIfNotFound=true)
ReadOnlyList< ModelMeshPart > MeshParts
AxeBlock(int handleTextureSlot, int headTextureSlot)
override void Initialize()
override void DrawBlock(PrimitivesRenderer3D primitivesRenderer, int value, Color color, float size, ref Matrix matrix, DrawBlockEnvironmentData environmentData)
BlockMesh m_standaloneBlockMesh
override void GenerateTerrainVertices(BlockGeometryGenerator generator, TerrainGeometry geometry, int value, int x, int y, int z)
virtual void TransformTextureCoordinates(Matrix matrix, int facesMask=-1)
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 Color White
static Matrix CreateTranslation(float x, float y, float z)