using Enigmos.Modules.ControllingModules; using Enigmos.Ports; using Enigmos.Ports.DataPorts; using Nocturnis.DataStructures; namespace Enigmos.Modules.ComputationalModules; public abstract partial class BinaryComputationalModule : ComputationalModule { protected DataInPort Input1 { get; set; } protected DataInPort Input2 { get; set; } public override IEnumerable Ports => new[] { Input1, Input2 }; public override void Init() { base.Init(); Input1 = GetPort("Input1"); Input2 = GetPort("Input2"); } protected abstract void Compute(IDataPackage input1, IDataPackage input2); protected override void Compute(RootModule root) => Compute(Input1.GetData(root), Input2.GetData(root)); }