Files
Enigmos/Modules/ControllingModules/SinglePoleSingleThrowSwitchModule.cs
2024-07-10 15:27:36 +01:00

41 lines
1022 B
C#

using Nocturnis.Enigmos.Modules;
using Nocturnis.Enigmos.Ports;
using Nocturnis.Enigmos.Ports.DataPorts.Directions;
using Nocturnis.GlobalManagement.Constants;
using Nocturnis.GlobalManagement.Controls;
namespace Enigmos.Modules.ControllingModules;
public abstract partial class SinglePoleSingleThrowSwitchModule : PiplineModule, ITerminalModule
{
public IDataInPort[] DataInPorts { get; set; } = Array.Empty<IDataInPort>();
public void Drain()
{
foreach (IDataInPort ip in DataInPorts)
_ = ip.GetData.Get;
}
public bool Finished { get; set; }
public override void Init()
{
base.Init();
this.DataInInit("Input", 1);
this.SignalInInit("SignalIn", 1);
this.SignalOutInit("SignalOut", 1);
DataInPorts[0].SetDataType(EnigmosConstant.DataPortTypes.Bit);
PostInit();
}
public override void Execute()
{
Visited = true;
if (DataInPorts[0].GetData.Get!.Bit && SignalOutPorts[0].Connected)
SignalOutPorts[0].Route();
else
EnigmosControl.Instance.RootModule.ActionFinished = true;
}
}