project update

This commit is contained in:
h z
2024-06-30 01:52:44 +08:00
parent 6e01c31061
commit d382481cd4
26 changed files with 92 additions and 30 deletions

View File

@@ -18,5 +18,6 @@ public interface IBaseModule
Node AsNode { get; }
Vector2 Position { get; set; }
string LabelString { get; set; }
void UpdateCables();
}

View File

@@ -5,5 +5,5 @@ namespace Nocturnis.Enigmos.Modules;
public interface IComputationalCompositeModule : ICompositeModule
{
void Compute(IRootModule root);
Vector2 PositionToBoard();
Vector2 PositionToBoard { get; }
}

View File

@@ -0,0 +1,6 @@
namespace Nocturnis.Enigmos.Modules;
public interface IControllingModule : IBaseModule
{
void RouteWithTimeoutHandle(IRootModule root);
}

View File

@@ -0,0 +1,6 @@
namespace Nocturnis.Enigmos.Modules;
public interface IFilterModule : IProgrammableModule
{
void FilterWithTimeoutHandle(IRootModule root);
}

View File

@@ -4,6 +4,6 @@ namespace Nocturnis.Enigmos.Modules;
public interface IInterlayerDataInModule : IInterlayerModule
{
IInterlayerDataOutModule DualModule { get; set; }
IDataInPort DataIn { get; set; }
IInterlayerDataOutModule? DualModule { get; set; }
IDataInPort? DataIn { get; set; }
}

View File

@@ -4,6 +4,6 @@ namespace Nocturnis.Enigmos.Modules;
public interface IInterlayerDataOutModule : IInterlayerModule
{
IInterlayerDataInModule DualModule { get; set; }
IDataOutPort DataOut { get; set; }
IInterlayerDataInModule? DualModule { get; set; }
IDataOutPort? DataOut { get; set; }
}

View File

@@ -2,9 +2,9 @@ using Nocturnis.Enigmos.Ports;
namespace Nocturnis.Enigmos.Modules;
public interface IInterlayerModule
public interface IInterlayerModule
{
IBasePort UnderlyingPort();
IProgrammableModule ParentModule { get; set; }
IBasePort? UnderlyingPort { get; }
IProgrammableModule? ParentModule { get; set; }
}

View File

@@ -4,6 +4,6 @@ namespace Nocturnis.Enigmos.Modules;
public interface IInterlayerSignalInModule : IInterlayerModule
{
IInterlayerSignalOutModule DualModule { get; set; }
ISignalInPort SignalIn { get; set; }
IInterlayerSignalOutModule? DualModule { get; set; }
ISignalInPort? SignalIn { get; set; }
}

View File

@@ -4,6 +4,6 @@ namespace Nocturnis.Enigmos.Modules;
public interface IInterlayerSignalOutModule : IInterlayerModule
{
IInterlayerSignalInModule DualModule { get; set; }
ISignalOutPort SignalOut { get; set; }
IInterlayerSignalInModule? DualModule { get; set; }
ISignalOutPort? SignalOut { get; set; }
}

View File

@@ -0,0 +1,6 @@
namespace Nocturnis.Enigmos.Modules;
public interface IKeyListenerModule
{
}

View File

@@ -0,0 +1,6 @@
namespace Nocturnis.Enigmos.Modules;
public interface IOptimizationModule : IProgrammableModule
{
void OptimizeWithTimeoutHandle(IRootModule root);
}

View File

@@ -1,6 +1,7 @@
using Godot;
namespace Nocturnis.Enigmos.Modules;
public interface IProgrammableModule
public interface IProgrammableModule : IBaseModule
{
}

View File

@@ -1,6 +1,12 @@
using System.Diagnostics;
using Nocturnis.Creatures;
namespace Nocturnis.Enigmos.Modules;
public interface IRootModule
public interface IRootModule : IControllingModule
{
Stopwatch? Timer { get; set; }
bool ActionFinished { get; set; }
IBaseCreature ManagedBy { get; set; }
}

View File

@@ -6,6 +6,7 @@ namespace Nocturnis.Enigmos.Ports;
public interface IBasePort
{
bool Connected { get; }
IBaseModule Module { get; set; }
bool IsMatch(IBasePort oth);
IBasePort? ConnectedPort { get; set; }

View File

@@ -1,6 +1,9 @@
using Nocturnis.DataStructures;
using Nocturnis.Enigmos.Modules;
namespace Nocturnis.Enigmos.Ports;
public interface IDataInPort
public interface IDataInPort : IDataPort
{
IDataPackage GetData(IRootModule root);
}

View File

@@ -1,6 +1,8 @@
using Nocturnis.DataStructures;
namespace Nocturnis.Enigmos.Ports;
public interface IDataOutPort
public interface IDataOutPort : IDataPort
{
IDataPackage ResultData { get; set; }
}

View File

@@ -1,6 +1,6 @@
namespace Nocturnis.Enigmos.Ports;
public interface IDataPort
public interface IDataPort : IBasePort
{
}

View File

@@ -1,6 +1,8 @@
using Nocturnis.Enigmos.Modules;
namespace Nocturnis.Enigmos.Ports;
public interface ISignalInPort
public interface ISignalInPort : ISignalPort
{
new IControllingModule Module { get; set; }
}

View File

@@ -1,6 +1,9 @@
using Nocturnis.Enigmos.Modules;
namespace Nocturnis.Enigmos.Ports;
public interface ISignalOutPort
public interface ISignalOutPort : ISignalPort
{
new IControllingModule Module { get; set; }
new ISignalInPort? ConnectedPort { get; set; }
}

View File

@@ -1,6 +1,6 @@
namespace Nocturnis.Enigmos.Ports;
public interface ISignalPort
public interface ISignalPort : IBasePort
{
}