To net8.0

This commit is contained in:
h z
2024-07-13 09:29:45 +01:00
parent 1df3c08a9e
commit f6a8f3e899
31 changed files with 53 additions and 72 deletions

View File

@@ -3,7 +3,6 @@ using Enigmos.Cables;
using Enigmos.Modules; using Enigmos.Modules;
using Enigmos.Modules.ProgrammableModules; using Enigmos.Modules.ProgrammableModules;
using Godot; using Godot;
using Nocturnis.DataStructures;
using Nocturnis.Enigmos.Boards; using Nocturnis.Enigmos.Boards;
using Nocturnis.Enigmos.Cables; using Nocturnis.Enigmos.Cables;
using Nocturnis.Enigmos.Modules; using Nocturnis.Enigmos.Modules;
@@ -93,12 +92,6 @@ public abstract partial class BaseBoard : Panel, IBaseBoard
CircuitBoardControlLayer.Board = this; CircuitBoardControlLayer.Board = this;
} }
public override void _Ready()
{
base._Ready();
}
protected virtual void AddModule(IBaseModule module, Vector2 pos) protected virtual void AddModule(IBaseModule module, Vector2 pos)
{ {
module.Board = this; module.Board = this;

View File

@@ -1,17 +1,18 @@
using Enigmos.Modules.ControllingModules; using Enigmos.Modules.ControllingModules;
using Enigmos.Modules.TerminalModules; using Enigmos.Modules.TerminalModules;
using Nocturnis.Creatures; using Nocturnis.Creatures;
using Nocturnis.Enigmos.Boards;
using Nocturnis.Enigmos.Modules; using Nocturnis.Enigmos.Modules;
using Nocturnis.GlobalManagement.Constants; using Nocturnis.GlobalManagement.Constants;
using Nocturnis.GlobalManagement.Controls; using Nocturnis.GlobalManagement.Controls;
namespace Enigmos.Boards; namespace Enigmos.Boards;
public partial class PrimaryModuleBoard : BaseBoard public partial class PrimaryModuleBoard : BaseBoard, IPrimaryBoard
{ {
private IBaseCreature? ManagedBy { get; set; } private IBaseCreature ManagedBy { get; set; }
public IRootModule? Root { get; set; } public IRootModule Root { get; set; }
public EngineModule? Engine { get; set; } public IEngineModule Engine { get; set; }
public void Init(IBaseCreature manager) public void Init(IBaseCreature manager)
@@ -29,7 +30,7 @@ public partial class PrimaryModuleBoard : BaseBoard
if (!Root!.ActionFinished) if (!Root!.ActionFinished)
return; return;
//Root.Timer = Stopwatch.StartNew(); //Root.Timer = Stopwatch.StartNew();
Engine!.Drain(); Engine!.Consume();
if (EnigmosControl.Instance.Energy < EnigmosConstant.IdlePower) if (EnigmosControl.Instance.Energy < EnigmosConstant.IdlePower)
{ {
Root!.ActionFinished = true; Root!.ActionFinished = true;
@@ -38,15 +39,8 @@ public partial class PrimaryModuleBoard : BaseBoard
} }
Root.Start(); Root.Start();
foreach (ITerminalModule tm in TerminalModules) foreach (ITerminalModule tm in TerminalModules)
{
tm.Consume(); tm.Consume();
}
//Root.RouteWithTimeoutHandle(Root);
//Root.Timer.Reset();
//foreach (TerminalModule module in TerminalModules())
// module.ConsumeWithTimeoutHandle(Root);
} }
} }

View File

@@ -1,7 +1,7 @@
<!--Project Sdk="Microsoft.NET.Sdk"--> <!--Project Sdk="Microsoft.NET.Sdk"-->
<Project Sdk="Godot.NET.Sdk/4.3.0-beta.3"> <Project Sdk="Godot.NET.Sdk/4.3.0-beta.3">
<PropertyGroup> <PropertyGroup>
<TargetFramework>net6.0</TargetFramework> <TargetFramework>net8.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings> <ImplicitUsings>enable</ImplicitUsings>
<Nullable>disable</Nullable> <Nullable>disable</Nullable>
<GenerateAssemblyInfo>false</GenerateAssemblyInfo> <GenerateAssemblyInfo>false</GenerateAssemblyInfo>

View File

@@ -1,4 +1,3 @@
using Enigmos.Modules.ProgrammableModules;
using Godot; using Godot;
using Nocturnis; using Nocturnis;
using Nocturnis.Enigmos.ModuleManuals; using Nocturnis.Enigmos.ModuleManuals;

View File

@@ -28,10 +28,7 @@ public partial class ModulePolymorphismTab : Panel, IModuleManualTab, ISceneConc
PortGroups = GetNode<VBoxContainer>("ScrolledItems/PortGroups"); PortGroups = GetNode<VBoxContainer>("ScrolledItems/PortGroups");
foreach (IDataPortGroup group in Module.ConfigurablePortGroups) foreach (IDataPortGroup group in Module.ConfigurablePortGroups)
{ {
PortTypeSelector selector = GlobalProvider PortTypeSelector selector = GlobalProvider.ProcessProvider.BuildPortTypeSelector(group) as PortTypeSelector;
.AssetMapper<PortTypeSelector>.Scene
.Instantiate<PortTypeSelector>();
selector.Init(group);
PortGroups.AddChild(selector); PortGroups.AddChild(selector);
} }
Name = "Poly"; Name = "Poly";

View File

@@ -1,12 +1,12 @@
using Godot; using Godot;
using Nocturnis; using Nocturnis;
using Nocturnis.DataStructures.DataPortGroups; using Nocturnis.DataStructures.DataPortGroups;
using Nocturnis.DataStructures.DataTypes; using Nocturnis.Enigmos.ModuleManuals;
using Nocturnis.GlobalManagement.Providers; using Nocturnis.GlobalManagement.Providers;
namespace Enigmos.Manual; namespace Enigmos.Manual;
public partial class PortTypeSelector : Control, ISceneConcept public partial class PortTypeSelector : Control, ISceneConcept, IPortTypeSelector
{ {
private bool InitFlag { get; set; } private bool InitFlag { get; set; }

View File

@@ -1,4 +1,3 @@
using Enigmos.Modules.ProgrammableModules;
using Godot; using Godot;
using Nocturnis; using Nocturnis;
using Nocturnis.Enigmos.ModuleManuals; using Nocturnis.Enigmos.ModuleManuals;

View File

@@ -1,4 +1,3 @@
using Godot;
using Nocturnis.DataStructures.DataPortGroups; using Nocturnis.DataStructures.DataPortGroups;
using Nocturnis.DataStructures.DataTypes; using Nocturnis.DataStructures.DataTypes;
using Nocturnis.Enigmos.Modules; using Nocturnis.Enigmos.Modules;

View File

@@ -11,7 +11,7 @@ public abstract partial class ComparisionModule : BinaryComputationalModule,
IDuplicateOutputModule, IDuplicateOutputModule,
IOperationModule IOperationModule
{ {
private IBoolParameter? Greater { get; set; } private IBoolParameter Greater { get; set; }
public HashSet<IConfigurableParameter> ConfigurableParameters { get; set; } = new(); public HashSet<IConfigurableParameter> ConfigurableParameters { get; set; } = new();
public override void Init() public override void Init()
@@ -21,7 +21,7 @@ public abstract partial class ComparisionModule : BinaryComputationalModule,
this.SetInputType(DataTypeConstant.BaseDataTypes.Real); this.SetInputType(DataTypeConstant.BaseDataTypes.Real);
this.SetOutputType(DataTypeConstant.BaseDataTypes.Real); this.SetOutputType(DataTypeConstant.BaseDataTypes.Real);
Greater = GlobalProvider.DataStructureProvider!.NewBoolParameter("Method", "gt", "lt", true); Greater = GlobalProvider.DataStructureProvider!.NewBoolParameter("Method", "gt", "lt", true);
ConfigurableParameters = new HashSet<IConfigurableParameter>() { Greater }; ConfigurableParameters = new HashSet<IConfigurableParameter> { Greater };
PostInit(); PostInit();
} }

View File

@@ -1,4 +1,3 @@
using Godot;
using Nocturnis.DataStructures.DataPortGroups; using Nocturnis.DataStructures.DataPortGroups;
using Nocturnis.DataStructures.DataTypes; using Nocturnis.DataStructures.DataTypes;
using Nocturnis.Enigmos.Modules; using Nocturnis.Enigmos.Modules;

View File

@@ -1,4 +1,3 @@
using Godot;
using Nocturnis.DataStructures.DataPortGroups; using Nocturnis.DataStructures.DataPortGroups;
using Nocturnis.DataStructures.DataTypes; using Nocturnis.DataStructures.DataTypes;
using Nocturnis.Enigmos.Modules; using Nocturnis.Enigmos.Modules;

View File

@@ -1,4 +1,3 @@
using Godot;
using Nocturnis.DataStructures.DataPortGroups; using Nocturnis.DataStructures.DataPortGroups;
using Nocturnis.DataStructures.DataTypes; using Nocturnis.DataStructures.DataTypes;
using Nocturnis.Enigmos.Modules; using Nocturnis.Enigmos.Modules;

View File

@@ -1,4 +1,3 @@
using Godot;
using Nocturnis.DataStructures.DataPortGroups; using Nocturnis.DataStructures.DataPortGroups;
using Nocturnis.DataStructures.DataTypes; using Nocturnis.DataStructures.DataTypes;
using Nocturnis.Enigmos.Modules; using Nocturnis.Enigmos.Modules;

View File

@@ -1,4 +1,3 @@
using Godot;
using Nocturnis.DataStructures.DataPortGroups; using Nocturnis.DataStructures.DataPortGroups;
using Nocturnis.DataStructures.DataTypes; using Nocturnis.DataStructures.DataTypes;
using Nocturnis.Enigmos.Modules; using Nocturnis.Enigmos.Modules;

View File

@@ -1,4 +1,3 @@
using Godot;
using Nocturnis.DataStructures.DataPortGroups; using Nocturnis.DataStructures.DataPortGroups;
using Nocturnis.DataStructures.DataTypes; using Nocturnis.DataStructures.DataTypes;
using Nocturnis.Enigmos.Modules; using Nocturnis.Enigmos.Modules;

View File

@@ -1,4 +1,3 @@
using Godot;
using Nocturnis.DataStructures.DataPortGroups; using Nocturnis.DataStructures.DataPortGroups;
using Nocturnis.DataStructures.DataTypes; using Nocturnis.DataStructures.DataTypes;
using Nocturnis.Enigmos.Modules; using Nocturnis.Enigmos.Modules;

View File

@@ -1,4 +1,3 @@
using Godot;
using Nocturnis.DataStructures.Data; using Nocturnis.DataStructures.Data;
using Nocturnis.DataStructures.DataPortGroups; using Nocturnis.DataStructures.DataPortGroups;
using Nocturnis.DataStructures.DataTypes; using Nocturnis.DataStructures.DataTypes;
@@ -16,8 +15,8 @@ public abstract partial class V2Module : BinaryComputationalModule,
IPolymorphismModule, IPolymorphismModule,
IDuplicateOutputModule IDuplicateOutputModule
{ {
private IDataPortGroup? ScalarInputGroup { get; set; } private IDataPortGroup ScalarInputGroup { get; set; }
private IDataPortGroup? OutputGroup { get; set; } private IDataPortGroup OutputGroup { get; set; }
public override double MaintenanceAlpha => 0.77852142d; public override double MaintenanceAlpha => 0.77852142d;
public override double MaintenanceBeta => 0.9544432d; public override double MaintenanceBeta => 0.9544432d;

View File

@@ -1,4 +1,3 @@
using Godot;
using Nocturnis.DataStructures.DataPortGroups; using Nocturnis.DataStructures.DataPortGroups;
using Nocturnis.DataStructures.DataTypes; using Nocturnis.DataStructures.DataTypes;
using Nocturnis.Enigmos.Modules; using Nocturnis.Enigmos.Modules;

View File

@@ -1,4 +1,3 @@
using Godot;
using Nocturnis.DataStructures.Data; using Nocturnis.DataStructures.Data;
using Nocturnis.DataStructures.DataPortGroups; using Nocturnis.DataStructures.DataPortGroups;
using Nocturnis.DataStructures.DataTypes; using Nocturnis.DataStructures.DataTypes;

View File

@@ -10,8 +10,7 @@ public abstract partial class AttackActionModule : ActionModule, ITerminalModule
public IDataInPort[] DataInPorts { get; set; } = Array.Empty<IDataInPort>(); public IDataInPort[] DataInPorts { get; set; } = Array.Empty<IDataInPort>();
public void Drain() public void Drain()
{ {
foreach (IDataInPort ip in DataInPorts)
_ = ip.GetData.Get;
} }
public bool Finished { get; set; } public bool Finished { get; set; }
@@ -28,6 +27,7 @@ public abstract partial class AttackActionModule : ActionModule, ITerminalModule
public override void Act() public override void Act()
{ {
CreatureControl.Instance.CurrentCharacter!.Action.Attack(DataInPorts[0].GetData.Get!.R2); CreatureControl.Instance.CurrentCharacter!.Action.Attack(DataInPorts[0].GetData.Get!.R2);
Finished = true;
} }
} }

View File

@@ -1,4 +1,3 @@
using System.Diagnostics;
using Nocturnis.Creatures; using Nocturnis.Creatures;
using Nocturnis.Enigmos.Modules; using Nocturnis.Enigmos.Modules;
using Nocturnis.Enigmos.Ports.SignalPorts.Directions; using Nocturnis.Enigmos.Ports.SignalPorts.Directions;

View File

@@ -3,7 +3,6 @@ using Nocturnis.Enigmos.Modules;
using Nocturnis.Enigmos.Ports.DataPorts.Directions; using Nocturnis.Enigmos.Ports.DataPorts.Directions;
using Nocturnis.Enigmos.Ports.SignalPorts.Directions; using Nocturnis.Enigmos.Ports.SignalPorts.Directions;
using Nocturnis.GlobalManagement.Constants; using Nocturnis.GlobalManagement.Constants;
using Nocturnis.GlobalManagement.Controls;
using Nocturnis.GlobalManagement.Providers; using Nocturnis.GlobalManagement.Providers;
namespace Enigmos.Modules.ControllingModules; namespace Enigmos.Modules.ControllingModules;
@@ -40,10 +39,8 @@ public abstract partial class SinglePoleDoubleThrowSwitchModule : PiplineModule,
ISignalOutPort selectedPort = (LeftPortForTrue!.ParameterValue && DataInPorts[0].GetData.Get!.Bit) ISignalOutPort selectedPort = (LeftPortForTrue!.ParameterValue && DataInPorts[0].GetData.Get!.Bit)
? SignalOutPorts[0] ? SignalOutPorts[0]
: SignalOutPorts[1]; : SignalOutPorts[1];
if (selectedPort.Connected)
selectedPort.Route(); selectedPort.Route();
else
EnigmosControl.Instance.RootModule.ActionFinished = true;
} }
} }

View File

@@ -8,14 +8,14 @@ namespace Enigmos.Modules.InterlayerModules;
public partial class InterlayerSignalInModule : SubModule, IInterlayerSignalInModule public partial class InterlayerSignalInModule : SubModule, IInterlayerSignalInModule
{ {
public new IProgrammableModule? ParentModule public new IProgrammableModule ParentModule
{ {
get => base.ParentModule as IProgrammableModule; get => base.ParentModule as IProgrammableModule;
set => base.ParentModule = value; set => base.ParentModule = value;
} }
public IBasePort UnderlyingPort => SignalIn!; public IBasePort UnderlyingPort => SignalIn!;
public IInterlayerSignalOutModule? DualModule { get; set; } public IInterlayerSignalOutModule DualModule { get; set; }
public ISignalInPort? SignalIn { get; set; } public ISignalInPort SignalIn { get; set; }
public ISignalInPort[] SignalInPorts { get; set; } = Array.Empty<ISignalInPort>(); public ISignalInPort[] SignalInPorts { get; set; } = Array.Empty<ISignalInPort>();
public override void Init() public override void Init()

View File

@@ -1,4 +1,3 @@
using Enigmos.Boards;
using Enigmos.Modules.InterlayerModules; using Enigmos.Modules.InterlayerModules;
using Nocturnis; using Nocturnis;
using Nocturnis.Enigmos.Boards; using Nocturnis.Enigmos.Boards;

View File

@@ -1,4 +1,3 @@
using Enigmos.Ports.DataPorts;
using Nocturnis.Enigmos.Modules; using Nocturnis.Enigmos.Modules;
using Nocturnis.Enigmos.Ports; using Nocturnis.Enigmos.Ports;
using Nocturnis.Enigmos.Ports.DataPorts.Directions; using Nocturnis.Enigmos.Ports.DataPorts.Directions;
@@ -9,7 +8,7 @@ using Skeleton.Utils.Helpers;
using VirtualChemistry.Chemistry.Mixtures.Implements; using VirtualChemistry.Chemistry.Mixtures.Implements;
namespace Enigmos.Modules.TerminalModules; namespace Enigmos.Modules.TerminalModules;
public abstract partial class EngineModule : TerminalModule public abstract partial class EngineModule : TerminalModule, IEngineModule
{ {
protected override bool Draggable => false; protected override bool Draggable => false;
public IDataInPort Throttle { get; set; } public IDataInPort Throttle { get; set; }

View File

@@ -6,8 +6,8 @@ namespace Enigmos.Modules.TerminalModules.TestingModules;
public abstract partial class R2ReaderModule : TerminalModule public abstract partial class R2ReaderModule : TerminalModule
{ {
private DataInPort? DataIn { get; set; } private DataInPort DataIn { get; set; }
private R2Reader? R2Reader { get; set; } private R2Reader R2Reader { get; set; }
public override void Init() public override void Init()
{ {

View File

@@ -1,5 +1,4 @@
using Godot; using Godot;
using Nocturnis.Attributes;
using Nocturnis.Enigmos.Cables; using Nocturnis.Enigmos.Cables;
using Nocturnis.Enigmos.Modules; using Nocturnis.Enigmos.Modules;
using Nocturnis.Enigmos.Ports; using Nocturnis.Enigmos.Ports;
@@ -24,7 +23,12 @@ public abstract partial class BasePort : TextureButton, IBasePort
public bool Connected => ConnectedPort != null; public bool Connected => ConnectedPort != null;
public abstract void SetStatusPending(); public abstract void SetStatusPending();
public abstract void SetStatusConnected();
public virtual void SetStatusConnected()
{
PostConnect();
}
public abstract void SetStatusNormal(); public abstract void SetStatusNormal();
/// <summary> /// <summary>
/// Determine whether this port can be connected with given port /// Determine whether this port can be connected with given port
@@ -34,6 +38,9 @@ public abstract partial class BasePort : TextureButton, IBasePort
public virtual void Init() public virtual void Init()
{ {
} }
[Expose]
public void Connect() => this.ExtConnect(); public void Connect() => this.ExtConnect();
public virtual void PostConnect()
{
}
} }

View File

@@ -38,4 +38,8 @@ public abstract partial class DataOutPort : DataPort, IDataOutPort
} }
public DataCache OutData { get; set; } = new(x => (0, DataTypeConstant.BaseDataTypes.Null)); public DataCache OutData { get; set; } = new(x => (0, DataTypeConstant.BaseDataTypes.Null));
public override void PostConnect()
{
Module.Define();
}
} }

View File

@@ -48,8 +48,10 @@ public abstract partial class DataPort : BasePort, IDataPort
public override void SetStatusPending() => public override void SetStatusPending() =>
TextureNormal = GlobalProvider.EnigmosProvider!.DataPortStatusPending; TextureNormal = GlobalProvider.EnigmosProvider!.DataPortStatusPending;
public override void SetStatusConnected() => public override void SetStatusConnected()
{
base.SetStatusConnected();
TextureNormal = GlobalProvider.EnigmosProvider!.DataPortStatusConnected; TextureNormal = GlobalProvider.EnigmosProvider!.DataPortStatusConnected;
}
} }

View File

@@ -2,6 +2,7 @@ using Enigmos.Cables;
using Nocturnis.Enigmos.Modules; using Nocturnis.Enigmos.Modules;
using Nocturnis.Enigmos.Ports; using Nocturnis.Enigmos.Ports;
using Nocturnis.Enigmos.Ports.SignalPorts.Directions; using Nocturnis.Enigmos.Ports.SignalPorts.Directions;
using Nocturnis.GlobalManagement.Controls;
namespace Enigmos.Ports.SignalPorts; namespace Enigmos.Ports.SignalPorts;
@@ -33,11 +34,11 @@ public partial class SignalOutPort : SignalPort, ISignalOutPort
public void Route() public void Route()
{ {
if (!Connected) if (!Connected)
return;
ConnectedPort!.Module.Execute();
}
public void Connect()
{ {
Console.WriteLine("XXXXXX"); CreatureControl.Instance.CurrentCharacter!.MotherBoard.Root.ActionFinished = true;
return;
} }
ConnectedPort!.Module.Visit();
}
} }

View File

@@ -20,9 +20,11 @@ public abstract partial class SignalPort : BasePort, ISignalPort
private void MouseEnteredHandler() => SignalDirection!.Visible = true; private void MouseEnteredHandler() => SignalDirection!.Visible = true;
private void MouseExitedHandler() => SignalDirection!.Visible = false; private void MouseExitedHandler() => SignalDirection!.Visible = false;
public override void SetStatusConnected() => public override void SetStatusConnected()
{
base.SetStatusConnected();
TextureNormal = GlobalProvider.EnigmosProvider!.SignalPortStatusConnected; TextureNormal = GlobalProvider.EnigmosProvider!.SignalPortStatusConnected;
}
public override void SetStatusNormal() => public override void SetStatusNormal() =>
TextureNormal = GlobalProvider.EnigmosProvider!.SignalPortStatusNormal; TextureNormal = GlobalProvider.EnigmosProvider!.SignalPortStatusNormal;