Survivalcraft API 1.8.2.3 v1.8.2.3
Survivalcraft 2.4
载入中...
搜索中...
未找到
SnowBlock.cs
浏览该文件的文档.
1using Engine;
3
4namespace Game {
5 public class SnowBlock : CubeBlock {
6 public static int Index = 61;
7
8 const float m_height = 0.125f;
9
10 public BoundingBox[] m_collisionBoxes = [new(new Vector3(0f, 0f, 0f), new Vector3(1f, m_height, 1f))];
11
12 public override bool IsFaceTransparent(SubsystemTerrain subsystemTerrain, int face, int value) => face != 5;
13
14 public override void GenerateTerrainVertices(BlockGeometryGenerator generator, TerrainGeometry geometry, int value, int x, int y, int z) {
15 generator.GenerateCubeVertices(
16 this,
17 value,
18 x,
19 y,
20 z,
30 -1,
31 geometry.OpaqueSubsetsByFace
32 );
33 }
34
35 public override void DrawBlock(PrimitivesRenderer3D primitivesRenderer,
36 int value,
37 Color color,
38 float size,
39 ref Matrix matrix,
40 DrawBlockEnvironmentData environmentData) {
42 primitivesRenderer,
43 value,
44 new Vector3(size),
46 ref matrix,
47 color,
48 color,
49 environmentData
50 );
51 }
52
53 public override void GetDropValues(SubsystemTerrain subsystemTerrain,
54 int oldValue,
55 int newValue,
56 int toolLevel,
57 List<BlockDropValue> dropValues,
58 out bool showDebris) {
59 showDebris = true;
60 if (toolLevel >= RequiredToolLevel) {
61 int num = Random.Int(1, 3);
62 for (int i = 0; i < num; i++) {
63 dropValues.Add(new BlockDropValue { Value = Terrain.MakeBlockValue(85), Count = 1 });
64 }
65 }
66 }
67
68 public override BoundingBox[] GetCustomCollisionBoxes(SubsystemTerrain terrain, int value) => m_collisionBoxes;
69 }
70}
Engine.Vector3 Vector3
virtual void GenerateCubeVertices(Block block, int value, int x, int y, int z, Color color, TerrainGeometrySubset[] subsetsByFace)
int RequiredToolLevel
static void DrawCubeBlock(PrimitivesRenderer3D primitivesRenderer, int value, Vector3 size, ref Matrix matrix, Color color, Color topColor, DrawBlockEnvironmentData environmentData)
static int Index
override bool IsFaceTransparent(SubsystemTerrain subsystemTerrain, int face, int value)
override void DrawBlock(PrimitivesRenderer3D primitivesRenderer, int value, Color color, float size, ref Matrix matrix, DrawBlockEnvironmentData environmentData)
override BoundingBox[] GetCustomCollisionBoxes(SubsystemTerrain terrain, int value)
override void GenerateTerrainVertices(BlockGeometryGenerator generator, TerrainGeometry geometry, int value, int x, int y, int z)
override void GetDropValues(SubsystemTerrain subsystemTerrain, int oldValue, int newValue, int toolLevel, List< BlockDropValue > dropValues, out bool showDebris)
BoundingBox[] m_collisionBoxes
const float m_height
TerrainGeometrySubset[] OpaqueSubsetsByFace
static int MakeBlockValue(int contents)
static Color White