using Enigmos.Modules.SubModules; using Nocturnis.Enigmos.Modules; using Nocturnis.Enigmos.Modules.InterlayerModules; using Nocturnis.Enigmos.Ports; using Nocturnis.Enigmos.Ports.SignalPorts.Directions; namespace Enigmos.Modules.InterlayerModules; public partial class InterlayerSignalInModule : SubModule, IInterlayerSignalInModule { public new IProgrammableModule? ParentModule { get => base.ParentModule as IProgrammableModule; set => base.ParentModule = value; } public IBasePort UnderlyingPort => SignalIn!; public IInterlayerSignalOutModule? DualModule { get; set; } public ISignalInPort? SignalIn { get; set; } public ISignalInPort[] SignalInPorts { get; set; } = Array.Empty(); public override void Init() { base.Init(); this.SignalInInit("SignalIn", 1); SignalIn = SignalInPorts[0]; PostInit(); } public void Execute() => DualModule!.SignalOut!.Route(); public bool Visited { get; set; } }