Survivalcraft API 1.8.2.3 v1.8.2.3
Survivalcraft 2.4
载入中...
搜索中...
未找到
AdjustableDelayGateBlock.cs
浏览该文件的文档.
1namespace Game {
3 public static int Index = 224;
4
5 public AdjustableDelayGateBlock() : base("Models/Gates", "AdjustableDelayGate", 0.375f) { }
6
7 public override void GetDropValues(SubsystemTerrain subsystemTerrain,
8 int oldValue,
9 int newValue,
10 int toolLevel,
11 List<BlockDropValue> dropValues,
12 out bool showDebris) {
13 showDebris = true;
14 if (toolLevel >= RequiredToolLevel) {
15 int delay = GetDelay(Terrain.ExtractData(oldValue));
16 int data = SetDelay(0, delay);
17 dropValues.Add(new BlockDropValue { Value = Terrain.MakeBlockValue(224, 0, data), Count = 1 });
18 }
19 }
20
21 public override ElectricElement CreateElectricElement(SubsystemElectricity subsystemElectricity, int value, int x, int y, int z) =>
22 new AdjustableDelayGateElectricElement(subsystemElectricity, new CellFace(x, y, z, GetFace(value)));
23
25 int value,
26 int face,
27 int connectorFace,
28 int x,
29 int y,
30 int z) {
31 int data = Terrain.ExtractData(value);
32 if (GetFace(value) == face) {
34 GetFace(value),
35 GetRotation(data),
36 connectorFace
37 );
38 if (connectorDirection == ElectricConnectorDirection.Bottom) {
39 return ElectricConnectorType.Input;
40 }
41 if (connectorDirection == ElectricConnectorDirection.Top
42 || connectorDirection == ElectricConnectorDirection.In) {
43 return ElectricConnectorType.Output;
44 }
45 }
46 return null;
47 }
48
49 public static int GetDelay(int data) => (data >> 5) & 0xFF;
50
51 public static int SetDelay(int data, int delay) => (data & -8161) | ((delay & 0xFF) << 5);
52 }
53}
static int SetDelay(int data, int delay)
override ElectricElement CreateElectricElement(SubsystemElectricity subsystemElectricity, 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)
override? ElectricConnectorType GetConnectorType(SubsystemTerrain terrain, int value, int face, int connectorFace, int x, int y, int z)
int RequiredToolLevel
RotateableMountedElectricElementBlock(string modelName, string meshName, float centerBoxSize)
static ? ElectricConnectorDirection GetConnectorDirection(int mountingFace, int rotation, int connectorFace)
static int MakeBlockValue(int contents)
static int ExtractData(int value)