Upgrade structure of code base

This commit is contained in:
h z
2024-07-03 12:20:08 +08:00
parent 59d257c06a
commit be5428d708
91 changed files with 1742 additions and 1603 deletions

View File

@@ -1,14 +1,12 @@
using Nocturnis.Enigmos.Modules;
using Nocturnis.Enigmos.Ports.SignalPorts.Directions;
namespace Enigmos.Modules.ControllingModules.ActionModules;
public abstract partial class ActionModule : ControllingModule
public abstract partial class ActionModule : BaseModule, IActionModule
{
protected abstract void Execute(IRootModule root);
protected override void Route(IRootModule root)
{
if(!root.ActionFinished)
Execute(root);
root.ActionFinished = true;
}
public abstract void Act();
public ISignalInPort[] SignalInPorts { get; set; } = Array.Empty<ISignalInPort>();
public void Execute() => Act();
public bool Visited { get; set; }
}

View File

@@ -1,35 +1,34 @@
using Enigmos.Ports;
using Enigmos.Ports.DataPorts;
using Enigmos.Ports.SignalPorts;
using Nocturnis.Enigmos.Modules;
using TabulaSmaragdina.Constants;
using Nocturnis.Enigmos.Ports;
using Nocturnis.Enigmos.Ports.DataPorts.Directions;
using Nocturnis.GlobalManagement.Constants;
using Nocturnis.GlobalManagement.Controls;
namespace Enigmos.Modules.ControllingModules.ActionModules;
public partial class AttackActionModule : ActionModule
public partial class AttackActionModule : ActionModule, ITerminalModule
{
private SignalInPort SignalIn1 { get; set; }
private SignalInPort SignalIn2 { get; set; }
private SignalInPort SignalIn3 { get; set; }
private SignalInPort SignalIn4 { get; set; }
private DataInPort Input1 { get; set; }
public IDataInPort[] DataInPorts { get; set; } = Array.Empty<IDataInPort>();
public void Drain()
{
foreach (IDataInPort ip in DataInPorts)
_ = ip.GetData.Get;
}
public override IEnumerable<BasePort> Ports =>
new BasePort[] { SignalIn1, SignalIn2, SignalIn3, SignalIn4, Input1 };
public override IEnumerable<IBasePort> Ports => SignalInPorts.Union(DataInPorts.Cast<IBasePort>()).ToArray();
public override void Init()
{
base.Init();
SignalIn1 = GetNode<SignalInPort>("SignalIn1");
SignalIn2 = GetNode<SignalInPort>("SignalIn2");
SignalIn3 = GetNode<SignalInPort>("SignalIn3");
SignalIn4 = GetNode<SignalInPort>("SignalIn4");
Input1 = GetNode<DataInPort>("Input1");
Input1.SetDataType(EnigmosConstant.DataPortTypes.R2);
this.SignalInInit("SignalIn", 4);
this.DataInInit("Input", 1);
DataInPorts[0].SetDataType(EnigmosConstant.DataPortTypes.R2);
PostInit();
}
public override void Act()
{
CreatureControl.Instance.CurrentCharacter!.Action.Attack(DataInPorts[0].GetData.Get!.R2);
}
protected override void Execute(IRootModule root) =>
root.ManagedBy.Action.Attack(Input1.GetData(root).R2);
}

View File

@@ -1,42 +1,39 @@
using Enigmos.Ports;
using Enigmos.Ports.DataPorts;
using Enigmos.Ports.SignalPorts;
using Nocturnis.Enigmos.Modules;
using Skeleton.Algebra;
using Skeleton.Algebra.DimensionProviders;
using TabulaSmaragdina.Constants;
using Nocturnis.Enigmos.Ports;
using Nocturnis.Enigmos.Ports.DataPorts.Directions;
using Nocturnis.GlobalManagement.Constants;
using Nocturnis.GlobalManagement.Controls;
namespace Enigmos.Modules.ControllingModules.ActionModules;
using R2 = CategoryOf<IDim2>.OnField<double>.FVector;
public partial class MoveActionModule : ActionModule
public partial class MoveActionModule : ActionModule, ITerminalModule
{
private DataInPort? Input1 { get; set; }
private SignalInPort? SignalIn1 { get; set; }
private SignalInPort? SignalIn2 { get; set; }
private SignalInPort? SignalIn3 { get; set; }
private SignalInPort? SignalIn4 { get; set; }
public IDataInPort[] DataInPorts { get; set; } = Array.Empty<IDataInPort>();
public void Drain()
{
foreach (IDataInPort ip in DataInPorts)
_ = ip.GetData.Get;
}
public override IEnumerable<BasePort> Ports => new BasePort[] { Input1, SignalIn1, SignalIn2, SignalIn3, SignalIn4 };
public override IEnumerable<IBasePort> Ports => DataInPorts.Union(SignalInPorts.Cast<IBasePort>());
public override void Init()
{
base.Init();
Input1 = GetPort<DataInPort>("Input1");
SignalIn1 = GetPort<SignalInPort>("SignalIn1");
SignalIn2 = GetPort<SignalInPort>("SignalIn2");
SignalIn3 = GetPort<SignalInPort>("SignalIn3");
SignalIn4 = GetPort<SignalInPort>("SignalIn4");
Input1.SetDataType(EnigmosConstant.DataPortTypes.R2);
this.DataInInit("Input", 1);
this.SignalInInit("SignalIn", 4);
DataInPorts[0].SetDataType(EnigmosConstant.DataPortTypes.R2);
PostInit();
}
public override string GetDescription => "";
protected override void Execute(IRootModule root)
public override void Act()
{
R2 direction = Input1.GetData(root).R2;
root.ManagedBy.Action.Move(direction);
CreatureControl.Instance.CurrentCharacter!.Action.Attack(DataInPorts[0].GetData.Get!.R2);
}
}