Survivalcraft API 1.8.2.3 v1.8.2.3
Survivalcraft 2.4
载入中...
搜索中...
未找到
TruthTableCircuitElectricElement.cs
浏览该文件的文档.
1namespace Game {
4
5 public float m_voltage;
6
7 public TruthTableCircuitElectricElement(SubsystemElectricity subsystemElectricity, CellFace cellFace) :
8 base(subsystemElectricity, cellFace) =>
9 m_subsystemTruthTableCircuitBlockBehavior = subsystemElectricity.Project.FindSubsystem<SubsystemTruthTableCircuitBlockBehavior>(true);
10
11 public override float GetOutputVoltage(int face) => m_voltage;
12
13 public override bool Simulate() {
14 float voltage = m_voltage;
15 int num = 0;
16 int rotation = Rotation;
17 foreach (ElectricConnection connection in Connections) {
18 if (connection.ConnectorType != ElectricConnectorType.Output
19 && connection.NeighborConnectorType != 0) {
21 CellFaces[0].Face,
22 rotation,
23 connection.ConnectorFace
24 );
25 if (connectorDirection.HasValue) {
26 if (connectorDirection == ElectricConnectorDirection.Top) {
28 num |= 1;
29 }
30 }
31 else if (connectorDirection == ElectricConnectorDirection.Right) {
33 num |= 2;
34 }
35 }
36 else if (connectorDirection == ElectricConnectorDirection.Bottom) {
38 num |= 4;
39 }
40 }
41 else if (connectorDirection == ElectricConnectorDirection.Left
43 num |= 8;
44 }
45 }
46 }
47 }
49 m_voltage = blockData != null ? blockData.Data[num] / 15f : 0f;
50 return m_voltage != voltage;
51 }
52 }
53}
ElectricConnectorType ConnectorType
ElectricConnectorType NeighborConnectorType
static bool IsSignalHigh(float voltage)
virtual float GetOutputVoltage(int face)
List< ElectricConnection > Connections
ReadOnlyList< CellFace > CellFaces
RotateableElectricElement(SubsystemElectricity subsystemElectricity, CellFace cellFace)
static ? ElectricConnectorDirection GetConnectorDirection(int mountingFace, int rotation, int connectorFace)
TruthTableCircuitElectricElement(SubsystemElectricity subsystemElectricity, CellFace cellFace) override float GetOutputVoltage(int face)
SubsystemTruthTableCircuitBlockBehavior m_subsystemTruthTableCircuitBlockBehavior