diff --git a/Enigmos.csproj b/Enigmos.csproj index 332693e..70c89ae 100644 --- a/Enigmos.csproj +++ b/Enigmos.csproj @@ -3,7 +3,7 @@ net6.0 enable - enable + disable diff --git a/Modules/ProgrammableModules/OptimizationModule/OptimizationModule.cs b/Modules/ProgrammableModules/OptimizationModule/OptimizationModule.cs index 784359d..304dd28 100644 --- a/Modules/ProgrammableModules/OptimizationModule/OptimizationModule.cs +++ b/Modules/ProgrammableModules/OptimizationModule/OptimizationModule.cs @@ -28,10 +28,7 @@ public abstract partial class OptimizationModule : ProgrammableModule, public DataVariable[] CachedInputArray { get; set; } = Array.Empty(); public int ProcessingIndex { get; set; } private IBoolParameter? UsingMax { get; set; } - public DataVariable CachedResult { get; set; } = - GlobalProvider.DataStructureProvider!.NewData(0, DataTypeConstant.BaseDataTypes.Null); - - + public DataVariable CachedResult { get; set; } = new (); public IDataInPort? InternalIterOut { get; set; } public IDataOutPort? InternalArrayIn { get; set; } @@ -82,7 +79,7 @@ public abstract partial class OptimizationModule : ProgrammableModule, ComputationFinished = true; CachedInputArray = Array.Empty(); ProcessingIndex = 0; - CachedResult = GlobalProvider.DataStructureProvider!.NullData; + CachedResult = new DataVariable(); CachedOptimizeValue = null; ArrayInput = this.GetPort("ArrayInput"); @@ -137,7 +134,7 @@ public abstract partial class OptimizationModule : ProgrammableModule, { CachedOptimizeValue = null; CachedInputArray = InternalArrayIn!.OutData.Get!.Array; - CachedResult = GlobalProvider.DataStructureProvider!.NewData(0, DataTypeConstant.BaseDataTypes.Null); + CachedResult = new(); ProcessingIndex = 0; } diff --git a/Modules/TerminalModules/EngineModule.cs b/Modules/TerminalModules/EngineModule.cs index dd4a273..c644816 100644 --- a/Modules/TerminalModules/EngineModule.cs +++ b/Modules/TerminalModules/EngineModule.cs @@ -1,5 +1,7 @@ using Enigmos.Ports.DataPorts; +using Nocturnis.Enigmos.Modules; using Nocturnis.Enigmos.Ports; +using Nocturnis.Enigmos.Ports.DataPorts.Directions; using Nocturnis.GlobalManagement.Constants; using Nocturnis.GlobalManagement.Controls; using Nocturnis.Inventories.ItemSlots.ItemSlots; @@ -10,16 +12,18 @@ namespace Enigmos.Modules.TerminalModules; public abstract partial class EngineModule : TerminalModule { protected override bool Draggable => false; - public DataInPort? Throttle { get; set; } - public IChemicalItemSlot? FuelTank { get; set; } + public IDataInPort Throttle { get; set; } + public IChemicalItemSlot FuelTank { get; set; } private double MaxPumpSpeed => 2d; private double EnergyConversionEfficiency => 0.5d; - public override IEnumerable Ports => new[] { Throttle! }; + public override IEnumerable Ports => new[] { Throttle }; public override void Init() { base.Init(); - Throttle!.SetDataType(DataTypeConstant.BaseDataTypes.Real); + this.DataInInit("Throttle", 1); + Throttle = DataInPorts[0]; + Throttle.SetDataType(DataTypeConstant.BaseDataTypes.Real); FuelTank = GetNode("FuelTank"); PostInit(); } diff --git a/Modules/TerminalModules/MemoryModule.cs b/Modules/TerminalModules/MemoryModule.cs index b5222f9..2d3fff9 100644 --- a/Modules/TerminalModules/MemoryModule.cs +++ b/Modules/TerminalModules/MemoryModule.cs @@ -21,7 +21,7 @@ public abstract partial class MemoryModule : BaseModule, ITerminalModule, ISourc public override void Init() { base.Init(); - Memory = GlobalProvider.DataStructureProvider!.NewData(0, DataTypeConstant.BaseDataTypes.Null); + Memory = new DataVariable(); this.DataInInit("Input", 3); this.DataOutInit("Output", 4); DataInPorts[1].SetDataType(DataTypeConstant.BaseDataTypes.Bit); diff --git a/Ports/DataPorts/DataOutPort.cs b/Ports/DataPorts/DataOutPort.cs index abb5530..1c67b48 100644 --- a/Ports/DataPorts/DataOutPort.cs +++ b/Ports/DataPorts/DataOutPort.cs @@ -3,6 +3,7 @@ using Nocturnis.Enigmos.Cables; using Nocturnis.Enigmos.Modules.ComputationalModules; using Nocturnis.Enigmos.Ports; using Nocturnis.Enigmos.Ports.DataPorts.Directions; +using Nocturnis.GlobalManagement.Constants; using Nocturnis.GlobalManagement.Providers; namespace Enigmos.Ports.DataPorts; @@ -36,5 +37,5 @@ public abstract partial class DataOutPort : DataPort, IDataOutPort return res; } - public DataCache OutData { get; set; } = new(x => (0, GlobalProvider.DataStructureProvider!.NullDataType)); + public DataCache OutData { get; set; } = new(x => (0, DataTypeConstant.BaseDataTypes.Null)); } diff --git a/Ports/DataPorts/DataPort.cs b/Ports/DataPorts/DataPort.cs index cb3b7eb..8440f75 100644 --- a/Ports/DataPorts/DataPort.cs +++ b/Ports/DataPorts/DataPort.cs @@ -11,12 +11,12 @@ namespace Enigmos.Ports.DataPorts; public abstract partial class DataPort : BasePort, IDataPort { - public new IDataPort? ConnectedPort + public new IDataPort ConnectedPort { get => (base.ConnectedPort as IDataPort)!; set => base.ConnectedPort = value; } - protected Sprite2D? DataTypeTexture { get; set; } + protected Sprite2D DataTypeTexture { get; set; } public DataType DataType { get; set; } = new(DataTypeConstant.BaseDataTypeNames.Null); public override void Init() { @@ -29,7 +29,7 @@ public abstract partial class DataPort : BasePort, IDataPort if(Connected && val != ConnectedPort!.DataType) this.Disconnect(); DataType = val; - DataTypeTexture!.Texture = GlobalProvider.EnigmosProvider!.DataPortTypeMap[val]; + DataTypeTexture!.Texture = GlobalProvider.DataTypeTexture[DataType.Type]; } private void MouseEnterHandler() => DataTypeTexture!.Visible = true;