using Enigmos.Modules.ComputationalModules; using Godot; using Nocturnis.Enigmos.Modules; using Nocturnis.Enigmos.Modules.ComputationalModules; using Nocturnis.Enigmos.Modules.InterlayerModules; using Nocturnis.Enigmos.Ports; using Nocturnis.Enigmos.Ports.DataPorts.Directions; namespace Enigmos.Modules.InterlayerModules; public partial class InterlayerDataOutModule : SubModule, IComputationalModule, IInterlayerDataOutModule { public new IProgrammableModule? ParentModule { get => base.ParentModule as IProgrammableModule; set => base.ParentModule = value; } public IDataOutPort[] DataOutPorts { get; set; } public IBasePort UnderlyingPort => DataOut!; public IInterlayerDataInModule? DualModule { get; set; } public IDataOutPort? DataOut { get; set; } public override IEnumerable Ports => new[] { DataOut }!; public override void Init() { base.Init(); this.DataOutInit("DataOut", 1); DataOut = DataOutPorts[0]; PostInit(); } public void Define() { DataOut!.OutData = DualModule!.DataIn!.GetData; } }