Split project
This commit is contained in:
22
src/Enigmos/Modules/IBaseModule.cs
Normal file
22
src/Enigmos/Modules/IBaseModule.cs
Normal file
@@ -0,0 +1,22 @@
|
||||
using Godot;
|
||||
using Nocturnis.Enigmos.Boards;
|
||||
using Nocturnis.Enigmos.Ports;
|
||||
using Nocturnis.UIElements;
|
||||
|
||||
namespace Nocturnis.Enigmos.Modules;
|
||||
|
||||
public interface IBaseModule
|
||||
{
|
||||
IEnumerable<IBasePort> Ports { get; }
|
||||
IBaseBoard Board { get; set; }
|
||||
Vector2 PositionToBoard { get; }
|
||||
Vector2 Size { get; set; }
|
||||
double MaintenanceAlpha { get; }
|
||||
double MaintenanceBeta { get; }
|
||||
string GetDescription { get; }
|
||||
ISimpleLabel Label { get; }
|
||||
Node AsNode { get; }
|
||||
Vector2 Position { get; set; }
|
||||
string LabelString { get; set; }
|
||||
|
||||
}
|
||||
13
src/Enigmos/Modules/ICommunicateModule.cs
Normal file
13
src/Enigmos/Modules/ICommunicateModule.cs
Normal file
@@ -0,0 +1,13 @@
|
||||
using Godot;
|
||||
using Nocturnis.Communicators;
|
||||
using Nocturnis.DataStructures;
|
||||
|
||||
namespace Nocturnis.Enigmos.Modules;
|
||||
|
||||
public interface ICommunicateModule
|
||||
{
|
||||
IBaseCommunicator PairedCommunicator { get; set; }
|
||||
StringName CommunicationDataType { get; }
|
||||
StringName CommunicationDirection { get; }
|
||||
IDataPackage DataBuffer { get; set; }
|
||||
}
|
||||
6
src/Enigmos/Modules/ICompositeModule.cs
Normal file
6
src/Enigmos/Modules/ICompositeModule.cs
Normal file
@@ -0,0 +1,6 @@
|
||||
namespace Nocturnis.Enigmos.Modules;
|
||||
|
||||
public interface ICompositeModule
|
||||
{
|
||||
IBaseModule[] SubModules();
|
||||
}
|
||||
9
src/Enigmos/Modules/IComputationalCompositeModule.cs
Normal file
9
src/Enigmos/Modules/IComputationalCompositeModule.cs
Normal file
@@ -0,0 +1,9 @@
|
||||
using Godot;
|
||||
|
||||
namespace Nocturnis.Enigmos.Modules;
|
||||
|
||||
public interface IComputationalCompositeModule : ICompositeModule
|
||||
{
|
||||
void Compute(IRootModule root);
|
||||
Vector2 PositionToBoard();
|
||||
}
|
||||
8
src/Enigmos/Modules/IErrorHandlerModule.cs
Normal file
8
src/Enigmos/Modules/IErrorHandlerModule.cs
Normal file
@@ -0,0 +1,8 @@
|
||||
namespace Nocturnis.Enigmos.Modules;
|
||||
|
||||
public interface IErrorHandlerModule
|
||||
{
|
||||
void ErrorHandler(Exception error, int idx);
|
||||
string[] HandlingOptions();
|
||||
int SelectedOption { get; set; }
|
||||
}
|
||||
9
src/Enigmos/Modules/IInterlayerDataInModule.cs
Normal file
9
src/Enigmos/Modules/IInterlayerDataInModule.cs
Normal file
@@ -0,0 +1,9 @@
|
||||
using Nocturnis.Enigmos.Ports;
|
||||
|
||||
namespace Nocturnis.Enigmos.Modules;
|
||||
|
||||
public interface IInterlayerDataInModule : IInterlayerModule
|
||||
{
|
||||
IInterlayerDataOutModule DualModule { get; set; }
|
||||
IDataInPort DataIn { get; set; }
|
||||
}
|
||||
9
src/Enigmos/Modules/IInterlayerDataOutModule.cs
Normal file
9
src/Enigmos/Modules/IInterlayerDataOutModule.cs
Normal file
@@ -0,0 +1,9 @@
|
||||
using Nocturnis.Enigmos.Ports;
|
||||
|
||||
namespace Nocturnis.Enigmos.Modules;
|
||||
|
||||
public interface IInterlayerDataOutModule : IInterlayerModule
|
||||
{
|
||||
IInterlayerDataInModule DualModule { get; set; }
|
||||
IDataOutPort DataOut { get; set; }
|
||||
}
|
||||
10
src/Enigmos/Modules/IInterlayerModule.cs
Normal file
10
src/Enigmos/Modules/IInterlayerModule.cs
Normal file
@@ -0,0 +1,10 @@
|
||||
using Nocturnis.Enigmos.Ports;
|
||||
|
||||
namespace Nocturnis.Enigmos.Modules;
|
||||
|
||||
public interface IInterlayerModule
|
||||
{
|
||||
IBasePort UnderlyingPort();
|
||||
IProgrammableModule ParentModule { get; set; }
|
||||
|
||||
}
|
||||
9
src/Enigmos/Modules/IInterlayerSignalInModule.cs
Normal file
9
src/Enigmos/Modules/IInterlayerSignalInModule.cs
Normal file
@@ -0,0 +1,9 @@
|
||||
using Nocturnis.Enigmos.Ports;
|
||||
|
||||
namespace Nocturnis.Enigmos.Modules;
|
||||
|
||||
public interface IInterlayerSignalInModule : IInterlayerModule
|
||||
{
|
||||
IInterlayerSignalOutModule DualModule { get; set; }
|
||||
ISignalInPort SignalIn { get; set; }
|
||||
}
|
||||
9
src/Enigmos/Modules/IInterlayerSignalOutModule.cs
Normal file
9
src/Enigmos/Modules/IInterlayerSignalOutModule.cs
Normal file
@@ -0,0 +1,9 @@
|
||||
using Nocturnis.Enigmos.Ports;
|
||||
|
||||
namespace Nocturnis.Enigmos.Modules;
|
||||
|
||||
public interface IInterlayerSignalOutModule : IInterlayerModule
|
||||
{
|
||||
IInterlayerSignalInModule DualModule { get; set; }
|
||||
ISignalOutPort SignalOut { get; set; }
|
||||
}
|
||||
10
src/Enigmos/Modules/IParameterizedModule.cs
Normal file
10
src/Enigmos/Modules/IParameterizedModule.cs
Normal file
@@ -0,0 +1,10 @@
|
||||
using Nocturnis.DataStructures;
|
||||
using Nocturnis.DataStructures.ConfigurableParameters;
|
||||
|
||||
namespace Nocturnis.Enigmos.Modules;
|
||||
|
||||
public interface IParameterizedModule
|
||||
{
|
||||
HashSet<IConfigurableParameter> ConfigurableParameters { get; set; }
|
||||
|
||||
}
|
||||
12
src/Enigmos/Modules/IPolymorphismModule.cs
Normal file
12
src/Enigmos/Modules/IPolymorphismModule.cs
Normal file
@@ -0,0 +1,12 @@
|
||||
using Nocturnis.DataStructures;
|
||||
|
||||
namespace Nocturnis.Enigmos.Modules;
|
||||
|
||||
public interface IPolymorphismModule
|
||||
{
|
||||
HashSet<IDataPortGroup> ConfigurablePortGroups { get; set; }
|
||||
/// <summary>
|
||||
/// Update type of all ports base on configurable port groups' type
|
||||
/// </summary>
|
||||
void Inference();
|
||||
}
|
||||
6
src/Enigmos/Modules/IProgrammableModule.cs
Normal file
6
src/Enigmos/Modules/IProgrammableModule.cs
Normal file
@@ -0,0 +1,6 @@
|
||||
namespace Nocturnis.Enigmos.Modules;
|
||||
|
||||
public interface IProgrammableModule
|
||||
{
|
||||
|
||||
}
|
||||
6
src/Enigmos/Modules/IRootModule.cs
Normal file
6
src/Enigmos/Modules/IRootModule.cs
Normal file
@@ -0,0 +1,6 @@
|
||||
namespace Nocturnis.Enigmos.Modules;
|
||||
|
||||
public interface IRootModule
|
||||
{
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user