Survivalcraft API 1.8.2.3 v1.8.2.3
Survivalcraft 2.4
载入中...
搜索中...
未找到
PickaxeBlock.cs
浏览该文件的文档.
1using Engine;
3
4namespace Game {
5 public abstract class PickaxeBlock : Block {
7
8 public int m_headTextureSlot;
9
11
12 public PickaxeBlock(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/Pickaxe");
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
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)
override void DrawBlock(PrimitivesRenderer3D primitivesRenderer, int value, Color color, float size, ref Matrix matrix, DrawBlockEnvironmentData environmentData)
PickaxeBlock(int handleTextureSlot, int headTextureSlot)
override void Initialize()
BlockMesh m_standaloneBlockMesh
override void GenerateTerrainVertices(BlockGeometryGenerator generator, TerrainGeometry geometry, int value, int x, int y, int z)
static Color White
static Matrix CreateTranslation(float x, float y, float z)