diff --git a/Boards/BaseBoard.cs b/Boards/BaseBoard.cs index e62a7ad..5961874 100644 --- a/Boards/BaseBoard.cs +++ b/Boards/BaseBoard.cs @@ -1,7 +1,6 @@ using Enigmos.Cables; using Enigmos.Modules; using Enigmos.Modules.ProgrammableModules; -using Enigmos.Modules.SubModules; using Godot; using Nocturnis.DataStructures; using Nocturnis.Enigmos.Boards; diff --git a/Boards/FilterModuleBoard.cs b/Boards/FilterModuleBoard.cs index 4c68176..86b5bad 100644 --- a/Boards/FilterModuleBoard.cs +++ b/Boards/FilterModuleBoard.cs @@ -1,7 +1,6 @@ using Enigmos.Modules.InterlayerModules; using Enigmos.Modules.ProgrammableModules.FilterModule; using Nocturnis; -using Nocturnis.Enigmos.Modules; using Nocturnis.Enigmos.Modules.InterlayerModules; using Nocturnis.GlobalManagement.Constants; @@ -32,7 +31,7 @@ public partial class FilterModuleBoard : BaseBoard, ISceneConcept base.Init(); //IterativeOutput = GetModule("IterativeOutput"); Indicate = GetModule("Indicate"); - Indicate.Indicate!.SetDataType(EnigmosConstant.DataPortTypes.Bit); + Indicate.Indicate!.SetDataType(DataTypeConstant.BaseDataTypes.Bit); } } diff --git a/Cables/SignalCable.cs b/Cables/SignalCable.cs index 55a5301..9fb0883 100644 --- a/Cables/SignalCable.cs +++ b/Cables/SignalCable.cs @@ -1,4 +1,3 @@ -using Enigmos.Ports.SignalPorts; using Godot; using Nocturnis.Enigmos.Ports.SignalPorts.Directions; diff --git a/Manual/PortMaintenanceTab.cs b/Manual/PortMaintenanceTab.cs index dbfb07b..fffefaf 100644 --- a/Manual/PortMaintenanceTab.cs +++ b/Manual/PortMaintenanceTab.cs @@ -4,7 +4,6 @@ using Nocturnis; using Nocturnis.Enigmos.ModuleManuals; using Nocturnis.Enigmos.Modules; using Nocturnis.Enigmos.Ports; -using Nocturnis.GlobalManagement.Providers; namespace Enigmos.Manual; diff --git a/Modules/BaseModule.cs b/Modules/BaseModule.cs index 8699d01..c42cf6a 100644 --- a/Modules/BaseModule.cs +++ b/Modules/BaseModule.cs @@ -1,6 +1,5 @@ using Enigmos.Exceptions; using Enigmos.Manual; -using Enigmos.Ports; using Godot; using Nocturnis.DataStructures; using Nocturnis.Enigmos.Boards; @@ -8,7 +7,6 @@ using Nocturnis.Enigmos.Cables; using Nocturnis.Enigmos.Modules; using Nocturnis.Enigmos.Ports; using Nocturnis.GlobalManagement.Providers; -using Nocturnis.UIElements; namespace Enigmos.Modules; diff --git a/Modules/ComputationalModules/Binary/AdditionModule.cs b/Modules/ComputationalModules/Binary/AdditionModule.cs index f34fce4..219702c 100644 --- a/Modules/ComputationalModules/Binary/AdditionModule.cs +++ b/Modules/ComputationalModules/Binary/AdditionModule.cs @@ -1,8 +1,8 @@ using Godot; using Nocturnis.DataStructures.DataPortGroups; +using Nocturnis.DataStructures.DataTypes; using Nocturnis.Enigmos.Modules; using Nocturnis.Enigmos.Modules.ComputationalModules; -using Nocturnis.Enigmos.Ports; using Nocturnis.GlobalManagement.Constants; using Nocturnis.GlobalManagement.Providers; using Skeleton.DataStructure; @@ -27,15 +27,15 @@ public abstract partial class AdditionModule : BinaryComputationalModule, IPolym this, DataInPorts, "", - EnigmosConstant.DataPortTypes.Real, - Array.Empty() + DataTypeConstant.BaseDataTypes.Real, + DataTypeConstant.DataTypeOptions.TensorTypes ); - OutputGroup = GlobalProvider.DataStructureProvider.NewDataOutGroup( + OutputGroup = GlobalProvider.DataStructureProvider!.NewDataOutGroup( this, DataOutPorts, "Output Port Type", - EnigmosConstant.DataPortTypes.Real, - EnigmosConstant.DataPortTypes.AnyTensor + DataTypeConstant.BaseDataTypes.Real, + DataTypeConstant.DataTypeOptions.TensorTypes ); ConfigurablePortGroups = new HashSet { OutputGroup }; PostInit(); @@ -46,7 +46,7 @@ public abstract partial class AdditionModule : BinaryComputationalModule, IPolym public override string GetDescription => GlobalProvider.EnigmosProvider!.ModuleDescription(); public override void Define() { - (object, StringName) Proxy(CacheItem cache) => + (object, DataType) Proxy(CacheItem cache) => GlobalProvider.PolymorphismProvider!.Add(this.X(cache), this.Y(cache)); this.Define(Proxy); } diff --git a/Modules/ComputationalModules/Binary/BinaryLogicModule.cs b/Modules/ComputationalModules/Binary/BinaryLogicModule.cs index ecba73c..7d29ec9 100644 --- a/Modules/ComputationalModules/Binary/BinaryLogicModule.cs +++ b/Modules/ComputationalModules/Binary/BinaryLogicModule.cs @@ -1,6 +1,5 @@ using Nocturnis.Enigmos.Modules; using Nocturnis.Enigmos.Modules.ComputationalModules; -using Nocturnis.Enigmos.Ports; namespace Enigmos.Modules.ComputationalModules.Binary; diff --git a/Modules/ComputationalModules/Binary/ComparisionModule.cs b/Modules/ComputationalModules/Binary/ComparisionModule.cs index e2ecb26..850ea09 100644 --- a/Modules/ComputationalModules/Binary/ComparisionModule.cs +++ b/Modules/ComputationalModules/Binary/ComparisionModule.cs @@ -1,7 +1,6 @@ using Nocturnis.DataStructures.ConfigurableParameters; using Nocturnis.Enigmos.Modules; using Nocturnis.Enigmos.Modules.ComputationalModules; -using Nocturnis.Enigmos.Ports; using Nocturnis.GlobalManagement.Constants; using Nocturnis.GlobalManagement.Providers; @@ -19,8 +18,8 @@ public abstract partial class ComparisionModule : BinaryComputationalModule, { base.Init(); this.DataOutInit("Output",1); - this.SetInputType(EnigmosConstant.DataPortTypes.Real); - this.SetOutputType(EnigmosConstant.DataPortTypes.Real); + this.SetInputType(DataTypeConstant.BaseDataTypes.Real); + this.SetOutputType(DataTypeConstant.BaseDataTypes.Real); Greater = GlobalProvider.DataStructureProvider!.NewBoolParameter("Method", "gt", "lt", true); ConfigurableParameters = new HashSet() { Greater }; PostInit(); @@ -31,8 +30,8 @@ public abstract partial class ComparisionModule : BinaryComputationalModule, { this.Define( cache => ( - !(Greater!.ParameterValue ^ (this.X(cache).Double > this.Y(cache).Double)), - EnigmosConstant.DataPortTypes.Bit + !(Greater!.ParameterValue ^ (this.X(cache).Real > this.Y(cache).Real)), + DataTypeConstant.BaseDataTypes.Bit ) ); } diff --git a/Modules/ComputationalModules/Binary/ControlledOutputModule.cs b/Modules/ComputationalModules/Binary/ControlledOutputModule.cs index 3dd9da3..67a6816 100644 --- a/Modules/ComputationalModules/Binary/ControlledOutputModule.cs +++ b/Modules/ComputationalModules/Binary/ControlledOutputModule.cs @@ -1,8 +1,8 @@ using Godot; using Nocturnis.DataStructures.DataPortGroups; +using Nocturnis.DataStructures.DataTypes; using Nocturnis.Enigmos.Modules; using Nocturnis.Enigmos.Modules.ComputationalModules; -using Nocturnis.Enigmos.Ports; using Nocturnis.GlobalManagement.Constants; using Nocturnis.GlobalManagement.Providers; using Skeleton.DataStructure; @@ -23,22 +23,22 @@ public abstract partial class ControlledOutputModule : BinaryComputationalModule this, DataOutPorts, "Output Data Type", - UsingPreset ? PresetDataType! : EnigmosConstant.DataPortTypes.Real, - EnigmosConstant.DataPortTypes.AnyType + DataTypeConstant.BaseDataTypes.Real, + DataTypeConstant.DataTypeOptions.AnyType ); ConfigurablePortGroups = new HashSet { OutputGroup }; - DataInPorts[0].SetDataType(EnigmosConstant.DataPortTypes.Bit); - DataInPorts[1].SetDataType(EnigmosConstant.DataPortTypes.Real); + DataInPorts[0].SetDataType(DataTypeConstant.BaseDataTypes.Bit); + DataInPorts[1].SetDataType(DataTypeConstant.BaseDataTypes.Real); PostInit(); } public override void Define() { - (object, StringName) Func(CacheItem cache) + (object, DataType) Func(CacheItem cache) { if (this.X(cache).Bit) return (this.Y(cache).Data!, this.Y(cache).Type!); - return (0, EnigmosConstant.DataPortTypes.Null); + return (0, DataTypeConstant.BaseDataTypes.Null); } this.Define(Func); diff --git a/Modules/ComputationalModules/Binary/DivisionModule.cs b/Modules/ComputationalModules/Binary/DivisionModule.cs index 54c3a25..f821940 100644 --- a/Modules/ComputationalModules/Binary/DivisionModule.cs +++ b/Modules/ComputationalModules/Binary/DivisionModule.cs @@ -1,8 +1,8 @@ using Godot; using Nocturnis.DataStructures.DataPortGroups; +using Nocturnis.DataStructures.DataTypes; using Nocturnis.Enigmos.Modules; using Nocturnis.Enigmos.Modules.ComputationalModules; -using Nocturnis.Enigmos.Ports; using Nocturnis.GlobalManagement.Constants; using Nocturnis.GlobalManagement.Providers; using Skeleton.DataStructure; @@ -25,15 +25,15 @@ public abstract partial class DivisionModule : BinaryComputationalModule, this, DataInPorts, "", - EnigmosConstant.DataPortTypes.Real, - Array.Empty() + DataTypeConstant.BaseDataTypes.Real, + DataTypeConstant.DataTypeOptions.ScalarTypes ); OutputGroup = GlobalProvider.DataStructureProvider.NewDataOutGroup( this, DataOutPorts, "Output Port Type", - EnigmosConstant.DataPortTypes.Real, - EnigmosConstant.DataPortTypes.NumericTypes + DataTypeConstant.BaseDataTypes.Real, + DataTypeConstant.DataTypeOptions.ScalarTypes ); ConfigurablePortGroups = new HashSet { OutputGroup }; PostInit(); @@ -41,7 +41,7 @@ public abstract partial class DivisionModule : BinaryComputationalModule, public override void Define() { - (object, StringName) Func(CacheItem cache) => + (object, DataType) Func(CacheItem cache) => GlobalProvider.PolymorphismProvider!.Div(this.X(cache), this.Y(cache)); this.Define(Func); } diff --git a/Modules/ComputationalModules/Binary/DotProductModule.cs b/Modules/ComputationalModules/Binary/DotProductModule.cs index adf6ed9..0f61c08 100644 --- a/Modules/ComputationalModules/Binary/DotProductModule.cs +++ b/Modules/ComputationalModules/Binary/DotProductModule.cs @@ -1,8 +1,8 @@ using Godot; using Nocturnis.DataStructures.DataPortGroups; +using Nocturnis.DataStructures.DataTypes; using Nocturnis.Enigmos.Modules; using Nocturnis.Enigmos.Modules.ComputationalModules; -using Nocturnis.Enigmos.Ports; using Nocturnis.GlobalManagement.Constants; using Nocturnis.GlobalManagement.Providers; using Skeleton.DataStructure; @@ -23,15 +23,15 @@ public abstract partial class DotProductModule : BinaryComputationalModule, IPol this, DataInPorts, "Vector Input Type", - EnigmosConstant.DataPortTypes.R2, - EnigmosConstant.DataPortTypes.VectorTypes + DataTypeConstant.BaseDataTypes.R2, + DataTypeConstant.DataTypeOptions.VectorTypes ); OutputGroup = GlobalProvider.DataStructureProvider.NewDataOutGroup( this, DataOutPorts, "", - EnigmosConstant.DataPortTypes.Real, - Array.Empty() + DataTypeConstant.BaseDataTypes.Real, + DataTypeConstant.DataTypeOptions.ScalarTypes ); ConfigurablePortGroups = new HashSet { VectorInputGroup }; PostInit(); @@ -39,7 +39,7 @@ public abstract partial class DotProductModule : BinaryComputationalModule, IPol public override void Define() { - (object, StringName) Func(CacheItem cache) => + (object, DataType) Func(CacheItem cache) => GlobalProvider.PolymorphismProvider!.Dot(this.X(cache), this.Y(cache)); this.Define(Func); } @@ -47,9 +47,9 @@ public abstract partial class DotProductModule : BinaryComputationalModule, IPol public void Inference() { if (GlobalProvider.DataTypeProvider!.IsComplexTensorType(VectorInputGroup!.SelectedType)) - OutputGroup!.SelectedType = EnigmosConstant.DataPortTypes.Complex; + OutputGroup!.SelectedType = DataTypeConstant.BaseDataTypes.Complex; else - OutputGroup!.SelectedType = EnigmosConstant.DataPortTypes.Real; + OutputGroup!.SelectedType = DataTypeConstant.BaseDataTypes.Real; } } \ No newline at end of file diff --git a/Modules/ComputationalModules/Binary/LogicalAlternativeDenialModule.cs b/Modules/ComputationalModules/Binary/LogicalAlternativeDenialModule.cs index 1aaca0c..c9c9846 100644 --- a/Modules/ComputationalModules/Binary/LogicalAlternativeDenialModule.cs +++ b/Modules/ComputationalModules/Binary/LogicalAlternativeDenialModule.cs @@ -1,4 +1,4 @@ -using Godot; +using Nocturnis.DataStructures.DataTypes; using Nocturnis.Enigmos.Modules.ComputationalModules; using Nocturnis.GlobalManagement.Constants; using Skeleton.DataStructure; @@ -9,8 +9,8 @@ public abstract partial class LogicalAlternativeDenialModule : BinaryLogicModule { public override void Define() { - (object, StringName) Func(CacheItem cache) => - (!this.X(cache).Bit | !this.Y(cache).Bit, EnigmosConstant.DataPortTypes.Bit); + (object, DataType) Func(CacheItem cache) => + (!this.X(cache).Bit | !this.Y(cache).Bit, DataTypeConstant.BaseDataTypes.Bit); this.Define(Func); } diff --git a/Modules/ComputationalModules/Binary/LogicalBiconditionalModule.cs b/Modules/ComputationalModules/Binary/LogicalBiconditionalModule.cs index 5a74b16..cdd72ee 100644 --- a/Modules/ComputationalModules/Binary/LogicalBiconditionalModule.cs +++ b/Modules/ComputationalModules/Binary/LogicalBiconditionalModule.cs @@ -1,4 +1,4 @@ -using Godot; +using Nocturnis.DataStructures.DataTypes; using Nocturnis.Enigmos.Modules.ComputationalModules; using Nocturnis.GlobalManagement.Constants; using Skeleton.DataStructure; @@ -9,8 +9,8 @@ public abstract partial class LogicalBiconditionalModule : BinaryLogicModule { public override void Define() { - (object, StringName) Func(CacheItem cache) => - (!(this.X(cache).Bit ^ this.Y(cache).Bit), EnigmosConstant.DataPortTypes.Bit); + (object, DataType) Func(CacheItem cache) => + (!(this.X(cache).Bit ^ this.Y(cache).Bit), DataTypeConstant.BaseDataTypes.Bit); this.Define(Func); diff --git a/Modules/ComputationalModules/Binary/LogicalConjunctionModule.cs b/Modules/ComputationalModules/Binary/LogicalConjunctionModule.cs index e5d1c4f..53c3ed1 100644 --- a/Modules/ComputationalModules/Binary/LogicalConjunctionModule.cs +++ b/Modules/ComputationalModules/Binary/LogicalConjunctionModule.cs @@ -1,4 +1,4 @@ -using Godot; +using Nocturnis.DataStructures.DataTypes; using Nocturnis.Enigmos.Modules.ComputationalModules; using Nocturnis.GlobalManagement.Constants; using Skeleton.DataStructure; @@ -13,8 +13,8 @@ public abstract partial class LogicalConjunctionModule : BinaryLogicModule { var x = DataOutPorts.Length; - (object, StringName) Func(CacheItem cache) => - (this.X(cache).Bit & this.Y(cache).Bit, EnigmosConstant.DataPortTypes.Bit); + (object, DataType) Func(CacheItem cache) => + (this.X(cache).Bit & this.Y(cache).Bit, DataTypeConstant.BaseDataTypes.Bit); this.Define(Func); } diff --git a/Modules/ComputationalModules/Binary/LogicalDisjunctionModule.cs b/Modules/ComputationalModules/Binary/LogicalDisjunctionModule.cs index 02a2149..7aad2c0 100644 --- a/Modules/ComputationalModules/Binary/LogicalDisjunctionModule.cs +++ b/Modules/ComputationalModules/Binary/LogicalDisjunctionModule.cs @@ -1,4 +1,4 @@ -using Godot; +using Nocturnis.DataStructures.DataTypes; using Nocturnis.Enigmos.Modules.ComputationalModules; using Nocturnis.GlobalManagement.Constants; using Skeleton.DataStructure; @@ -10,8 +10,8 @@ public abstract partial class LogicalDisjunctionModule : BinaryLogicModule public override void Define() { - (object, StringName) Func(CacheItem x) => - (this.X(x).Bit | this.Y(x).Bit, EnigmosConstant.DataPortTypes.Bit); + (object, DataType) Func(CacheItem x) => + (this.X(x).Bit | this.Y(x).Bit, DataTypeConstant.BaseDataTypes.Bit); this.Define(Func); } diff --git a/Modules/ComputationalModules/Binary/LogicalExclusiveDisjunctionModule.cs b/Modules/ComputationalModules/Binary/LogicalExclusiveDisjunctionModule.cs index cd60ae3..4676691 100644 --- a/Modules/ComputationalModules/Binary/LogicalExclusiveDisjunctionModule.cs +++ b/Modules/ComputationalModules/Binary/LogicalExclusiveDisjunctionModule.cs @@ -1,4 +1,4 @@ -using Godot; +using Nocturnis.DataStructures.DataTypes; using Nocturnis.Enigmos.Modules.ComputationalModules; using Nocturnis.GlobalManagement.Constants; using Skeleton.DataStructure; @@ -9,8 +9,8 @@ public abstract partial class LogicalExclusiveDisjunctionModule : BinaryLogicMod { public override void Define() { - (object, StringName) Func(CacheItem cache) - => (this.X(cache).Bit ^ this.Y(cache).Bit, EnigmosConstant.DataPortTypes.Bit); + (object, DataType) Func(CacheItem cache) + => (this.X(cache).Bit ^ this.Y(cache).Bit, DataTypeConstant.BaseDataTypes.Bit); this.Define(Func); } diff --git a/Modules/ComputationalModules/Binary/LogicalImplicationModule.cs b/Modules/ComputationalModules/Binary/LogicalImplicationModule.cs index e90ab8b..c486f47 100644 --- a/Modules/ComputationalModules/Binary/LogicalImplicationModule.cs +++ b/Modules/ComputationalModules/Binary/LogicalImplicationModule.cs @@ -8,7 +8,7 @@ public abstract partial class LogicalImplicationModule : BinaryLogicModule public override void Define() { this.Define( - x => (!this.X(x).Bit | this.Y(x).Bit, EnigmosConstant.DataPortTypes.Bit) + x => (!this.X(x).Bit | this.Y(x).Bit, DataTypeConstant.BaseDataTypes.Bit) ); } } \ No newline at end of file diff --git a/Modules/ComputationalModules/Binary/LogicalJointDenialModule.cs b/Modules/ComputationalModules/Binary/LogicalJointDenialModule.cs index ddb0e0c..bb801e3 100644 --- a/Modules/ComputationalModules/Binary/LogicalJointDenialModule.cs +++ b/Modules/ComputationalModules/Binary/LogicalJointDenialModule.cs @@ -11,7 +11,7 @@ public abstract partial class LogicalJointDenialModule : BinaryLogicModule x => ( !this.X(x).Bit & !this.Y(x).Bit, - EnigmosConstant.DataPortTypes.Bit + DataTypeConstant.BaseDataTypes.Bit ) ); } diff --git a/Modules/ComputationalModules/Binary/LogicalNonimplicationModule.cs b/Modules/ComputationalModules/Binary/LogicalNonimplicationModule.cs index 56ba4f7..857bc77 100644 --- a/Modules/ComputationalModules/Binary/LogicalNonimplicationModule.cs +++ b/Modules/ComputationalModules/Binary/LogicalNonimplicationModule.cs @@ -1,4 +1,4 @@ -using Godot; +using Nocturnis.DataStructures.DataTypes; using Nocturnis.Enigmos.Modules.ComputationalModules; using Nocturnis.GlobalManagement.Constants; using Skeleton.DataStructure; @@ -9,8 +9,8 @@ public abstract partial class LogicalNonimplicationModule : BinaryLogicModule { public override void Define() { - (object, StringName) Func(CacheItem cache) => - (this.X(cache).Bit & !this.Y(cache).Bit, EnigmosConstant.DataPortTypes.Bit); + (object, DataType) Func(CacheItem cache) => + (this.X(cache).Bit & !this.Y(cache).Bit, DataTypeConstant.BaseDataTypes.Bit); this.Define(Func); } diff --git a/Modules/ComputationalModules/Binary/MaxModule.cs b/Modules/ComputationalModules/Binary/MaxModule.cs index c60820f..c436749 100644 --- a/Modules/ComputationalModules/Binary/MaxModule.cs +++ b/Modules/ComputationalModules/Binary/MaxModule.cs @@ -1,6 +1,5 @@ -using Godot; +using Nocturnis.DataStructures.DataTypes; using Nocturnis.Enigmos.Modules.ComputationalModules; -using Nocturnis.Enigmos.Ports; using Nocturnis.GlobalManagement.Constants; using Skeleton.DataStructure; @@ -12,18 +11,18 @@ public abstract partial class MaxModule : BinaryComputationalModule, IOperationM { base.Init(); this.DataOutInit("Output", 3); - this.SetInputType(EnigmosConstant.DataPortTypes.Real); - this.SetOutputType(EnigmosConstant.DataPortTypes.Real); + this.SetInputType(DataTypeConstant.BaseDataTypes.Real); + this.SetOutputType(DataTypeConstant.BaseDataTypes.Real); PostInit(); } public override void Define() { - (object, StringName) Func(CacheItem cache) + (object, DataType) Func(CacheItem cache) { - if (this.X(cache).Double > this.Y(cache).Double) - return (this.X(cache), EnigmosConstant.DataPortTypes.Real); - return (this.Y(cache), EnigmosConstant.DataPortTypes.Real); + if (this.X(cache).Real > this.Y(cache).Real) + return (this.X(cache), DataTypeConstant.BaseDataTypes.Real); + return (this.Y(cache), DataTypeConstant.BaseDataTypes.Real); } this.Define(Func); } diff --git a/Modules/ComputationalModules/Binary/MinModule.cs b/Modules/ComputationalModules/Binary/MinModule.cs index 46aa620..0ce106f 100644 --- a/Modules/ComputationalModules/Binary/MinModule.cs +++ b/Modules/ComputationalModules/Binary/MinModule.cs @@ -1,6 +1,5 @@ -using Godot; +using Nocturnis.DataStructures.DataTypes; using Nocturnis.Enigmos.Modules.ComputationalModules; -using Nocturnis.Enigmos.Ports; using Nocturnis.GlobalManagement.Constants; using Skeleton.DataStructure; @@ -12,16 +11,16 @@ public abstract partial class MinModule : BinaryComputationalModule, IDuplicateO { base.Init(); this.DataOutInit("Output", 3); - this.SetInputType(EnigmosConstant.DataPortTypes.Real); - this.SetOutputType(EnigmosConstant.DataPortTypes.Real); + this.SetInputType(DataTypeConstant.BaseDataTypes.Real); + this.SetOutputType(DataTypeConstant.BaseDataTypes.Real); PostInit(); } public override void Define() { - (object, StringName) Func(CacheItem cache) + (object, DataType) Func(CacheItem cache) { - if (this.X(cache).Double < this.Y(cache).Double) + if (this.X(cache).Real < this.Y(cache).Real) return (this.X(cache).Data!, this.X(cache).Type!); return (this.Y(cache).Data!, this.Y(cache).Type!); } diff --git a/Modules/ComputationalModules/Binary/MultiplicationModule.cs b/Modules/ComputationalModules/Binary/MultiplicationModule.cs index f804559..a7f7030 100644 --- a/Modules/ComputationalModules/Binary/MultiplicationModule.cs +++ b/Modules/ComputationalModules/Binary/MultiplicationModule.cs @@ -1,8 +1,8 @@ using Godot; using Nocturnis.DataStructures.DataPortGroups; +using Nocturnis.DataStructures.DataTypes; using Nocturnis.Enigmos.Modules; using Nocturnis.Enigmos.Modules.ComputationalModules; -using Nocturnis.Enigmos.Ports; using Nocturnis.GlobalManagement.Constants; using Nocturnis.GlobalManagement.Providers; using Skeleton.DataStructure; @@ -24,15 +24,15 @@ public abstract partial class MultiplicationModule : BinaryComputationalModule, this, DataInPorts, "", - EnigmosConstant.DataPortTypes.Real, - Array.Empty() + DataTypeConstant.BaseDataTypes.Real, + DataTypeConstant.DataTypeOptions.ScalarTypes ); OutputGroup = GlobalProvider.DataStructureProvider.NewDataOutGroup( this, DataOutPorts, "Output Port Type", - EnigmosConstant.DataPortTypes.Real, - EnigmosConstant.DataPortTypes.NumericTypes + DataTypeConstant.BaseDataTypes.Real, + DataTypeConstant.DataTypeOptions.ScalarTypes ); ConfigurablePortGroups = new HashSet { OutputGroup }; PostInit(); @@ -40,7 +40,7 @@ public abstract partial class MultiplicationModule : BinaryComputationalModule, public override void Define() { - (object, StringName) Func(CacheItem cache) => + (object, DataType) Func(CacheItem cache) => GlobalProvider.PolymorphismProvider!.Mul(this.X(cache), this.Y(cache)); this.Define(Func); } diff --git a/Modules/ComputationalModules/Binary/PowerModule.cs b/Modules/ComputationalModules/Binary/PowerModule.cs index 4a632ee..b0e17af 100644 --- a/Modules/ComputationalModules/Binary/PowerModule.cs +++ b/Modules/ComputationalModules/Binary/PowerModule.cs @@ -1,8 +1,8 @@ using Godot; using Nocturnis.DataStructures.DataPortGroups; +using Nocturnis.DataStructures.DataTypes; using Nocturnis.Enigmos.Modules; using Nocturnis.Enigmos.Modules.ComputationalModules; -using Nocturnis.Enigmos.Ports; using Nocturnis.Enigmos.Ports.DataPorts.Directions; using Nocturnis.GlobalManagement.Constants; using Nocturnis.GlobalManagement.Providers; @@ -24,16 +24,16 @@ public abstract partial class PowerModule : BinaryComputationalModule, IPolymorp this, new IDataInPort[] { DataInPorts[0] }, "Base Tensor Type", - EnigmosConstant.DataPortTypes.Real, - EnigmosConstant.DataPortTypes.NumericTypes + DataTypeConstant.BaseDataTypes.Real, + DataTypeConstant.DataTypeOptions.ScalarTypes ); - DataInPorts[1].SetDataType(EnigmosConstant.DataPortTypes.Complex); + DataInPorts[1].SetDataType(DataTypeConstant.BaseDataTypes.Complex); OutputGroup = GlobalProvider.DataStructureProvider.NewDataOutGroup( this, DataOutPorts, "", - EnigmosConstant.DataPortTypes.Real, - Array.Empty() + DataTypeConstant.BaseDataTypes.Real, + DataTypeConstant.DataTypeOptions.ScalarTypes ); ConfigurablePortGroups = new HashSet { TensorInputGroup }; PostInit(); @@ -41,7 +41,7 @@ public abstract partial class PowerModule : BinaryComputationalModule, IPolymorp public override void Define() { - (object, StringName) Func(CacheItem cache) => GlobalProvider.PolymorphismProvider!.Pow(this.X(cache), this.Y(cache)); + (object, DataType) Func(CacheItem cache) => GlobalProvider.PolymorphismProvider!.Pow(this.X(cache), this.Y(cache)); this.Define(Func); } diff --git a/Modules/ComputationalModules/Binary/ScalarDivisionModule.cs b/Modules/ComputationalModules/Binary/ScalarDivisionModule.cs index 69446af..20ebafb 100644 --- a/Modules/ComputationalModules/Binary/ScalarDivisionModule.cs +++ b/Modules/ComputationalModules/Binary/ScalarDivisionModule.cs @@ -1,8 +1,8 @@ using Godot; using Nocturnis.DataStructures.DataPortGroups; +using Nocturnis.DataStructures.DataTypes; using Nocturnis.Enigmos.Modules; using Nocturnis.Enigmos.Modules.ComputationalModules; -using Nocturnis.Enigmos.Ports; using Nocturnis.Enigmos.Ports.DataPorts.Directions; using Nocturnis.GlobalManagement.Constants; using Nocturnis.GlobalManagement.Providers; @@ -29,22 +29,22 @@ public abstract partial class ScalarDivisionModule : BinaryComputationalModule, this, new IDataInPort[] { DataInPorts[0] }, "Tensor Input Type", - EnigmosConstant.DataPortTypes.Real, - EnigmosConstant.DataPortTypes.VectorTypes + DataTypeConstant.BaseDataTypes.R2, + DataTypeConstant.DataTypeOptions.VectorTypes ); ScalarInputGroup =GlobalProvider.DataStructureProvider.NewDataInGroup( this, new IDataInPort[] { DataInPorts[1] }, "Scalar Input Type", - EnigmosConstant.DataPortTypes.R2, - EnigmosConstant.DataPortTypes.VectorTypes + DataTypeConstant.BaseDataTypes.Real, + DataTypeConstant.DataTypeOptions.ScalarTypes ); OutputGroup = GlobalProvider.DataStructureProvider.NewDataOutGroup( this, DataOutPorts, "", - EnigmosConstant.DataPortTypes.Real, - Array.Empty() + DataTypeConstant.BaseDataTypes.Real, + DataTypeConstant.DataTypeOptions.VectorTypes ); ConfigurablePortGroups = new HashSet { ScalarInputGroup, TensorInputGroup }; SelectedOption = 0; @@ -54,7 +54,7 @@ public abstract partial class ScalarDivisionModule : BinaryComputationalModule, public override void Define() { - (object, StringName) Func(CacheItem cache) => GlobalProvider.PolymorphismProvider!.ScalarDiv(this.X(cache), this.Y(cache)); + (object, DataType) Func(CacheItem cache) => GlobalProvider.PolymorphismProvider!.ScalarDiv(this.X(cache), this.Y(cache)); this.Define(Func); } diff --git a/Modules/ComputationalModules/Binary/ScalarMultiplicationModule.cs b/Modules/ComputationalModules/Binary/ScalarMultiplicationModule.cs index ee75115..c3c8340 100644 --- a/Modules/ComputationalModules/Binary/ScalarMultiplicationModule.cs +++ b/Modules/ComputationalModules/Binary/ScalarMultiplicationModule.cs @@ -1,8 +1,8 @@ using Godot; using Nocturnis.DataStructures.DataPortGroups; +using Nocturnis.DataStructures.DataTypes; using Nocturnis.Enigmos.Modules; using Nocturnis.Enigmos.Modules.ComputationalModules; -using Nocturnis.Enigmos.Ports; using Nocturnis.Enigmos.Ports.DataPorts.Directions; using Nocturnis.GlobalManagement.Constants; using Nocturnis.GlobalManagement.Providers; @@ -28,22 +28,22 @@ public abstract partial class ScalarMultiplicationModule : this, new IDataInPort[] { DataInPorts[0] }, "Scalar Input Type", - EnigmosConstant.DataPortTypes.Real, - EnigmosConstant.DataPortTypes.NumericTypes + DataTypeConstant.BaseDataTypes.Real, + DataTypeConstant.DataTypeOptions.ScalarTypes ); TensorInputGroup = GlobalProvider.DataStructureProvider.NewDataInGroup( this, new IDataInPort[] { DataInPorts[1] }, "Tensor Input Type", - EnigmosConstant.DataPortTypes.R2, - EnigmosConstant.DataPortTypes.VectorTypes + DataTypeConstant.BaseDataTypes.R2, + DataTypeConstant.DataTypeOptions.VectorTypes ); OutputGroup = GlobalProvider.DataStructureProvider.NewDataOutGroup( this, DataOutPorts, "", - EnigmosConstant.DataPortTypes.Real, - Array.Empty() + DataTypeConstant.BaseDataTypes.Real, + DataTypeConstant.DataTypeOptions.VectorTypes ); ConfigurablePortGroups = new HashSet { ScalarInputGroup, TensorInputGroup }; PostInit(); @@ -52,7 +52,7 @@ public abstract partial class ScalarMultiplicationModule : public override void Define() { - (object, StringName) Func(CacheItem cache) => + (object, DataType) Func(CacheItem cache) => GlobalProvider.PolymorphismProvider!.ScalarMul(this.X(cache), this.Y(cache)); this.Define(Func); } diff --git a/Modules/ComputationalModules/Binary/SubtractionModule.cs b/Modules/ComputationalModules/Binary/SubtractionModule.cs index 51aa9d9..84cc66f 100644 --- a/Modules/ComputationalModules/Binary/SubtractionModule.cs +++ b/Modules/ComputationalModules/Binary/SubtractionModule.cs @@ -1,8 +1,8 @@ using Godot; using Nocturnis.DataStructures.DataPortGroups; +using Nocturnis.DataStructures.DataTypes; using Nocturnis.Enigmos.Modules; using Nocturnis.Enigmos.Modules.ComputationalModules; -using Nocturnis.Enigmos.Ports; using Nocturnis.GlobalManagement.Constants; using Nocturnis.GlobalManagement.Providers; using Skeleton.DataStructure; @@ -25,15 +25,15 @@ public abstract partial class SubtractionModule : BinaryComputationalModule, this, DataInPorts, "", - EnigmosConstant.DataPortTypes.Real, - Array.Empty() + DataTypeConstant.BaseDataTypes.Real, + DataTypeConstant.DataTypeOptions.TensorTypes ); OutputGroup = GlobalProvider.DataStructureProvider.NewDataOutGroup( this, DataOutPorts, "Output Port Type", - EnigmosConstant.DataPortTypes.Real, - EnigmosConstant.DataPortTypes.AnyTensor + DataTypeConstant.BaseDataTypes.Real, + DataTypeConstant.DataTypeOptions.TensorTypes ); ConfigurablePortGroups = new HashSet { OutputGroup }; PostInit(); @@ -41,7 +41,7 @@ public abstract partial class SubtractionModule : BinaryComputationalModule, public override void Define() { - (object, StringName) Func(CacheItem cache) => GlobalProvider.PolymorphismProvider!.Sub(this.X(cache), this.Y(cache)); + (object, DataType) Func(CacheItem cache) => GlobalProvider.PolymorphismProvider!.Sub(this.X(cache), this.Y(cache)); } diff --git a/Modules/ComputationalModules/Binary/V2Module.cs b/Modules/ComputationalModules/Binary/V2Module.cs index 40ef447..2a10ee2 100644 --- a/Modules/ComputationalModules/Binary/V2Module.cs +++ b/Modules/ComputationalModules/Binary/V2Module.cs @@ -1,10 +1,9 @@ -using Enigmos.Ports.DataPorts; using Godot; -using Nocturnis.DataStructures; +using Nocturnis.DataStructures.Data; using Nocturnis.DataStructures.DataPortGroups; +using Nocturnis.DataStructures.DataTypes; using Nocturnis.Enigmos.Modules; using Nocturnis.Enigmos.Modules.ComputationalModules; -using Nocturnis.Enigmos.Ports; using Nocturnis.GlobalManagement.Constants; using Nocturnis.GlobalManagement.Providers; using Skeleton.DataStructure; @@ -32,15 +31,15 @@ public abstract partial class V2Module : BinaryComputationalModule, this, DataInPorts, "Scalar Input Type", - EnigmosConstant.DataPortTypes.Real, - EnigmosConstant.DataPortTypes.NumericTypes + DataTypeConstant.BaseDataTypes.Real, + DataTypeConstant.DataTypeOptions.ScalarTypes ); OutputGroup = GlobalProvider.DataStructureProvider.NewDataOutGroup( this, DataOutPorts, "", - EnigmosConstant.DataPortTypes.R2, - Array.Empty() + DataTypeConstant.BaseDataTypes.R2, + DataTypeConstant.DataTypeOptions.VectorTypes ); ConfigurablePortGroups = new HashSet { ScalarInputGroup }; PostInit(); @@ -48,14 +47,14 @@ public abstract partial class V2Module : BinaryComputationalModule, public override void Define() { - (object, StringName) Func(CacheItem cache) + (object, DataType) Func(CacheItem cache) { - IData x = this.X(cache); - IData y = this.Y(cache); + DataVariable x = this.X(cache); + DataVariable y = this.Y(cache); - if (x.Type == EnigmosConstant.DataPortTypes.Complex || y.Type == EnigmosConstant.DataPortTypes.Complex) - return (new C2(x.Complex, y.Complex), EnigmosConstant.DataPortTypes.C2); - return (new R2(x.Double, y.Double), EnigmosConstant.DataPortTypes.Real); + if (x.Type == DataTypeConstant.BaseDataTypes.Complex || y.Type == DataTypeConstant.BaseDataTypes.Complex) + return (new C2(x.Complex, y.Complex), DataTypeConstant.BaseDataTypes.C2); + return (new R2(x.Real, y.Real), DataTypeConstant.BaseDataTypes.Real); } this.Define(Func); } diff --git a/Modules/ComputationalModules/BinaryComputationalModule.cs b/Modules/ComputationalModules/BinaryComputationalModule.cs index ef1af85..c209a30 100644 --- a/Modules/ComputationalModules/BinaryComputationalModule.cs +++ b/Modules/ComputationalModules/BinaryComputationalModule.cs @@ -1,5 +1,4 @@ using Nocturnis.Enigmos.Modules.ComputationalModules; -using Nocturnis.Enigmos.Ports; using Nocturnis.Enigmos.Ports.DataPorts.Directions; namespace Enigmos.Modules.ComputationalModules; diff --git a/Modules/ComputationalModules/Nullary/ConstantModule.cs b/Modules/ComputationalModules/Nullary/ConstantModule.cs index bf9d869..a6b5348 100644 --- a/Modules/ComputationalModules/Nullary/ConstantModule.cs +++ b/Modules/ComputationalModules/Nullary/ConstantModule.cs @@ -2,7 +2,6 @@ using Godot; using Nocturnis.DataStructures.ConfigurableParameters; using Nocturnis.Enigmos.Modules; using Nocturnis.Enigmos.Modules.ComputationalModules; -using Nocturnis.Enigmos.Ports; using Nocturnis.GlobalManagement.Constants; using Nocturnis.GlobalManagement.Providers; @@ -17,7 +16,7 @@ public abstract partial class ConstantModule : NullaryComputationalModule, IPara { base.Init(); this.DataOutInit("Output", 4); - this.SetOutputType(EnigmosConstant.DataPortTypes.Real); + this.SetOutputType(DataTypeConstant.BaseDataTypes.Real); ConstValue = GlobalProvider.DataStructureProvider!.NewDoubleParameter( @@ -33,7 +32,7 @@ public abstract partial class ConstantModule : NullaryComputationalModule, IPara public override void Define() { this.Define(cache => - (ConstValue!.ParameterValue, EnigmosConstant.DataPortTypes.Real) + (ConstValue!.ParameterValue, DataTypeConstant.BaseDataTypes.Real) ); } diff --git a/Modules/ComputationalModules/Nullary/KeyListenerModule.cs b/Modules/ComputationalModules/Nullary/KeyListenerModule.cs index 812df61..9d294db 100644 --- a/Modules/ComputationalModules/Nullary/KeyListenerModule.cs +++ b/Modules/ComputationalModules/Nullary/KeyListenerModule.cs @@ -1,7 +1,7 @@ -using Enigmos.Ports; using Enigmos.Ports.DataPorts; using Godot; using Nocturnis.DataStructures.ConfigurableParameters; +using Nocturnis.DataStructures.DataTypes; using Nocturnis.Enigmos.Modules; using Nocturnis.Enigmos.Modules.ComputationalModules; using Nocturnis.GlobalManagement.Constants; @@ -25,7 +25,7 @@ public abstract partial class KeyListenerModule : NullaryComputationalModule, { base.Init(); this.DataOutInit("Output", 3); - this.SetOutputType(EnigmosConstant.DataPortTypes.Bit); + this.SetOutputType(DataTypeConstant.BaseDataTypes.Bit); ListeningKey = GlobalProvider.DataStructureProvider!.NewKeyParameter( "Listening Key", UsingPreset && (PresetActionName != null) ? PresetActionName : "KeyListenAction" @@ -37,13 +37,13 @@ public abstract partial class KeyListenerModule : NullaryComputationalModule, ListeningKey.ParameterValue = $"{ListeningKey.ParameterValue}{i}"; if(!UsingPreset) InputMap.AddAction(ListeningKey.ParameterValue); - GlobalProvider.SceneProvider!.RootScene.KeyListener.Register(this); + GlobalProvider.SceneProvider!.RootScene!.KeyListener.Register(this); PostInit(); } public override void Define() { - (object item, StringName type) Func(CacheItem cache) => (Pressed, EnigmosConstant.DataPortTypes.Bit); + (object, DataType) Func(CacheItem cache) => (Pressed, DataTypeConstant.BaseDataTypes.Bit); this.Define(Func); } } diff --git a/Modules/ComputationalModules/Nullary/NormalDistributionModule.cs b/Modules/ComputationalModules/Nullary/NormalDistributionModule.cs index 87c5cfd..6151607 100644 --- a/Modules/ComputationalModules/Nullary/NormalDistributionModule.cs +++ b/Modules/ComputationalModules/Nullary/NormalDistributionModule.cs @@ -2,7 +2,6 @@ using Enigmos.Ports.DataPorts; using Nocturnis.DataStructures.ConfigurableParameters; using Nocturnis.Enigmos.Modules; using Nocturnis.Enigmos.Modules.ComputationalModules; -using Nocturnis.Enigmos.Ports; using Nocturnis.Enigmos.Ports.DataPorts.Directions; using Nocturnis.GlobalManagement.Constants; using Nocturnis.GlobalManagement.Providers; @@ -28,7 +27,7 @@ public abstract partial class NormalDistributionModule : NullaryComputationalMod { base.Init(); this.DataOutInit("Output", 4); - this.SetOutputType(EnigmosConstant.DataPortTypes.Real); + this.SetOutputType(DataTypeConstant.BaseDataTypes.Real); Mu = GlobalProvider.DataStructureProvider!.NewDoubleParameter("mu", -1, 1, 0); Sigma = GlobalProvider.DataStructureProvider.NewDoubleParameter("sigma", 0, 2, 1); ConfigurableParameters = new HashSet { Mu, Sigma }; @@ -40,7 +39,7 @@ public abstract partial class NormalDistributionModule : NullaryComputationalMod foreach (IDataOutPort op in DataOutPorts) { op.OutData.UpdateCalculation(x => - (Normal.Get() * Sigma!.ParameterValue - Mu!.ParameterValue, EnigmosConstant.DataPortTypes.Real) + (Normal.Get() * Sigma!.ParameterValue - Mu!.ParameterValue, DataTypeConstant.BaseDataTypes.Real) ); } } diff --git a/Modules/ComputationalModules/NullaryComputationalModule.cs b/Modules/ComputationalModules/NullaryComputationalModule.cs index c964772..ed030b8 100644 --- a/Modules/ComputationalModules/NullaryComputationalModule.cs +++ b/Modules/ComputationalModules/NullaryComputationalModule.cs @@ -1,6 +1,4 @@ -using Enigmos.Ports; using Nocturnis.Enigmos.Modules; -using Nocturnis.Enigmos.Ports; namespace Enigmos.Modules.ComputationalModules; diff --git a/Modules/ComputationalModules/Ternary/SelectorModule.cs b/Modules/ComputationalModules/Ternary/SelectorModule.cs index 83d00ec..cb916a2 100644 --- a/Modules/ComputationalModules/Ternary/SelectorModule.cs +++ b/Modules/ComputationalModules/Ternary/SelectorModule.cs @@ -1,8 +1,7 @@ -using Godot; using Nocturnis.DataStructures.DataPortGroups; +using Nocturnis.DataStructures.DataTypes; using Nocturnis.Enigmos.Modules; using Nocturnis.Enigmos.Modules.ComputationalModules; -using Nocturnis.Enigmos.Ports; using Nocturnis.Enigmos.Ports.DataPorts; using Nocturnis.GlobalManagement.Constants; using Nocturnis.GlobalManagement.Providers; @@ -25,17 +24,17 @@ public abstract partial class SelectorModule : TernaryComputationalModule, this, new IDataPort[]{DataInPorts[1], DataInPorts[2]}.Union(DataOutPorts).ToArray(), "Data Type", - EnigmosConstant.DataPortTypes.Real, - EnigmosConstant.DataPortTypes.AnyType + DataTypeConstant.BaseDataTypes.Real, + DataTypeConstant.DataTypeOptions.AnyType ); - DataInPorts[0].SetDataType(EnigmosConstant.DataPortTypes.Bit); + DataInPorts[0].SetDataType(DataTypeConstant.BaseDataTypes.Bit); PostInit(); } public override void Define() { - (object, StringName) Func(CacheItem cache) + (object, DataType) Func(CacheItem cache) { if (this.X(cache).Bit) return (this.Y(cache).Data!, this.Y(cache).Type!); diff --git a/Modules/ComputationalModules/TernaryComputationalModule.cs b/Modules/ComputationalModules/TernaryComputationalModule.cs index eabdb05..7bd756e 100644 --- a/Modules/ComputationalModules/TernaryComputationalModule.cs +++ b/Modules/ComputationalModules/TernaryComputationalModule.cs @@ -1,5 +1,4 @@ using Nocturnis.Enigmos.Modules; -using Nocturnis.Enigmos.Ports; using Nocturnis.Enigmos.Ports.DataPorts.Directions; namespace Enigmos.Modules.ComputationalModules; diff --git a/Modules/ComputationalModules/Unary/CopyModule.cs b/Modules/ComputationalModules/Unary/CopyModule.cs index f0d1284..d6a79cd 100644 --- a/Modules/ComputationalModules/Unary/CopyModule.cs +++ b/Modules/ComputationalModules/Unary/CopyModule.cs @@ -1,8 +1,7 @@ -using Godot; using Nocturnis.DataStructures.DataPortGroups; +using Nocturnis.DataStructures.DataTypes; using Nocturnis.Enigmos.Modules; using Nocturnis.Enigmos.Modules.ComputationalModules; -using Nocturnis.Enigmos.Ports; using Nocturnis.GlobalManagement.Constants; using Nocturnis.GlobalManagement.Providers; using Skeleton.DataStructure; @@ -23,15 +22,15 @@ public abstract partial class CopyModule : UnaryComputationalModule, this, DataInPorts, "", - EnigmosConstant.DataPortTypes.Real, - Array.Empty() + DataTypeConstant.BaseDataTypes.Real, + DataTypeConstant.DataTypeOptions.AnyType ); - OutputGroup = GlobalProvider.DataStructureProvider.NewDataOutGroup( + OutputGroup = GlobalProvider.DataStructureProvider!.NewDataOutGroup( this, DataOutPorts, "Output Port Type", - EnigmosConstant.DataPortTypes.Real, - EnigmosConstant.DataPortTypes.AnyType + DataTypeConstant.BaseDataTypes.Real, + DataTypeConstant.DataTypeOptions.AnyType ); ConfigurablePortGroups = new HashSet { OutputGroup }; PostInit(); @@ -39,7 +38,7 @@ public abstract partial class CopyModule : UnaryComputationalModule, public override void Define() { - (object, StringName) Func(CacheItem cache) => (this.X(cache).Data, this.X(cache).Type)!; + (object, DataType) Func(CacheItem cache) => (this.X(cache).Data, this.X(cache).Type)!; this.Define(Func); } public void Inference() => InputGroup!.SelectedType = OutputGroup!.SelectedType; diff --git a/Modules/ComputationalModules/Unary/LogicalNegationModule.cs b/Modules/ComputationalModules/Unary/LogicalNegationModule.cs index 09eea93..beb8f71 100644 --- a/Modules/ComputationalModules/Unary/LogicalNegationModule.cs +++ b/Modules/ComputationalModules/Unary/LogicalNegationModule.cs @@ -1,6 +1,5 @@ -using Godot; +using Nocturnis.DataStructures.DataTypes; using Nocturnis.Enigmos.Modules.ComputationalModules; -using Nocturnis.Enigmos.Ports; using Nocturnis.GlobalManagement.Constants; using Skeleton.DataStructure; @@ -12,14 +11,14 @@ public abstract partial class LogicalNegationModule : UnaryComputationalModule, { base.Init(); this.DataOutInit("Output", 1); - this.SetInputType(EnigmosConstant.DataPortTypes.Bit); - this.SetOutputType(EnigmosConstant.DataPortTypes.Bit); + this.SetInputType(DataTypeConstant.BaseDataTypes.Bit); + this.SetOutputType(DataTypeConstant.BaseDataTypes.Bit); PostInit(); } public override void Define() { - (object, StringName) Func(CacheItem cache) => (!this.X(cache).Bit, EnigmosConstant.DataPortTypes.Bit); + (object, DataType) Func(CacheItem cache) => (!this.X(cache).Bit, DataTypeConstant.BaseDataTypes.Bit); this.Define(Func); } } diff --git a/Modules/ComputationalModules/Unary/NegationModule.cs b/Modules/ComputationalModules/Unary/NegationModule.cs index 34eaf75..392fbae 100644 --- a/Modules/ComputationalModules/Unary/NegationModule.cs +++ b/Modules/ComputationalModules/Unary/NegationModule.cs @@ -1,9 +1,7 @@ -using Enigmos.Ports.DataPorts; -using Godot; using Nocturnis.DataStructures.DataPortGroups; +using Nocturnis.DataStructures.DataTypes; using Nocturnis.Enigmos.Modules; using Nocturnis.Enigmos.Modules.ComputationalModules; -using Nocturnis.Enigmos.Ports; using Nocturnis.GlobalManagement.Constants; using Nocturnis.GlobalManagement.Providers; using Skeleton.DataStructure; @@ -25,15 +23,15 @@ public abstract partial class NegationModule : UnaryComputationalModule, IPolymo this, DataInPorts, "", - EnigmosConstant.DataPortTypes.Real, - Array.Empty() + DataTypeConstant.BaseDataTypes.Real, + DataTypeConstant.DataTypeOptions.TensorTypes ); OutputGroup = GlobalProvider.DataStructureProvider.NewDataOutGroup( this, DataOutPorts, "Output Port Type", - EnigmosConstant.DataPortTypes.Real, - EnigmosConstant.DataPortTypes.AnyTensor + DataTypeConstant.BaseDataTypes.Real, + DataTypeConstant.DataTypeOptions.TensorTypes ); ConfigurablePortGroups = new HashSet { OutputGroup }; PostInit(); @@ -42,7 +40,7 @@ public abstract partial class NegationModule : UnaryComputationalModule, IPolymo public override void Define() { - (object, StringName) Func(CacheItem c) => + (object, DataType) Func(CacheItem c) => GlobalProvider.PolymorphismProvider!.Neg(this.X(c)); this.Define(Func); } diff --git a/Modules/ComputationalModules/Unary/SquareModule.cs b/Modules/ComputationalModules/Unary/SquareModule.cs index 5e98b95..defd2a8 100644 --- a/Modules/ComputationalModules/Unary/SquareModule.cs +++ b/Modules/ComputationalModules/Unary/SquareModule.cs @@ -1,8 +1,8 @@ using Godot; using Nocturnis.DataStructures.DataPortGroups; +using Nocturnis.DataStructures.DataTypes; using Nocturnis.Enigmos.Modules; using Nocturnis.Enigmos.Modules.ComputationalModules; -using Nocturnis.Enigmos.Ports; using Nocturnis.GlobalManagement.Constants; using Nocturnis.GlobalManagement.Providers; using Skeleton.DataStructure; @@ -23,15 +23,15 @@ public abstract partial class SquareModule : UnaryComputationalModule, IPolymorp this, DataInPorts, "", - EnigmosConstant.DataPortTypes.Real, - Array.Empty() + DataTypeConstant.BaseDataTypes.Real, + DataTypeConstant.DataTypeOptions.ScalarTypes ); - OutputGroup = GlobalProvider.DataStructureProvider.NewDataPortGroup( + OutputGroup = GlobalProvider.DataStructureProvider.NewDataOutGroup( this, DataOutPorts, "Output Port Type", - EnigmosConstant.DataPortTypes.Real, - EnigmosConstant.DataPortTypes.NumericTypes + DataTypeConstant.BaseDataTypes.Real, + DataTypeConstant.DataTypeOptions.ScalarTypes ); ConfigurablePortGroups = new HashSet { OutputGroup }; PostInit(); @@ -39,7 +39,7 @@ public abstract partial class SquareModule : UnaryComputationalModule, IPolymorp public override void Define() { - (object, StringName) Func(CacheItem c) => GlobalProvider.PolymorphismProvider!.Square(this.X(c)); + (object, DataType) Func(CacheItem c) => GlobalProvider.PolymorphismProvider!.Square(this.X(c)); this.Define(Func); } diff --git a/Modules/ComputationalModules/Unary/V2ComponentModule.cs b/Modules/ComputationalModules/Unary/V2ComponentModule.cs index ad15d2f..fa67bb7 100644 --- a/Modules/ComputationalModules/Unary/V2ComponentModule.cs +++ b/Modules/ComputationalModules/Unary/V2ComponentModule.cs @@ -1,9 +1,9 @@ using Godot; -using Nocturnis.DataStructures; +using Nocturnis.DataStructures.Data; using Nocturnis.DataStructures.DataPortGroups; +using Nocturnis.DataStructures.DataTypes; using Nocturnis.Enigmos.Modules; using Nocturnis.Enigmos.Modules.ComputationalModules; -using Nocturnis.Enigmos.Ports; using Nocturnis.GlobalManagement.Constants; using Nocturnis.GlobalManagement.Providers; using Skeleton.DataStructure; @@ -26,15 +26,15 @@ public abstract partial class V2ComponentModule : UnaryComputationalModule, IPol this, DataInPorts, "Vector Input Type", - EnigmosConstant.DataPortTypes.R2, - EnigmosConstant.DataPortTypes.VectorTypes + DataTypeConstant.BaseDataTypes.R2, + DataTypeConstant.DataTypeOptions.VectorTypes ); ScalarOutputGroup = GlobalProvider.DataStructureProvider.NewDataOutGroup( this, DataOutPorts, "", - EnigmosConstant.DataPortTypes.Real, - Array.Empty() + DataTypeConstant.BaseDataTypes.Real, + DataTypeConstant.DataTypeOptions.ScalarTypes ); ConfigurablePortGroups = new HashSet { VectorInputGroup }; PostInit(); @@ -42,19 +42,19 @@ public abstract partial class V2ComponentModule : UnaryComputationalModule, IPol public override void Define() { - (object, StringName) Func1(CacheItem c) + (object, DataType) Func1(CacheItem c) { - IData v = this.X(c); - if (v.Type == EnigmosConstant.DataPortTypes.R2) - return (v.R2[1], EnigmosConstant.DataPortTypes.Real); - return (v.C2[1], EnigmosConstant.DataPortTypes.Complex); + DataVariable v = this.X(c); + if (v.Type == DataTypeConstant.BaseDataTypes.R2) + return (v.R2[1], DataTypeConstant.BaseDataTypes.Real); + return (v.C2[1], DataTypeConstant.BaseDataTypes.Complex); } - (object, StringName) Func2(CacheItem c) + (object, DataType) Func2(CacheItem c) { - IData v = this.X(c); - if (v.Type == EnigmosConstant.DataPortTypes.R2) - return (v.R2[2], EnigmosConstant.DataPortTypes.Real); - return (v.C2[2], EnigmosConstant.DataPortTypes.Complex); + DataVariable v = this.X(c); + if (v.Type == DataTypeConstant.BaseDataTypes.R2) + return (v.R2[2], DataTypeConstant.BaseDataTypes.Real); + return (v.C2[2], DataTypeConstant.BaseDataTypes.Complex); } DataOutPorts[0].OutData.UpdateCalculation(Func1); DataOutPorts[1].OutData.UpdateCalculation(Func2); diff --git a/Modules/ComputationalModules/UnaryComputationalModule.cs b/Modules/ComputationalModules/UnaryComputationalModule.cs index e1407e1..769f16d 100644 --- a/Modules/ComputationalModules/UnaryComputationalModule.cs +++ b/Modules/ComputationalModules/UnaryComputationalModule.cs @@ -1,6 +1,5 @@ using Nocturnis.Enigmos.Modules; using Nocturnis.Enigmos.Modules.ComputationalModules; -using Nocturnis.Enigmos.Ports; using Nocturnis.Enigmos.Ports.DataPorts.Directions; namespace Enigmos.Modules.ComputationalModules; diff --git a/Modules/ControllingModules/ActionModules/AttackActionModule.cs b/Modules/ControllingModules/ActionModules/AttackActionModule.cs index 3b19a18..188164c 100644 --- a/Modules/ControllingModules/ActionModules/AttackActionModule.cs +++ b/Modules/ControllingModules/ActionModules/AttackActionModule.cs @@ -1,5 +1,4 @@ using Nocturnis.Enigmos.Modules; -using Nocturnis.Enigmos.Ports; using Nocturnis.Enigmos.Ports.DataPorts.Directions; using Nocturnis.GlobalManagement.Constants; using Nocturnis.GlobalManagement.Controls; @@ -22,7 +21,7 @@ public abstract partial class AttackActionModule : ActionModule, ITerminalModule base.Init(); this.SignalInInit("SignalIn", 4); this.DataInInit("Input", 1); - DataInPorts[0].SetDataType(EnigmosConstant.DataPortTypes.R2); + DataInPorts[0].SetDataType(DataTypeConstant.BaseDataTypes.R2); PostInit(); } diff --git a/Modules/ControllingModules/ActionModules/MoveActionModule.cs b/Modules/ControllingModules/ActionModules/MoveActionModule.cs index 2664d58..bdd1465 100644 --- a/Modules/ControllingModules/ActionModules/MoveActionModule.cs +++ b/Modules/ControllingModules/ActionModules/MoveActionModule.cs @@ -1,7 +1,4 @@ -using Enigmos.Ports.DataPorts; -using Enigmos.Ports.SignalPorts; using Nocturnis.Enigmos.Modules; -using Nocturnis.Enigmos.Ports; using Nocturnis.Enigmos.Ports.DataPorts.Directions; using Nocturnis.GlobalManagement.Constants; using Nocturnis.GlobalManagement.Controls; @@ -25,7 +22,7 @@ public abstract partial class MoveActionModule : ActionModule, ITerminalModule base.Init(); this.DataInInit("Input", 1); this.SignalInInit("SignalIn", 4); - DataInPorts[0].SetDataType(EnigmosConstant.DataPortTypes.R2); + DataInPorts[0].SetDataType(DataTypeConstant.BaseDataTypes.R2); PostInit(); } diff --git a/Modules/ControllingModules/RootModule.cs b/Modules/ControllingModules/RootModule.cs index a2a80fc..d317624 100644 --- a/Modules/ControllingModules/RootModule.cs +++ b/Modules/ControllingModules/RootModule.cs @@ -1,7 +1,6 @@ using System.Diagnostics; using Nocturnis.Creatures; using Nocturnis.Enigmos.Modules; -using Nocturnis.Enigmos.Ports; using Nocturnis.Enigmos.Ports.SignalPorts.Directions; namespace Enigmos.Modules.ControllingModules; diff --git a/Modules/ControllingModules/SinglePoleDoubleThrowSwitchModule.cs b/Modules/ControllingModules/SinglePoleDoubleThrowSwitchModule.cs index b8ea9a2..254725d 100644 --- a/Modules/ControllingModules/SinglePoleDoubleThrowSwitchModule.cs +++ b/Modules/ControllingModules/SinglePoleDoubleThrowSwitchModule.cs @@ -1,6 +1,5 @@ using Nocturnis.DataStructures.ConfigurableParameters; using Nocturnis.Enigmos.Modules; -using Nocturnis.Enigmos.Ports; using Nocturnis.Enigmos.Ports.DataPorts.Directions; using Nocturnis.Enigmos.Ports.SignalPorts.Directions; using Nocturnis.GlobalManagement.Constants; @@ -30,7 +29,7 @@ public abstract partial class SinglePoleDoubleThrowSwitchModule : PiplineModule, this.DataInInit("Input", 1); LeftPortForTrue = GlobalProvider.DataStructureProvider!.NewBoolParameter("Redirect to:", "Left", "Right", true); - DataInPorts[0].SetDataType(EnigmosConstant.DataPortTypes.Bit); + DataInPorts[0].SetDataType(DataTypeConstant.BaseDataTypes.Bit); ConfigurableParameters = new HashSet { LeftPortForTrue }; PostInit(); } diff --git a/Modules/ControllingModules/SinglePoleSingleThrowSwitchModule.cs b/Modules/ControllingModules/SinglePoleSingleThrowSwitchModule.cs index bf8d855..3251019 100644 --- a/Modules/ControllingModules/SinglePoleSingleThrowSwitchModule.cs +++ b/Modules/ControllingModules/SinglePoleSingleThrowSwitchModule.cs @@ -1,5 +1,4 @@ using Nocturnis.Enigmos.Modules; -using Nocturnis.Enigmos.Ports; using Nocturnis.Enigmos.Ports.DataPorts.Directions; using Nocturnis.GlobalManagement.Constants; using Nocturnis.GlobalManagement.Controls; @@ -25,7 +24,7 @@ public abstract partial class SinglePoleSingleThrowSwitchModule : PiplineModule, this.DataInInit("Input", 1); this.SignalInInit("SignalIn", 1); this.SignalOutInit("SignalOut", 1); - DataInPorts[0].SetDataType(EnigmosConstant.DataPortTypes.Bit); + DataInPorts[0].SetDataType(DataTypeConstant.BaseDataTypes.Bit); PostInit(); } diff --git a/Modules/InterlayerModules/InterlayerDataOutModule.cs b/Modules/InterlayerModules/InterlayerDataOutModule.cs index 56df6df..f97a1ef 100644 --- a/Modules/InterlayerModules/InterlayerDataOutModule.cs +++ b/Modules/InterlayerModules/InterlayerDataOutModule.cs @@ -1,6 +1,4 @@ -using Enigmos.Modules.ComputationalModules; using Enigmos.Modules.SubModules; -using Godot; using Nocturnis.Enigmos.Modules; using Nocturnis.Enigmos.Modules.ComputationalModules; using Nocturnis.Enigmos.Modules.InterlayerModules; diff --git a/Modules/InterlayerModules/InterlayerSignalInModule.cs b/Modules/InterlayerModules/InterlayerSignalInModule.cs index 097b5ba..6e27329 100644 --- a/Modules/InterlayerModules/InterlayerSignalInModule.cs +++ b/Modules/InterlayerModules/InterlayerSignalInModule.cs @@ -1,5 +1,4 @@ using Enigmos.Modules.SubModules; -using Godot; using Nocturnis.Enigmos.Modules; using Nocturnis.Enigmos.Modules.InterlayerModules; using Nocturnis.Enigmos.Ports; diff --git a/Modules/ProgrammableModules/FilterModule/FilterInputProviderModule.cs b/Modules/ProgrammableModules/FilterModule/FilterInputProviderModule.cs index e705b4b..5ee17ed 100644 --- a/Modules/ProgrammableModules/FilterModule/FilterInputProviderModule.cs +++ b/Modules/ProgrammableModules/FilterModule/FilterInputProviderModule.cs @@ -1,15 +1,14 @@ using Enigmos.Boards; using Enigmos.Modules.SubModules; -using Godot; -using Nocturnis.DataStructures; +using Nocturnis.DataStructures.Data; +using Nocturnis.DataStructures.DataTypes; using Nocturnis.Enigmos.Modules.ComputationalModules; -using Nocturnis.Enigmos.Ports; using Nocturnis.Enigmos.Ports.DataPorts.Directions; using Skeleton.DataStructure; namespace Enigmos.Modules.ProgrammableModules.FilterModule; -public partial class FilterInputProviderModule : SubModule, IComputationalModule +public abstract partial class FilterInputProviderModule : SubModule, IComputationalModule { public IDataOutPort[] DataOutPorts { get; set; } = Array.Empty(); public IDataOutPort? Output { get; set; } @@ -27,9 +26,9 @@ public partial class FilterInputProviderModule : SubModule, IComputationalModule public void Define() { - (object, StringName) Func(CacheItem c) + (object, DataType) Func(CacheItem c) { - IData w = ParentBoard!.FilterModule!.CachedInputArray[ParentBoard.FilterModule.ProcessingIndex]; + DataVariable w = ParentBoard!.FilterModule!.CachedInputArray[ParentBoard.FilterModule.ProcessingIndex]; return (w.Data, w.Type)!; } Output!.OutData.UpdateCalculation(Func); diff --git a/Modules/ProgrammableModules/FilterModule/FilterModule.cs b/Modules/ProgrammableModules/FilterModule/FilterModule.cs index c2999cc..f449253 100644 --- a/Modules/ProgrammableModules/FilterModule/FilterModule.cs +++ b/Modules/ProgrammableModules/FilterModule/FilterModule.cs @@ -1,7 +1,7 @@ using Enigmos.Boards; using Enigmos.Modules.InterlayerModules; using Enigmos.Modules.SubModules; -using Nocturnis.DataStructures; +using Nocturnis.DataStructures.Data; using Nocturnis.DataStructures.DataPortGroups; using Nocturnis.Enigmos.Modules; using Nocturnis.Enigmos.Modules.InterlayerModules; @@ -24,12 +24,12 @@ public abstract partial class FilterModule : ProgrammableModule, private IDataPortGroup[] InterLayerGroups { get; set; } = Array.Empty(); private IDataPortGroup? ArrayGroup { get; set; } - public IData[] CachedInputArray { get; set; } = Array.Empty(); - public IData? CachedResult { get; set; } + public DataVariable[] CachedInputArray { get; set; } = Array.Empty(); + public DataVariable? CachedResult { get; set; } public bool ComputationFinished { get; set; } public bool ComputationStarted { get; set; } - private List CachedListResult { get; set; } = new(); + private List CachedListResult { get; set; } = new(); public int ProcessingIndex { get; set; } public new FilterModuleBoard UnderlyingBoard @@ -60,7 +60,7 @@ public abstract partial class FilterModule : ProgrammableModule, { CachedInputArray = InputArray!.GetData.Get!.Array; ProcessingIndex = 0; - CachedListResult = new List(); + CachedListResult = new List(); ComputationStarted = true; } @@ -106,8 +106,8 @@ public abstract partial class FilterModule : ProgrammableModule, this, new IDataPort[] { ExplicitInputs[i].DataIn!, UnderlyingBoard.FilterInputProxy[i].DataOut! }, $"Exterior In -> Interior Out{i}", - EnigmosConstant.DataPortTypes.Real, - EnigmosConstant.DataPortTypes.AnyType + DataTypeConstant.BaseDataTypes.Real, + DataTypeConstant.DataTypeOptions.AnyType ); ExplicitInputs[i].Board = Board; } @@ -116,8 +116,8 @@ public abstract partial class FilterModule : ProgrammableModule, this, new IDataPort[] { InputArray, OutputArrayModule.Out! }, "Array Type", - EnigmosConstant.DataPortTypes.RealArray, - EnigmosConstant.DataPortTypes.AnyArray + DataTypeConstant.AutoDataTypes.AutoArray, + DataTypeConstant.DataTypeOptions.AnyArray ); ConfigurablePortGroups = InterLayerGroups.Union(new[] { ArrayGroup }).ToHashSet(); diff --git a/Modules/ProgrammableModules/FunctionModule/FunctionModule.cs b/Modules/ProgrammableModules/FunctionModule/FunctionModule.cs index e095bed..e318790 100644 --- a/Modules/ProgrammableModules/FunctionModule/FunctionModule.cs +++ b/Modules/ProgrammableModules/FunctionModule/FunctionModule.cs @@ -1,9 +1,7 @@ using Enigmos.Boards; using Enigmos.Modules.InterlayerModules; -using Godot; using Nocturnis.DataStructures.DataPortGroups; using Nocturnis.Enigmos.Modules; -using Nocturnis.Enigmos.Modules.InterlayerModules; using Nocturnis.Enigmos.Ports; using Nocturnis.Enigmos.Ports.DataPorts; using Nocturnis.GlobalManagement.Constants; @@ -97,15 +95,15 @@ public abstract partial class FunctionModule : ProgrammableModule, IPolymorphism this, new IDataPort[] { ExplicitDataInModules[i].DataIn, UnderlyingBoard.DataOuts[i].DataOut }, $"Exterior In -> Interior Out{i + 1}", - EnigmosConstant.DataPortTypes.Real, - EnigmosConstant.DataPortTypes.AnyType + DataTypeConstant.BaseDataTypes.Real, + DataTypeConstant.DataTypeOptions.AnyType ); InteriorToExterior[i] = GlobalProvider.DataStructureProvider.NewDataPortGroup( this, new IDataPort[] { UnderlyingBoard.DataIns[i].DataIn, ExplicitDataOutModules[i].DataOut }, $"Interior In -> Exterior Out{i + 1}", - EnigmosConstant.DataPortTypes.Real, - EnigmosConstant.DataPortTypes.AnyType + DataTypeConstant.BaseDataTypes.Real, + DataTypeConstant.DataTypeOptions.AnyType ); } diff --git a/Modules/ProgrammableModules/OptimizationModule/OptimizationInputProviderModule.cs b/Modules/ProgrammableModules/OptimizationModule/OptimizationInputProviderModule.cs index ff309df..8cec82b 100644 --- a/Modules/ProgrammableModules/OptimizationModule/OptimizationInputProviderModule.cs +++ b/Modules/ProgrammableModules/OptimizationModule/OptimizationInputProviderModule.cs @@ -1,9 +1,8 @@ using Enigmos.Boards; using Enigmos.Modules.SubModules; -using Godot; -using Nocturnis.DataStructures; +using Nocturnis.DataStructures.Data; +using Nocturnis.DataStructures.DataTypes; using Nocturnis.Enigmos.Modules.ComputationalModules; -using Nocturnis.Enigmos.Ports; using Nocturnis.Enigmos.Ports.DataPorts.Directions; using Skeleton.DataStructure; @@ -26,9 +25,9 @@ public partial class OptimizationInputProviderModule : SubModule, IComputational public void Define() { - (object, StringName) Func(CacheItem c) + (object, DataType) Func(CacheItem c) { - IData w = ParentBoard!.OptimizationModule!.CachedInputArray[ParentBoard.OptimizationModule.ProcessingIndex]; + DataVariable w = ParentBoard!.OptimizationModule!.CachedInputArray[ParentBoard.OptimizationModule.ProcessingIndex]; return (w.Data, w.Type)!; } Output!.OutData.UpdateCalculation(Func); diff --git a/Modules/ProgrammableModules/OptimizationModule/OptimizationModule.cs b/Modules/ProgrammableModules/OptimizationModule/OptimizationModule.cs index 33117ab..784359d 100644 --- a/Modules/ProgrammableModules/OptimizationModule/OptimizationModule.cs +++ b/Modules/ProgrammableModules/OptimizationModule/OptimizationModule.cs @@ -2,10 +2,10 @@ using Enigmos.Boards; using Enigmos.Modules.InterlayerModules; using Enigmos.Modules.SubModules; using Enigmos.Ports.DataPorts; -using Godot; -using Nocturnis.DataStructures; using Nocturnis.DataStructures.ConfigurableParameters; +using Nocturnis.DataStructures.Data; using Nocturnis.DataStructures.DataPortGroups; +using Nocturnis.DataStructures.DataTypes; using Nocturnis.Enigmos.Modules; using Nocturnis.Enigmos.Ports; using Nocturnis.Enigmos.Ports.DataPorts; @@ -25,11 +25,11 @@ public abstract partial class OptimizationModule : ProgrammableModule, public bool ComputationStarted { get; set; } private double? CachedOptimizeValue { get; set; } public IDataInPort? ArrayInput { get; set; } - public IData[] CachedInputArray { get; set; } = Array.Empty(); + public DataVariable[] CachedInputArray { get; set; } = Array.Empty(); public int ProcessingIndex { get; set; } private IBoolParameter? UsingMax { get; set; } - public IData CachedResult { get; set; } = - GlobalProvider.DataStructureProvider!.NewData(0, EnigmosConstant.DataPortTypes.Null); + public DataVariable CachedResult { get; set; } = + GlobalProvider.DataStructureProvider!.NewData(0, DataTypeConstant.BaseDataTypes.Null); public IDataInPort? InternalIterOut { get; set; } @@ -80,8 +80,7 @@ public abstract partial class OptimizationModule : ProgrammableModule, } ComputationFinished = true; - CachedInputArray = Array.Empty(); - //CachedArray = Array.Empty(); + CachedInputArray = Array.Empty(); ProcessingIndex = 0; CachedResult = GlobalProvider.DataStructureProvider!.NullData; CachedOptimizeValue = null; @@ -94,8 +93,8 @@ public abstract partial class OptimizationModule : ProgrammableModule, this, new IDataPort[] { ExplicitInputs[i].DataIn!, UnderlyingBoard.ImplicitDataOuts[i].DataOut! }, $"Exterior In -> Interior Out{i}", - EnigmosConstant.DataPortTypes.Real, - EnigmosConstant.DataPortTypes.AnyType + DataTypeConstant.BaseDataTypes.Real, + DataTypeConstant.DataTypeOptions.AnyType ); ExplicitInputs[i].Board = Board; } @@ -104,8 +103,8 @@ public abstract partial class OptimizationModule : ProgrammableModule, this, new IDataPort[] { ArrayInput }, "Array Input Type", - EnigmosConstant.DataPortTypes.AnyArrayType, - EnigmosConstant.DataPortTypes.AnyArray + DataTypeConstant.AutoDataTypes.AutoArray, + DataTypeConstant.DataTypeOptions.AnyArray ); UsingMax = GlobalProvider.DataStructureProvider.NewBoolParameter( "Method", @@ -113,8 +112,8 @@ public abstract partial class OptimizationModule : ProgrammableModule, "Min", true ); - Output.Out!.SetDataType(EnigmosConstant.DataPortTypes.Real); - Selector!.Selector!.SetDataType(EnigmosConstant.DataPortTypes.Real); + Output.Out!.SetDataType(DataTypeConstant.BaseDataTypes.Real); + Selector!.Selector!.SetDataType(DataTypeConstant.BaseDataTypes.Real); ConfigurableParameters = new HashSet { UsingMax }; ConfigurablePortGroups = InterlayerGroups.Union(new[] { OptimizationGroup }).ToHashSet(); @@ -125,7 +124,7 @@ public abstract partial class OptimizationModule : ProgrammableModule, public void Inference() { - StringName elementType = GlobalProvider.DataTypeProvider!.ToElement(OptimizationGroup!.SelectedType); + DataType elementType = GlobalProvider.DataTypeProvider!.ToElement(OptimizationGroup!.SelectedType); Output!.Out!.SetDataType(elementType); UnderlyingBoard.InputProvider!.Output!.SetDataType(elementType); } @@ -138,7 +137,7 @@ public abstract partial class OptimizationModule : ProgrammableModule, { CachedOptimizeValue = null; CachedInputArray = InternalArrayIn!.OutData.Get!.Array; - CachedResult = GlobalProvider.DataStructureProvider!.NewData(0, EnigmosConstant.DataPortTypes.Null); + CachedResult = GlobalProvider.DataStructureProvider!.NewData(0, DataTypeConstant.BaseDataTypes.Null); ProcessingIndex = 0; } @@ -150,8 +149,8 @@ public abstract partial class OptimizationModule : ProgrammableModule, (CachedInputArray[ProcessingIndex].Data, CachedInputArray[ProcessingIndex].Type)! ); UnderlyingBoard.InputProvider.Output.OutData.Expire(); - double currentValue = UnderlyingBoard.Selector!.Selector!.GetData.Get!.Double; - IData currentOut = InternalIterOut!.GetData.Get!; + double currentValue = UnderlyingBoard.Selector!.Selector!.GetData.Get!.Real; + DataVariable currentOut = InternalIterOut!.GetData.Get!; if (UsingMax!.ParameterValue) { if (CachedOptimizeValue == null || (CachedOptimizeValue < currentValue)) diff --git a/Modules/ProgrammableModules/ProgrammableModule.cs b/Modules/ProgrammableModules/ProgrammableModule.cs index 8b3d9e1..641f9ff 100644 --- a/Modules/ProgrammableModules/ProgrammableModule.cs +++ b/Modules/ProgrammableModules/ProgrammableModule.cs @@ -1,6 +1,5 @@ using Enigmos.Boards; using Enigmos.Modules.InterlayerModules; -using Enigmos.Modules.SubModules; using Nocturnis.Enigmos.Modules; using Nocturnis.Enigmos.Ports; using Nocturnis.GlobalManagement.Providers; diff --git a/Modules/SubModules/OutputSubModule.cs b/Modules/SubModules/OutputSubModule.cs index 8a6926e..e3040ad 100644 --- a/Modules/SubModules/OutputSubModule.cs +++ b/Modules/SubModules/OutputSubModule.cs @@ -1,4 +1,4 @@ -using Godot; +using Nocturnis.DataStructures.DataTypes; using Nocturnis.Enigmos.Modules; using Nocturnis.Enigmos.Ports.DataPorts.Directions; using Skeleton.DataStructure; @@ -24,7 +24,7 @@ public partial class OutputSubModule : SubModule, ISourceModule public void Define() { - (object, StringName) Func(CacheItem c) + (object, DataType) Func(CacheItem c) { if (!ParentModule!.ComputationFinished) ParentModule!.Compute(); diff --git a/Modules/TerminalModules/EngineModule.cs b/Modules/TerminalModules/EngineModule.cs index 113b816..dd4a273 100644 --- a/Modules/TerminalModules/EngineModule.cs +++ b/Modules/TerminalModules/EngineModule.cs @@ -19,7 +19,7 @@ public abstract partial class EngineModule : TerminalModule public override void Init() { base.Init(); - Throttle!.SetDataType(EnigmosConstant.DataPortTypes.Real); + Throttle!.SetDataType(DataTypeConstant.BaseDataTypes.Real); FuelTank = GetNode("FuelTank"); PostInit(); } @@ -33,7 +33,7 @@ public abstract partial class EngineModule : TerminalModule return; } HomogeneousMixture bottom = FuelTank.Item.ContentMaterial.LayerOrder.Last.Value; - double consumption = Math.Min(bottom.Amount, Throttle!.GetData.Get!.Double.DoubleCut() * bottom.CombustRate); + double consumption = Math.Min(bottom.Amount, Throttle!.GetData.Get!.Real.DoubleCut() * bottom.CombustRate); EnigmosControl.Instance.Energy = consumption * bottom.Energy; bottom.Amount -= consumption; } diff --git a/Modules/TerminalModules/MemoryModule.cs b/Modules/TerminalModules/MemoryModule.cs index 287afa6..b5222f9 100644 --- a/Modules/TerminalModules/MemoryModule.cs +++ b/Modules/TerminalModules/MemoryModule.cs @@ -1,8 +1,7 @@ -using Nocturnis.DataStructures; +using Nocturnis.DataStructures.Data; using Nocturnis.DataStructures.DataPortGroups; using Nocturnis.Enigmos.Modules; using Nocturnis.Enigmos.Modules.ComputationalModules; -using Nocturnis.Enigmos.Ports; using Nocturnis.Enigmos.Ports.DataPorts; using Nocturnis.Enigmos.Ports.DataPorts.Directions; using Nocturnis.GlobalManagement.Constants; @@ -12,7 +11,7 @@ namespace Enigmos.Modules.TerminalModules; public abstract partial class MemoryModule : BaseModule, ITerminalModule, ISourceModule, IDuplicateOutputModule { - private IData? Memory { get; set; } + private DataVariable? Memory { get; set; } private IDataPortGroup? MemoryPortGroup { get; set; } public HashSet ConfigurablePortGroups { get; set; } = new(); @@ -22,18 +21,18 @@ public abstract partial class MemoryModule : BaseModule, ITerminalModule, ISourc public override void Init() { base.Init(); - Memory = GlobalProvider.DataStructureProvider!.NewData(0, EnigmosConstant.DataPortTypes.Null); + Memory = GlobalProvider.DataStructureProvider!.NewData(0, DataTypeConstant.BaseDataTypes.Null); this.DataInInit("Input", 3); this.DataOutInit("Output", 4); - DataInPorts[1].SetDataType(EnigmosConstant.DataPortTypes.Bit); - DataInPorts[2].SetDataType(EnigmosConstant.DataPortTypes.Bit); + DataInPorts[1].SetDataType(DataTypeConstant.BaseDataTypes.Bit); + DataInPorts[2].SetDataType(DataTypeConstant.BaseDataTypes.Bit); MemoryPortGroup =GlobalProvider.DataStructureProvider!.NewDataPortGroup( this, new IDataPort[] { DataInPorts[0] }.Union(DataOutPorts).ToArray(), "Memory Data Type:", - EnigmosConstant.DataPortTypes.Real, - EnigmosConstant.DataPortTypes.AnyType + DataTypeConstant.BaseDataTypes.Real, + DataTypeConstant.DataTypeOptions.AnyType ); ConfigurablePortGroups = new HashSet { MemoryPortGroup }; PostInit(); diff --git a/Modules/TerminalModules/SRLatchModule.cs b/Modules/TerminalModules/SRLatchModule.cs index 1668678..a70c0a8 100644 --- a/Modules/TerminalModules/SRLatchModule.cs +++ b/Modules/TerminalModules/SRLatchModule.cs @@ -1,6 +1,5 @@ using Nocturnis.Enigmos.Modules; using Nocturnis.Enigmos.Modules.ComputationalModules; -using Nocturnis.Enigmos.Ports; using Nocturnis.Enigmos.Ports.DataPorts.Directions; using Nocturnis.GlobalManagement.Constants; @@ -36,13 +35,13 @@ public abstract partial class SRLatchModule : BaseModule, base.Init(); this.DataInInit("Input",2); this.DataOutInit("Output", 2); - this.SetOutputType(EnigmosConstant.DataPortTypes.Bit); - this.SetInputType(EnigmosConstant.DataPortTypes.Bit); + this.SetOutputType(DataTypeConstant.BaseDataTypes.Bit); + this.SetInputType(DataTypeConstant.BaseDataTypes.Bit); PostInit(); } public void Define() { - this.Define(cache => (State, EnigmosConstant.DataPortTypes.Bit)); + this.Define(cache => (State, DataTypeConstant.BaseDataTypes.Bit)); } } diff --git a/Modules/TerminalModules/TestingModules/LightEmittingDiodeModule.cs b/Modules/TerminalModules/TestingModules/LightEmittingDiodeModule.cs index b07758b..44ffaad 100644 --- a/Modules/TerminalModules/TestingModules/LightEmittingDiodeModule.cs +++ b/Modules/TerminalModules/TestingModules/LightEmittingDiodeModule.cs @@ -1,8 +1,6 @@ -using Enigmos.Modules.ControllingModules; using Enigmos.Ports.DataPorts; using Godot; using Nocturnis.Enigmos.Modules; -using Nocturnis.Enigmos.Ports; using Nocturnis.Enigmos.Ports.DataPorts.Directions; using Nocturnis.GlobalManagement.Constants; @@ -23,7 +21,7 @@ public abstract partial class LightEmittingDiodeModule : TerminalModule Finished = true; LightEmittingDiode = GetNode("LightEmittingDiode"); Input = this.GetPort("Input"); - Input.SetDataType(EnigmosConstant.DataPortTypes.Bit); + Input.SetDataType(DataTypeConstant.BaseDataTypes.Bit); PostInit(); } diff --git a/Modules/TerminalModules/TestingModules/R2ReaderModule.cs b/Modules/TerminalModules/TestingModules/R2ReaderModule.cs index a30fe86..eef5c19 100644 --- a/Modules/TerminalModules/TestingModules/R2ReaderModule.cs +++ b/Modules/TerminalModules/TestingModules/R2ReaderModule.cs @@ -1,5 +1,3 @@ -using Enigmos.Modules.ControllingModules; -using Enigmos.Ports; using Enigmos.Ports.DataPorts; using Nocturnis.Enigmos.Modules; using Nocturnis.GlobalManagement.Constants; @@ -15,7 +13,7 @@ public abstract partial class R2ReaderModule : TerminalModule { base.Init(); DataIn = this.GetPort("DataIn"); - DataIn.SetDataType(EnigmosConstant.DataPortTypes.R2); + DataIn.SetDataType(DataTypeConstant.BaseDataTypes.R2); R2Reader = GetNode("R2Reader"); R2Reader.Init(); PostInit(); diff --git a/Modules/TerminalModules/TestingModules/RealReaderModule.cs b/Modules/TerminalModules/TestingModules/RealReaderModule.cs index d29a82b..b093c7e 100644 --- a/Modules/TerminalModules/TestingModules/RealReaderModule.cs +++ b/Modules/TerminalModules/TestingModules/RealReaderModule.cs @@ -1,7 +1,6 @@ using Godot; using Nocturnis.Enigmos.Modules; using Nocturnis.Enigmos.Modules.ComputationalModules; -using Nocturnis.Enigmos.Ports; using Nocturnis.Enigmos.Ports.DataPorts.Directions; using Nocturnis.GlobalManagement.Constants; using Skeleton.Utils.Helpers; @@ -17,7 +16,7 @@ public abstract partial class RealReaderModule : BaseModule, ITerminalModule, IO { base.Init(); this.DataInInit("Input", 3); - this.SetInputType(EnigmosConstant.DataPortTypes.Real); + this.SetInputType(DataTypeConstant.BaseDataTypes.Real); RealReader = GetNode("RealReader"); RealReader.SpeedScale = 0; RealReader.Play(); @@ -26,9 +25,9 @@ public abstract partial class RealReaderModule : BaseModule, ITerminalModule, IO public void Drain() { - double max = DataInPorts[0].GetData.Get!.Double; - double min = DataInPorts[2].GetData.Get!.Double; - double value = DataInPorts[1].GetData.Get!.Double; + double max = DataInPorts[0].GetData.Get!.Real; + double min = DataInPorts[2].GetData.Get!.Real; + double value = DataInPorts[1].GetData.Get!.Real; double range = max - min; double percentage = (range == 0 ? 0d : value / range).DoubleCut(); int frame = Mathf.FloorToInt(percentage * 122); diff --git a/Ports/DataPorts/DataOutPort.cs b/Ports/DataPorts/DataOutPort.cs index 2ae9132..abb5530 100644 --- a/Ports/DataPorts/DataOutPort.cs +++ b/Ports/DataPorts/DataOutPort.cs @@ -7,7 +7,7 @@ using Nocturnis.GlobalManagement.Providers; namespace Enigmos.Ports.DataPorts; -public partial class DataOutPort : DataPort, IDataOutPort +public abstract partial class DataOutPort : DataPort, IDataOutPort { public new IComputationalModule Module { @@ -36,5 +36,5 @@ public partial class DataOutPort : DataPort, IDataOutPort return res; } - public DataCache OutData { get; set; } = new(x => (0, "")); + public DataCache OutData { get; set; } = new(x => (0, GlobalProvider.DataStructureProvider!.NullDataType)); } diff --git a/Ports/DataPorts/DataPort.cs b/Ports/DataPorts/DataPort.cs index 47cbff1..cb3b7eb 100644 --- a/Ports/DataPorts/DataPort.cs +++ b/Ports/DataPorts/DataPort.cs @@ -1,8 +1,10 @@ using Enigmos.Cables; using Godot; +using Nocturnis.DataStructures.DataTypes; using Nocturnis.Enigmos.Cables; using Nocturnis.Enigmos.Ports; using Nocturnis.Enigmos.Ports.DataPorts; +using Nocturnis.GlobalManagement.Constants; using Nocturnis.GlobalManagement.Providers; namespace Enigmos.Ports.DataPorts; @@ -15,14 +17,14 @@ public abstract partial class DataPort : BasePort, IDataPort set => base.ConnectedPort = value; } protected Sprite2D? DataTypeTexture { get; set; } - public StringName? DataType { get; set; } + public DataType DataType { get; set; } = new(DataTypeConstant.BaseDataTypeNames.Null); public override void Init() { DataTypeTexture = GetNode("DataTypeTexture"); DataTypeTexture.Visible = false; base.Init(); } - public void SetDataType(StringName val) + public void SetDataType(DataType val) { if(Connected && val != ConnectedPort!.DataType) this.Disconnect();