Survivalcraft API 1.8.2.3 v1.8.2.3
Survivalcraft 2.4
载入中...
搜索中...
未找到
FenceGateElectricElement.cs
浏览该文件的文档.
1namespace Game {
4
5 public bool m_needsReset;
6
7 public float m_voltage;
8
9 public FenceGateElectricElement(SubsystemElectricity subsystemElectricity, CellFace cellFace) : base(subsystemElectricity, cellFace) {
11 m_needsReset = true;
12 }
13
14 public override bool Simulate() {
16 float voltage = CalculateHighInputsCount() > 0 ? 1 : 0;
17 if (IsSignalHigh(voltage) != IsSignalHigh(m_voltage)) {
19 }
20 m_voltage = voltage;
21 if (!IsSignalHigh(m_voltage)) {
22 m_needsReset = false;
23 }
24 if (!m_needsReset) {
25 if (num >= 10) {
27 CellFace cellFace = CellFaces[0];
28 int data = Terrain.ExtractData(
29 SubsystemElectricity.SubsystemTerrain.Terrain.GetCellValue(cellFace.X, cellFace.Y, cellFace.Z)
30 );
31 SubsystemElectricity.Project.FindSubsystem<SubsystemFenceGateBlockBehavior>(true)
32 .OpenCloseGate(cellFace.X, cellFace.Y, cellFace.Z, !FenceGateBlock.GetOpen(data));
33 }
34 }
35 else {
36 SubsystemElectricity.QueueElectricElementForSimulation(this, SubsystemElectricity.CircuitStep + 10 - num);
37 }
38 }
39 return false;
40 }
41 }
42}
SubsystemElectricity SubsystemElectricity
static bool IsSignalHigh(float voltage)
ElectricElement(SubsystemElectricity subsystemElectricity, IEnumerable< CellFace > cellFaces)
ReadOnlyList< CellFace > CellFaces
static bool GetOpen(int data)
FenceGateElectricElement(SubsystemElectricity subsystemElectricity, CellFace cellFace)
static int ExtractData(int value)