Survivalcraft API 1.8.2.3 v1.8.2.3
Survivalcraft 2.4
载入中...
搜索中...
未找到
CactusBlock.cs
浏览该文件的文档.
1using Engine;
3
4namespace Game {
5 public class CactusBlock : Block {
6 public static int Index = 127;
7
8 public BlockMesh m_blockMesh = new();
9
11
12 public override void Initialize() {
13 Model model = ContentManager.Get<Model>("Models/Cactus");
14 Matrix boneAbsoluteTransform = BlockMesh.GetBoneAbsoluteTransform(model.FindMesh("Cactus").ParentBone);
15 m_blockMesh.AppendModelMeshPart(
16 model.FindMesh("Cactus").MeshParts[0],
17 boneAbsoluteTransform * Matrix.CreateTranslation(0.5f, 0f, 0.5f),
18 false,
19 false,
20 false,
21 false,
23 );
24 m_standaloneBlockMesh.AppendModelMeshPart(
25 model.FindMesh("Cactus").MeshParts[0],
26 boneAbsoluteTransform * Matrix.CreateTranslation(0f, -0.5f, 0f),
27 false,
28 false,
29 false,
30 false,
32 );
33 base.Initialize();
34 }
35
36 public override void GenerateTerrainVertices(BlockGeometryGenerator generator, TerrainGeometry geometry, int value, int x, int y, int z) {
37 generator.GenerateMeshVertices(
38 this,
39 x,
40 y,
41 z,
44 null,
45 geometry.SubsetAlphaTest
46 );
47 }
48
49 public override void DrawBlock(PrimitivesRenderer3D primitivesRenderer,
50 int value,
51 Color color,
52 float size,
53 ref Matrix matrix,
54 DrawBlockEnvironmentData environmentData) {
55 BlocksManager.DrawMeshBlock(primitivesRenderer, m_standaloneBlockMesh, color, size, ref matrix, environmentData);
56 }
57
58 public override bool ShouldAvoid(int value) => true;
59
60 public override bool IsMovableByPiston(int value, int pistonFace, int y, out bool isEnd) {
61 isEnd = false;
62 return false;
63 }
64 }
65}
ModelMesh FindMesh(string name, bool throwIfNotFound=true)
ReadOnlyList< ModelMeshPart > MeshParts
virtual void GenerateMeshVertices(Block block, int x, int y, int z, BlockMesh blockMesh, Color color, Matrix? matrix, TerrainGeometrySubset subset)
static Matrix GetBoneAbsoluteTransform(ModelBone modelBone)
static void DrawMeshBlock(PrimitivesRenderer3D primitivesRenderer, BlockMesh blockMesh, float size, ref Matrix matrix, DrawBlockEnvironmentData environmentData)
override bool IsMovableByPiston(int value, int pistonFace, int y, out bool isEnd)
BlockMesh m_standaloneBlockMesh
override void Initialize()
override bool ShouldAvoid(int value)
override void GenerateTerrainVertices(BlockGeometryGenerator generator, TerrainGeometry geometry, int value, int x, int y, int z)
override void DrawBlock(PrimitivesRenderer3D primitivesRenderer, int value, Color color, float size, ref Matrix matrix, DrawBlockEnvironmentData environmentData)
static object Get(Type type, string name)
TerrainGeometrySubset SubsetAlphaTest
static Color White
static Matrix CreateTranslation(float x, float y, float z)