using Nocturnis.Enigmos.Modules; using Nocturnis.Enigmos.Ports.DataPorts.Directions; namespace Enigmos.Modules.SubModules; public partial class EnumerableArrayInputModule : SubModule, ITerminalModule { public new IEnumerableProcessingModule ParentModule { get => (base.ParentModule as IEnumerableProcessingModule)!; set => base.ParentModule = value; } public IDataInPort? Input { get; set; } public IDataInPort[] DataInPorts { get; set; } = Array.Empty(); public void Init(IEnumerableProcessingModule module) { base.Init(); this.DataInInit("Input", 1); Input = DataInPorts[0]; ParentModule = module; } public void Drain() { if(Finished) return; ParentModule.CachedInputArray = Input!.GetData.Get!.Array; } public bool Finished { get; set; } }