This commit is contained in:
h z
2024-07-11 12:54:28 +01:00
parent bd5ab1e940
commit 5548a7243b
6 changed files with 18 additions and 16 deletions

View File

@@ -3,7 +3,7 @@
<PropertyGroup> <PropertyGroup>
<TargetFramework>net6.0</TargetFramework> <TargetFramework>net6.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings> <ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable> <Nullable>disable</Nullable>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>

View File

@@ -28,10 +28,7 @@ public abstract partial class OptimizationModule : ProgrammableModule,
public DataVariable[] CachedInputArray { get; set; } = Array.Empty<DataVariable>(); public DataVariable[] CachedInputArray { get; set; } = Array.Empty<DataVariable>();
public int ProcessingIndex { get; set; } public int ProcessingIndex { get; set; }
private IBoolParameter? UsingMax { get; set; } private IBoolParameter? UsingMax { get; set; }
public DataVariable CachedResult { get; set; } = public DataVariable CachedResult { get; set; } = new ();
GlobalProvider.DataStructureProvider!.NewData(0, DataTypeConstant.BaseDataTypes.Null);
public IDataInPort? InternalIterOut { get; set; } public IDataInPort? InternalIterOut { get; set; }
public IDataOutPort? InternalArrayIn { get; set; } public IDataOutPort? InternalArrayIn { get; set; }
@@ -82,7 +79,7 @@ public abstract partial class OptimizationModule : ProgrammableModule,
ComputationFinished = true; ComputationFinished = true;
CachedInputArray = Array.Empty<DataVariable>(); CachedInputArray = Array.Empty<DataVariable>();
ProcessingIndex = 0; ProcessingIndex = 0;
CachedResult = GlobalProvider.DataStructureProvider!.NullData; CachedResult = new DataVariable();
CachedOptimizeValue = null; CachedOptimizeValue = null;
ArrayInput = this.GetPort<DataInPort>("ArrayInput"); ArrayInput = this.GetPort<DataInPort>("ArrayInput");
@@ -137,7 +134,7 @@ public abstract partial class OptimizationModule : ProgrammableModule,
{ {
CachedOptimizeValue = null; CachedOptimizeValue = null;
CachedInputArray = InternalArrayIn!.OutData.Get!.Array; CachedInputArray = InternalArrayIn!.OutData.Get!.Array;
CachedResult = GlobalProvider.DataStructureProvider!.NewData(0, DataTypeConstant.BaseDataTypes.Null); CachedResult = new();
ProcessingIndex = 0; ProcessingIndex = 0;
} }

View File

@@ -1,5 +1,7 @@
using Enigmos.Ports.DataPorts; using Enigmos.Ports.DataPorts;
using Nocturnis.Enigmos.Modules;
using Nocturnis.Enigmos.Ports; using Nocturnis.Enigmos.Ports;
using Nocturnis.Enigmos.Ports.DataPorts.Directions;
using Nocturnis.GlobalManagement.Constants; using Nocturnis.GlobalManagement.Constants;
using Nocturnis.GlobalManagement.Controls; using Nocturnis.GlobalManagement.Controls;
using Nocturnis.Inventories.ItemSlots.ItemSlots; using Nocturnis.Inventories.ItemSlots.ItemSlots;
@@ -10,16 +12,18 @@ namespace Enigmos.Modules.TerminalModules;
public abstract partial class EngineModule : TerminalModule public abstract partial class EngineModule : TerminalModule
{ {
protected override bool Draggable => false; protected override bool Draggable => false;
public DataInPort? Throttle { get; set; } public IDataInPort Throttle { get; set; }
public IChemicalItemSlot? FuelTank { get; set; } public IChemicalItemSlot FuelTank { get; set; }
private double MaxPumpSpeed => 2d; private double MaxPumpSpeed => 2d;
private double EnergyConversionEfficiency => 0.5d; private double EnergyConversionEfficiency => 0.5d;
public override IEnumerable<IBasePort> Ports => new[] { Throttle! }; public override IEnumerable<IBasePort> Ports => new[] { Throttle };
public override void Init() public override void Init()
{ {
base.Init(); base.Init();
Throttle!.SetDataType(DataTypeConstant.BaseDataTypes.Real); this.DataInInit("Throttle", 1);
Throttle = DataInPorts[0];
Throttle.SetDataType(DataTypeConstant.BaseDataTypes.Real);
FuelTank = GetNode<IChemicalItemSlot>("FuelTank"); FuelTank = GetNode<IChemicalItemSlot>("FuelTank");
PostInit(); PostInit();
} }

View File

@@ -21,7 +21,7 @@ public abstract partial class MemoryModule : BaseModule, ITerminalModule, ISourc
public override void Init() public override void Init()
{ {
base.Init(); base.Init();
Memory = GlobalProvider.DataStructureProvider!.NewData(0, DataTypeConstant.BaseDataTypes.Null); Memory = new DataVariable();
this.DataInInit("Input", 3); this.DataInInit("Input", 3);
this.DataOutInit("Output", 4); this.DataOutInit("Output", 4);
DataInPorts[1].SetDataType(DataTypeConstant.BaseDataTypes.Bit); DataInPorts[1].SetDataType(DataTypeConstant.BaseDataTypes.Bit);

View File

@@ -3,6 +3,7 @@ using Nocturnis.Enigmos.Cables;
using Nocturnis.Enigmos.Modules.ComputationalModules; using Nocturnis.Enigmos.Modules.ComputationalModules;
using Nocturnis.Enigmos.Ports; using Nocturnis.Enigmos.Ports;
using Nocturnis.Enigmos.Ports.DataPorts.Directions; using Nocturnis.Enigmos.Ports.DataPorts.Directions;
using Nocturnis.GlobalManagement.Constants;
using Nocturnis.GlobalManagement.Providers; using Nocturnis.GlobalManagement.Providers;
namespace Enigmos.Ports.DataPorts; namespace Enigmos.Ports.DataPorts;
@@ -36,5 +37,5 @@ public abstract partial class DataOutPort : DataPort, IDataOutPort
return res; return res;
} }
public DataCache OutData { get; set; } = new(x => (0, GlobalProvider.DataStructureProvider!.NullDataType)); public DataCache OutData { get; set; } = new(x => (0, DataTypeConstant.BaseDataTypes.Null));
} }

View File

@@ -11,12 +11,12 @@ namespace Enigmos.Ports.DataPorts;
public abstract partial class DataPort : BasePort, IDataPort public abstract partial class DataPort : BasePort, IDataPort
{ {
public new IDataPort? ConnectedPort public new IDataPort ConnectedPort
{ {
get => (base.ConnectedPort as IDataPort)!; get => (base.ConnectedPort as IDataPort)!;
set => base.ConnectedPort = value; set => base.ConnectedPort = value;
} }
protected Sprite2D? DataTypeTexture { get; set; } protected Sprite2D DataTypeTexture { get; set; }
public DataType DataType { get; set; } = new(DataTypeConstant.BaseDataTypeNames.Null); public DataType DataType { get; set; } = new(DataTypeConstant.BaseDataTypeNames.Null);
public override void Init() public override void Init()
{ {
@@ -29,7 +29,7 @@ public abstract partial class DataPort : BasePort, IDataPort
if(Connected && val != ConnectedPort!.DataType) if(Connected && val != ConnectedPort!.DataType)
this.Disconnect(); this.Disconnect();
DataType = val; DataType = val;
DataTypeTexture!.Texture = GlobalProvider.EnigmosProvider!.DataPortTypeMap[val]; DataTypeTexture!.Texture = GlobalProvider.DataTypeTexture[DataType.Type];
} }
private void MouseEnterHandler() => DataTypeTexture!.Visible = true; private void MouseEnterHandler() => DataTypeTexture!.Visible = true;