Upgrade structure of code base
This commit is contained in:
43
Modules/InterlayerModules/FilterOutputModule.cs
Normal file
43
Modules/InterlayerModules/FilterOutputModule.cs
Normal file
@@ -0,0 +1,43 @@
|
||||
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;
|
||||
using Enigmos.Modules.ComputationalModules;
|
||||
using Nocturnis.GlobalManagement.Constants;
|
||||
|
||||
namespace Enigmos.Modules.InterlayerModules;
|
||||
|
||||
public partial class FilterOutputModule : NullaryComputationalModule, IInterlayerModule
|
||||
{
|
||||
public override Vector2 PositionToBoard => base.PositionToBoard + (ParentModule?.PositionToBoard ?? Vector2.Zero);
|
||||
|
||||
public IFilterModule FilterModule
|
||||
{
|
||||
get => (ParentModule as IFilterModule)!;
|
||||
set => ParentModule = value;
|
||||
}
|
||||
public IDataOutPort? Output { get; set; }
|
||||
public override IEnumerable<IBasePort> Ports => new[] { Output! };
|
||||
protected override bool Draggable => false;
|
||||
protected override bool HasManual => false;
|
||||
public override void Init()
|
||||
{
|
||||
base.Init();
|
||||
this.DataOutInit("Output", 1);
|
||||
Output = DataOutPorts[0];
|
||||
PostInit();
|
||||
}
|
||||
|
||||
public override void Define()
|
||||
{
|
||||
FilterModule.Filter();
|
||||
Output!.OutData.UpdateCalculation(
|
||||
cache => (FilterModule.CachedResult, EnigmosConstant.DataPortTypes.AnyArrayType)
|
||||
);
|
||||
}
|
||||
|
||||
public IBasePort UnderlyingPort => Output!;
|
||||
public IProgrammableModule? ParentModule { get; set; }
|
||||
}
|
||||
@@ -1,7 +1,8 @@
|
||||
using Enigmos.Ports.DataPorts;
|
||||
using Godot;
|
||||
using Nocturnis.Enigmos.Modules;
|
||||
using Nocturnis.Enigmos.Modules.InterlayerModules;
|
||||
using Nocturnis.Enigmos.Ports;
|
||||
using Nocturnis.Enigmos.Ports.DataPorts.Directions;
|
||||
|
||||
namespace Enigmos.Modules.InterlayerModules;
|
||||
public partial class InterlayerDataInModule : BaseModule, IInterlayerDataInModule
|
||||
@@ -14,11 +15,14 @@ public partial class InterlayerDataInModule : BaseModule, IInterlayerDataInModul
|
||||
public IInterlayerDataOutModule? DualModule { get; set; }
|
||||
public IDataInPort? DataIn { get; set; }
|
||||
public override IEnumerable<IBasePort> Ports => new[] { DataIn }!;
|
||||
public IDataInPort[] DataInPorts { get; set; } = Array.Empty<IDataInPort>();
|
||||
|
||||
|
||||
public override void Init()
|
||||
{
|
||||
base.Init();
|
||||
DataIn = GetPort<DataInPort>("DataIn");
|
||||
this.DataInInit("DataIn", 1);
|
||||
DataIn = DataInPorts[0];
|
||||
PostInit();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,8 +1,10 @@
|
||||
using Enigmos.Modules.ComputationalModules;
|
||||
using Enigmos.Ports.DataPorts;
|
||||
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;
|
||||
|
||||
@@ -21,12 +23,14 @@ public partial class InterlayerDataOutModule : ComputationalModule, IInterlayerD
|
||||
public override void Init()
|
||||
{
|
||||
base.Init();
|
||||
DataOut = GetPort<DataOutPort>("DataOut");
|
||||
this.DataOutInit("DataOut", 1);
|
||||
DataOut = DataOutPorts[0];
|
||||
PostInit();
|
||||
}
|
||||
|
||||
protected override void Compute(IRootModule root)
|
||||
public override void Define()
|
||||
{
|
||||
DataOut!.ResultData = DualModule!.DataIn!.GetData(root);
|
||||
DataOut!.OutData = DualModule!.DataIn!.GetData;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,12 +1,12 @@
|
||||
using Enigmos.Modules.ControllingModules;
|
||||
using Enigmos.Ports.SignalPorts;
|
||||
using Godot;
|
||||
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 : ControllingModule, IInterlayerSignalInModule
|
||||
public partial class InterlayerSignalInModule : BaseModule, IInterlayerSignalInModule
|
||||
{
|
||||
public override Vector2 PositionToBoard => base.PositionToBoard + (ParentModule?.PositionToBoard ?? Vector2.Zero);
|
||||
public IProgrammableModule? ParentModule { get; set; }
|
||||
@@ -16,13 +16,16 @@ public partial class InterlayerSignalInModule : ControllingModule, IInterlayerSi
|
||||
public IInterlayerSignalOutModule? DualModule { get; set; }
|
||||
public ISignalInPort? SignalIn { get; set; }
|
||||
public override IEnumerable<IBasePort> Ports => new[] { SignalIn }!;
|
||||
public ISignalInPort[] SignalInPorts { get; set; } = Array.Empty<ISignalInPort>();
|
||||
|
||||
public override void Init()
|
||||
{
|
||||
base.Init();
|
||||
SignalIn = GetPort<SignalInPort>("SignalIn");
|
||||
this.SignalInInit("SignalIn", 1);
|
||||
SignalIn = SignalInPorts[0];
|
||||
PostInit();
|
||||
}
|
||||
|
||||
protected override void Route(IRootModule root) => DualModule!.SignalOut!.Module.RouteWithTimeoutHandle(root);
|
||||
public void Execute() => DualModule!.SignalOut!.Route();
|
||||
public bool Visited { get; set; }
|
||||
}
|
||||
@@ -1,17 +1,15 @@
|
||||
|
||||
using Enigmos.Modules.ControllingModules;
|
||||
using Enigmos.Modules.ProgrammableModules;
|
||||
using Enigmos.Ports;
|
||||
using Enigmos.Ports.SignalPorts;
|
||||
using Godot;
|
||||
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 InterlayerSignalOutModule : ControllingModule, IInterlayerSignalOutModule
|
||||
public partial class InterlayerSignalOutModule : BaseModule, IInterlayerSignalOutModule
|
||||
{
|
||||
public override Vector2 PositionToBoard => base.PositionToBoard + (ParentModule?.PositionToBoard ?? Vector2.Zero);
|
||||
public override Vector2 PositionToBoard =>
|
||||
base.PositionToBoard + (ParentModule?.PositionToBoard ?? Vector2.Zero);
|
||||
public IProgrammableModule? ParentModule { get; set; }
|
||||
protected override bool Draggable => false;
|
||||
protected override bool HasManual => false;
|
||||
@@ -20,17 +18,16 @@ public partial class InterlayerSignalOutModule : ControllingModule, IInterlayerS
|
||||
public ISignalOutPort? SignalOut { get; set; }
|
||||
public override IEnumerable<IBasePort> Ports => new[] { SignalOut }!;
|
||||
|
||||
public ISignalOutPort[] SignalOutPorts { get; set; } = Array.Empty<ISignalOutPort>();
|
||||
|
||||
public override void Init()
|
||||
{
|
||||
base.Init();
|
||||
SignalOut = GetPort<SignalOutPort>("SignalOut");
|
||||
this.SignalOutInit("SignalOut", 1);
|
||||
SignalOut = SignalOutPorts[0];
|
||||
PostInit();
|
||||
}
|
||||
|
||||
protected override void Route(IRootModule root)
|
||||
{
|
||||
if (!SignalOut!.Connected)
|
||||
return;
|
||||
SignalOut.ConnectedPort!.Module.RouteWithTimeoutHandle(root);
|
||||
}
|
||||
public bool Visited { get; set; }
|
||||
|
||||
}
|
||||
39
Modules/InterlayerModules/IterativeOutputModule.cs
Normal file
39
Modules/InterlayerModules/IterativeOutputModule.cs
Normal file
@@ -0,0 +1,39 @@
|
||||
using Enigmos.Modules.ComputationalModules;
|
||||
using Nocturnis.Enigmos.Modules;
|
||||
using Nocturnis.Enigmos.Modules.ComputationalModules;
|
||||
using Nocturnis.Enigmos.Modules.InterlayerModules;
|
||||
using Nocturnis.Enigmos.Ports;
|
||||
using Nocturnis.Enigmos.Ports.DataPorts.Directions;
|
||||
using Nocturnis.GlobalManagement.Constants;
|
||||
|
||||
namespace Enigmos.Modules.InterlayerModules;
|
||||
|
||||
public partial class IterativeOutputModule : NullaryComputationalModule, IInterlayerModule, IDuplicateOutputModule
|
||||
{
|
||||
protected override bool Draggable => false;
|
||||
protected override bool HasManual => false;
|
||||
public IDataOutPort? Output { get; set; }
|
||||
|
||||
public override IEnumerable<IBasePort> Ports => new[] { Output }!;
|
||||
|
||||
public override void Init()
|
||||
{
|
||||
base.Init();
|
||||
this.DataOutInit("DataOut", 1);
|
||||
Output = DataOutPorts[0];
|
||||
PostInit();
|
||||
}
|
||||
|
||||
public override void Define()
|
||||
{
|
||||
if (ParentModule is IOptimizationModule opm)
|
||||
this.Define(cache => (opm.CachedResult.Data, opm.CachedResult.Type)!);
|
||||
if (ParentModule is IFilterModule fm)
|
||||
this.Define(cache => (fm.CachedResult, EnigmosConstant.DataPortTypes.AnyArrayType));
|
||||
|
||||
}
|
||||
|
||||
//protected override void Compute(IRootModule root) => throw new Exception("Should be Handled by Other Module");
|
||||
public IBasePort UnderlyingPort => Output!;
|
||||
public IProgrammableModule? ParentModule { get; set; }
|
||||
}
|
||||
42
Modules/InterlayerModules/OptimizationItemOutputModule.cs
Normal file
42
Modules/InterlayerModules/OptimizationItemOutputModule.cs
Normal file
@@ -0,0 +1,42 @@
|
||||
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 OptimizationItemOutputModule : NullaryComputationalModule, IInterlayerModule
|
||||
{
|
||||
public override Vector2 PositionToBoard =>
|
||||
base.PositionToBoard + (OptimizationModule?.PositionToBoard ?? Vector2.Zero);
|
||||
protected override bool Draggable => false;
|
||||
protected override bool HasManual => false;
|
||||
|
||||
public IOptimizationModule OptimizationModule
|
||||
{
|
||||
get => (ParentModule as IOptimizationModule)!;
|
||||
set => ParentModule = value;
|
||||
}
|
||||
public IDataOutPort DataOut { get; set; }
|
||||
|
||||
public override IEnumerable<IBasePort> Ports => new[] { DataOut };
|
||||
//protected override void Compute(IRootModule root) => OptimizationModule.OptimizeWithTimeoutHandle(root);
|
||||
public override void Init()
|
||||
{
|
||||
base.Init();
|
||||
this.DataOutInit("DataOut", 1);
|
||||
DataOut = DataOutPorts[0];
|
||||
PostInit();
|
||||
}
|
||||
|
||||
public IBasePort UnderlyingPort => DataOut;
|
||||
public IProgrammableModule? ParentModule { get; set; }
|
||||
public override void Define()
|
||||
{
|
||||
IOptimizationModule im = (ParentModule as IOptimizationModule)!;
|
||||
DataOut.OutData.UpdateCalculation(cache => (im.CachedResult.Data, im.CachedResult.Type)!);
|
||||
}
|
||||
}
|
||||
44
Modules/InterlayerModules/OptimizationValueOutputModule.cs
Normal file
44
Modules/InterlayerModules/OptimizationValueOutputModule.cs
Normal file
@@ -0,0 +1,44 @@
|
||||
using Enigmos.Modules.ComputationalModules;
|
||||
using Enigmos.Ports;
|
||||
using Enigmos.Ports.DataPorts;
|
||||
using Godot;
|
||||
using Nocturnis.Enigmos.Modules;
|
||||
using Nocturnis.Enigmos.Modules.ComputationalModules;
|
||||
using Nocturnis.Enigmos.Modules.InterlayerModules;
|
||||
using Nocturnis.Enigmos.Ports;
|
||||
using Nocturnis.GlobalManagement.Constants;
|
||||
|
||||
namespace Enigmos.Modules.InterlayerModules;
|
||||
|
||||
public partial class OptimizationValueOutputModule : NullaryComputationalModule,
|
||||
IInterlayerModule,
|
||||
IDuplicateOutputModule
|
||||
{
|
||||
public override Vector2 PositionToBoard =>
|
||||
base.PositionToBoard + (OptimizationModule?.PositionToBoard ?? Vector2.Zero);
|
||||
protected override bool Draggable => false;
|
||||
protected override bool HasManual => false;
|
||||
public DataOutPort? DataOut { get; set; }
|
||||
public IOptimizationModule OptimizationModule
|
||||
{
|
||||
get => (ParentModule as IOptimizationModule)!;
|
||||
set => ParentModule = value;
|
||||
}
|
||||
public override IEnumerable<BasePort> Ports => new[] { DataOut }!;
|
||||
|
||||
public override void Init()
|
||||
{
|
||||
base.Init();
|
||||
this.DataOutInit("DataOut", 1);
|
||||
DataOut.SetDataType(EnigmosConstant.DataPortTypes.Real);
|
||||
PostInit();
|
||||
}
|
||||
|
||||
public override void Define()
|
||||
{
|
||||
this.Define(cache => (OptimizationModule.CachedResult.Data, OptimizationModule.CachedResult.Type) );
|
||||
}
|
||||
|
||||
public IBasePort UnderlyingPort => DataOut;
|
||||
public IProgrammableModule? ParentModule { get; set; }
|
||||
}
|
||||
Reference in New Issue
Block a user