commit 6e01c31061a66d0110459fc07bf53a8b8184bfc2 Author: hzhang Date: Sat Jun 29 06:35:23 2024 +0800 Split project diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..add57be --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +bin/ +obj/ +/packages/ +riderModule.iml +/_ReSharper.Caches/ \ No newline at end of file diff --git a/Class1.cs b/Class1.cs new file mode 100644 index 0000000..5f28270 --- /dev/null +++ b/Class1.cs @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/Nocturnis.csproj b/Nocturnis.csproj new file mode 100644 index 0000000..b939019 --- /dev/null +++ b/Nocturnis.csproj @@ -0,0 +1,17 @@ + + + + net6.0 + enable + enable + + + + + + + + + + + diff --git a/Nocturnis.sln b/Nocturnis.sln new file mode 100644 index 0000000..8926d01 --- /dev/null +++ b/Nocturnis.sln @@ -0,0 +1,16 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Nocturnis", "Nocturnis.csproj", "{E9C078AE-B3C7-40E2-A823-7E42CE89A819}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {E9C078AE-B3C7-40E2-A823-7E42CE89A819}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E9C078AE-B3C7-40E2-A823-7E42CE89A819}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E9C078AE-B3C7-40E2-A823-7E42CE89A819}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E9C078AE-B3C7-40E2-A823-7E42CE89A819}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection +EndGlobal diff --git a/global.json b/global.json new file mode 100644 index 0000000..1bcf6c0 --- /dev/null +++ b/global.json @@ -0,0 +1,7 @@ +{ + "sdk": { + "version": "6.0.0", + "rollForward": "latestMinor", + "allowPrerelease": false + } +} \ No newline at end of file diff --git a/src/Communicators/IBaseCommunicator.cs b/src/Communicators/IBaseCommunicator.cs new file mode 100644 index 0000000..6bc6c45 --- /dev/null +++ b/src/Communicators/IBaseCommunicator.cs @@ -0,0 +1,16 @@ +using Godot; +using Nocturnis.DataStructures; +using Nocturnis.Enigmos.Modules; + +namespace Nocturnis.Communicators; + +public interface IBaseCommunicator +{ + ICommunicateModule PairedModule { get; set; } + IDataPackage DataBuffer { get; set; } + StringName CommunicationDataType { get; } + StringName CommunicationDirection { get; } + Texture2D IconTexture { get; } + string CustomName { get; set; } + bool Paired { get; } +} diff --git a/src/Creatures/Characters/IBaseCharacter.cs b/src/Creatures/Characters/IBaseCharacter.cs new file mode 100644 index 0000000..ca69e29 --- /dev/null +++ b/src/Creatures/Characters/IBaseCharacter.cs @@ -0,0 +1,8 @@ +using Nocturnis.UIElements; + +namespace Nocturnis.Creatures.Characters; + +public interface IBaseCharacter : IBaseCreature +{ + IDashboardTab DashboardTab { get; set; } +} \ No newline at end of file diff --git a/src/Creatures/CreatureActions/ICreatureAction.cs b/src/Creatures/CreatureActions/ICreatureAction.cs new file mode 100644 index 0000000..5623694 --- /dev/null +++ b/src/Creatures/CreatureActions/ICreatureAction.cs @@ -0,0 +1,10 @@ +using Skeleton.Algebra; +using Skeleton.Algebra.DimensionProviders; + +namespace Nocturnis.Creatures.CreatureActions; +using R2 = CategoryOf.OnField.FVector; +public interface ICreatureAction +{ + void Move(R2 dir); + void Attack(R2 dir); +} \ No newline at end of file diff --git a/src/Creatures/IBaseCreature.cs b/src/Creatures/IBaseCreature.cs new file mode 100644 index 0000000..5bfdefc --- /dev/null +++ b/src/Creatures/IBaseCreature.cs @@ -0,0 +1,8 @@ +using Nocturnis.Creatures.CreatureActions; + +namespace Nocturnis.Creatures; + +public interface IBaseCreature +{ + ICreatureAction Action { get; set; } +} \ No newline at end of file diff --git a/src/DataStructures/ConfigurableParameters/IBoolParameter.cs b/src/DataStructures/ConfigurableParameters/IBoolParameter.cs new file mode 100644 index 0000000..19af677 --- /dev/null +++ b/src/DataStructures/ConfigurableParameters/IBoolParameter.cs @@ -0,0 +1,7 @@ +namespace Nocturnis.DataStructures.ConfigurableParameters; + +public interface IBoolParameter : IConfigurableParameter +{ + string TrueDescription { get; set; } + string FalseDescription { get; set; } +} \ No newline at end of file diff --git a/src/DataStructures/ConfigurableParameters/ICharParameter.cs b/src/DataStructures/ConfigurableParameters/ICharParameter.cs new file mode 100644 index 0000000..e20b1b7 --- /dev/null +++ b/src/DataStructures/ConfigurableParameters/ICharParameter.cs @@ -0,0 +1,6 @@ +namespace Nocturnis.DataStructures.ConfigurableParameters; + +public interface ICharParameter : IConfigurableParameter +{ + +} \ No newline at end of file diff --git a/src/DataStructures/ConfigurableParameters/IConfigurableParameter.cs b/src/DataStructures/ConfigurableParameters/IConfigurableParameter.cs new file mode 100644 index 0000000..f224b2a --- /dev/null +++ b/src/DataStructures/ConfigurableParameters/IConfigurableParameter.cs @@ -0,0 +1,11 @@ +namespace Nocturnis.DataStructures.ConfigurableParameters; + +public interface IConfigurableParameter +{ + string ParameterName { get; set; } +} + +public interface IConfigurableParameter : IConfigurableParameter +{ + T ParameterValue { get; set; } +} \ No newline at end of file diff --git a/src/DataStructures/ConfigurableParameters/IDoubleParameter.cs b/src/DataStructures/ConfigurableParameters/IDoubleParameter.cs new file mode 100644 index 0000000..10a2dac --- /dev/null +++ b/src/DataStructures/ConfigurableParameters/IDoubleParameter.cs @@ -0,0 +1,8 @@ +namespace Nocturnis.DataStructures.ConfigurableParameters; + +public interface IDoubleParameter : IConfigurableParameter +{ + double MinValue { get; set; } + double MaxValue { get; set; } + double Step { get; set; } +} \ No newline at end of file diff --git a/src/DataStructures/ConfigurableParameters/IKeyParameter.cs b/src/DataStructures/ConfigurableParameters/IKeyParameter.cs new file mode 100644 index 0000000..4a56c4d --- /dev/null +++ b/src/DataStructures/ConfigurableParameters/IKeyParameter.cs @@ -0,0 +1,8 @@ +using Godot; + +namespace Nocturnis.DataStructures.ConfigurableParameters; + +public interface IKeyParameter : IConfigurableParameter +{ + +} \ No newline at end of file diff --git a/src/DataStructures/IDataPackage.cs b/src/DataStructures/IDataPackage.cs new file mode 100644 index 0000000..d5c1090 --- /dev/null +++ b/src/DataStructures/IDataPackage.cs @@ -0,0 +1,12 @@ +using Godot; +using Skeleton.Algebra; +using Skeleton.Algebra.DimensionProviders; + +namespace Nocturnis.DataStructures; +using R2 = CategoryOf.OnField.FVector; +public interface IDataPackage +{ + void Assign(IDataPackage val, StringName key); + bool Bit { get; } + R2 R2 { get; } +} \ No newline at end of file diff --git a/src/DataStructures/IDataPortGroup.cs b/src/DataStructures/IDataPortGroup.cs new file mode 100644 index 0000000..56791a9 --- /dev/null +++ b/src/DataStructures/IDataPortGroup.cs @@ -0,0 +1,11 @@ +using Godot; + +namespace Nocturnis.DataStructures; + +public interface IDataPortGroup +{ + StringName SelectedType { get; set; } + StringName[] TypeOptions { get; set; } + void Inference(); + string Description { get; set; } +} \ No newline at end of file diff --git a/src/DataStructures/IPresetModuleConnection.cs b/src/DataStructures/IPresetModuleConnection.cs new file mode 100644 index 0000000..9f5e6fe --- /dev/null +++ b/src/DataStructures/IPresetModuleConnection.cs @@ -0,0 +1,6 @@ +namespace Nocturnis.DataStructures; + +public interface IPresetModuleConnection +{ + +} \ No newline at end of file diff --git a/src/DataStructures/IVariantWithType.cs b/src/DataStructures/IVariantWithType.cs new file mode 100644 index 0000000..2a36afd --- /dev/null +++ b/src/DataStructures/IVariantWithType.cs @@ -0,0 +1,9 @@ +using Godot; + +namespace Nocturnis.DataStructures; + +public interface IVariantWithType +{ + Variant UnderlyingData { get; set; } + string TypeHint { get; set; } +} \ No newline at end of file diff --git a/src/Enigmos/Boards/IBaseBoard.cs b/src/Enigmos/Boards/IBaseBoard.cs new file mode 100644 index 0000000..d7f466c --- /dev/null +++ b/src/Enigmos/Boards/IBaseBoard.cs @@ -0,0 +1,18 @@ +using Nocturnis.Enigmos.Cables; +using Nocturnis.Enigmos.Modules; +using Nocturnis.Enigmos.Ports; +using Nocturnis.UIElements.Layers; + +namespace Nocturnis.Enigmos.Boards; + +public interface IBaseBoard +{ + IBasePort? ConnectPending { get; set; } + Dictionary CablePairing { get; set; } + void AddCable(IBaseCable cable); + HashSet FocusedCables { get; set; } + bool ManualOpened { get; set; } + bool CableVisualMode { get; set; } + IModuleManualLayer ModuleManualLayer { get; set; } + IModuleMovingLayer ModuleMovingLayer { get; set; } +} \ No newline at end of file diff --git a/src/Enigmos/Cables/IBaseCable.cs b/src/Enigmos/Cables/IBaseCable.cs new file mode 100644 index 0000000..6613008 --- /dev/null +++ b/src/Enigmos/Cables/IBaseCable.cs @@ -0,0 +1,11 @@ +using Godot; + +namespace Nocturnis.Enigmos.Cables; + +public interface IBaseCable +{ + void Free(); + void LineUpdate(); + Color Modulate { get; set; } + Node AsNode { get; } +} \ No newline at end of file diff --git a/src/Enigmos/ModuleManuals/IModuleManualTab.cs b/src/Enigmos/ModuleManuals/IModuleManualTab.cs new file mode 100644 index 0000000..a91bd3b --- /dev/null +++ b/src/Enigmos/ModuleManuals/IModuleManualTab.cs @@ -0,0 +1,6 @@ +namespace Nocturnis.Enigmos.ModuleManuals; + +public interface IModuleManualTab +{ + string FullName(); +} \ No newline at end of file diff --git a/src/Enigmos/Modules/IBaseModule.cs b/src/Enigmos/Modules/IBaseModule.cs new file mode 100644 index 0000000..b799491 --- /dev/null +++ b/src/Enigmos/Modules/IBaseModule.cs @@ -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 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; } + +} \ No newline at end of file diff --git a/src/Enigmos/Modules/ICommunicateModule.cs b/src/Enigmos/Modules/ICommunicateModule.cs new file mode 100644 index 0000000..d6ff8bf --- /dev/null +++ b/src/Enigmos/Modules/ICommunicateModule.cs @@ -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; } +} \ No newline at end of file diff --git a/src/Enigmos/Modules/ICompositeModule.cs b/src/Enigmos/Modules/ICompositeModule.cs new file mode 100644 index 0000000..69abe68 --- /dev/null +++ b/src/Enigmos/Modules/ICompositeModule.cs @@ -0,0 +1,6 @@ +namespace Nocturnis.Enigmos.Modules; + +public interface ICompositeModule +{ + IBaseModule[] SubModules(); +} diff --git a/src/Enigmos/Modules/IComputationalCompositeModule.cs b/src/Enigmos/Modules/IComputationalCompositeModule.cs new file mode 100644 index 0000000..3d8f197 --- /dev/null +++ b/src/Enigmos/Modules/IComputationalCompositeModule.cs @@ -0,0 +1,9 @@ +using Godot; + +namespace Nocturnis.Enigmos.Modules; + +public interface IComputationalCompositeModule : ICompositeModule +{ + void Compute(IRootModule root); + Vector2 PositionToBoard(); +} diff --git a/src/Enigmos/Modules/IErrorHandlerModule.cs b/src/Enigmos/Modules/IErrorHandlerModule.cs new file mode 100644 index 0000000..1225298 --- /dev/null +++ b/src/Enigmos/Modules/IErrorHandlerModule.cs @@ -0,0 +1,8 @@ +namespace Nocturnis.Enigmos.Modules; + +public interface IErrorHandlerModule +{ + void ErrorHandler(Exception error, int idx); + string[] HandlingOptions(); + int SelectedOption { get; set; } +} diff --git a/src/Enigmos/Modules/IInterlayerDataInModule.cs b/src/Enigmos/Modules/IInterlayerDataInModule.cs new file mode 100644 index 0000000..bbdab44 --- /dev/null +++ b/src/Enigmos/Modules/IInterlayerDataInModule.cs @@ -0,0 +1,9 @@ +using Nocturnis.Enigmos.Ports; + +namespace Nocturnis.Enigmos.Modules; + +public interface IInterlayerDataInModule : IInterlayerModule +{ + IInterlayerDataOutModule DualModule { get; set; } + IDataInPort DataIn { get; set; } +} \ No newline at end of file diff --git a/src/Enigmos/Modules/IInterlayerDataOutModule.cs b/src/Enigmos/Modules/IInterlayerDataOutModule.cs new file mode 100644 index 0000000..9ac8cd5 --- /dev/null +++ b/src/Enigmos/Modules/IInterlayerDataOutModule.cs @@ -0,0 +1,9 @@ +using Nocturnis.Enigmos.Ports; + +namespace Nocturnis.Enigmos.Modules; + +public interface IInterlayerDataOutModule : IInterlayerModule +{ + IInterlayerDataInModule DualModule { get; set; } + IDataOutPort DataOut { get; set; } +} diff --git a/src/Enigmos/Modules/IInterlayerModule.cs b/src/Enigmos/Modules/IInterlayerModule.cs new file mode 100644 index 0000000..fd0eff5 --- /dev/null +++ b/src/Enigmos/Modules/IInterlayerModule.cs @@ -0,0 +1,10 @@ +using Nocturnis.Enigmos.Ports; + +namespace Nocturnis.Enigmos.Modules; + +public interface IInterlayerModule +{ + IBasePort UnderlyingPort(); + IProgrammableModule ParentModule { get; set; } + +} diff --git a/src/Enigmos/Modules/IInterlayerSignalInModule.cs b/src/Enigmos/Modules/IInterlayerSignalInModule.cs new file mode 100644 index 0000000..5b3da0d --- /dev/null +++ b/src/Enigmos/Modules/IInterlayerSignalInModule.cs @@ -0,0 +1,9 @@ +using Nocturnis.Enigmos.Ports; + +namespace Nocturnis.Enigmos.Modules; + +public interface IInterlayerSignalInModule : IInterlayerModule +{ + IInterlayerSignalOutModule DualModule { get; set; } + ISignalInPort SignalIn { get; set; } +} \ No newline at end of file diff --git a/src/Enigmos/Modules/IInterlayerSignalOutModule.cs b/src/Enigmos/Modules/IInterlayerSignalOutModule.cs new file mode 100644 index 0000000..b81b42d --- /dev/null +++ b/src/Enigmos/Modules/IInterlayerSignalOutModule.cs @@ -0,0 +1,9 @@ +using Nocturnis.Enigmos.Ports; + +namespace Nocturnis.Enigmos.Modules; + +public interface IInterlayerSignalOutModule : IInterlayerModule +{ + IInterlayerSignalInModule DualModule { get; set; } + ISignalOutPort SignalOut { get; set; } +} \ No newline at end of file diff --git a/src/Enigmos/Modules/IParameterizedModule.cs b/src/Enigmos/Modules/IParameterizedModule.cs new file mode 100644 index 0000000..cefdf6f --- /dev/null +++ b/src/Enigmos/Modules/IParameterizedModule.cs @@ -0,0 +1,10 @@ +using Nocturnis.DataStructures; +using Nocturnis.DataStructures.ConfigurableParameters; + +namespace Nocturnis.Enigmos.Modules; + +public interface IParameterizedModule +{ + HashSet ConfigurableParameters { get; set; } + +} \ No newline at end of file diff --git a/src/Enigmos/Modules/IPolymorphismModule.cs b/src/Enigmos/Modules/IPolymorphismModule.cs new file mode 100644 index 0000000..26137b1 --- /dev/null +++ b/src/Enigmos/Modules/IPolymorphismModule.cs @@ -0,0 +1,12 @@ +using Nocturnis.DataStructures; + +namespace Nocturnis.Enigmos.Modules; + +public interface IPolymorphismModule +{ + HashSet ConfigurablePortGroups { get; set; } + /// + /// Update type of all ports base on configurable port groups' type + /// + void Inference(); +} \ No newline at end of file diff --git a/src/Enigmos/Modules/IProgrammableModule.cs b/src/Enigmos/Modules/IProgrammableModule.cs new file mode 100644 index 0000000..a89af35 --- /dev/null +++ b/src/Enigmos/Modules/IProgrammableModule.cs @@ -0,0 +1,6 @@ +namespace Nocturnis.Enigmos.Modules; + +public interface IProgrammableModule +{ + +} \ No newline at end of file diff --git a/src/Enigmos/Modules/IRootModule.cs b/src/Enigmos/Modules/IRootModule.cs new file mode 100644 index 0000000..b3359d4 --- /dev/null +++ b/src/Enigmos/Modules/IRootModule.cs @@ -0,0 +1,6 @@ +namespace Nocturnis.Enigmos.Modules; + +public interface IRootModule +{ + +} \ No newline at end of file diff --git a/src/Enigmos/Ports/IBasePort.cs b/src/Enigmos/Ports/IBasePort.cs new file mode 100644 index 0000000..3757f78 --- /dev/null +++ b/src/Enigmos/Ports/IBasePort.cs @@ -0,0 +1,19 @@ +using Godot; +using Nocturnis.Enigmos.Modules; +using Nocturnis.Inventories.Items.Items; + +namespace Nocturnis.Enigmos.Ports; + +public interface IBasePort +{ + IBaseModule Module { get; set; } + bool IsMatch(IBasePort oth); + IBasePort? ConnectedPort { get; set; } + void SetStatusConnected(); + void SetStatusNormal(); + void SetStatusPending(); + StringName Name { get; set; } + int Condition { get; set; } + int Quality { get; set; } + void FixWith(IBaseChemicalItem item); +} \ No newline at end of file diff --git a/src/Enigmos/Ports/IDataInPort.cs b/src/Enigmos/Ports/IDataInPort.cs new file mode 100644 index 0000000..c56c3de --- /dev/null +++ b/src/Enigmos/Ports/IDataInPort.cs @@ -0,0 +1,6 @@ +namespace Nocturnis.Enigmos.Ports; + +public interface IDataInPort +{ + +} \ No newline at end of file diff --git a/src/Enigmos/Ports/IDataOutPort.cs b/src/Enigmos/Ports/IDataOutPort.cs new file mode 100644 index 0000000..1553354 --- /dev/null +++ b/src/Enigmos/Ports/IDataOutPort.cs @@ -0,0 +1,6 @@ +namespace Nocturnis.Enigmos.Ports; + +public interface IDataOutPort +{ + +} \ No newline at end of file diff --git a/src/Enigmos/Ports/IDataPort.cs b/src/Enigmos/Ports/IDataPort.cs new file mode 100644 index 0000000..4da830d --- /dev/null +++ b/src/Enigmos/Ports/IDataPort.cs @@ -0,0 +1,6 @@ +namespace Nocturnis.Enigmos.Ports; + +public interface IDataPort +{ + +} \ No newline at end of file diff --git a/src/Enigmos/Ports/ISignalInPort.cs b/src/Enigmos/Ports/ISignalInPort.cs new file mode 100644 index 0000000..4f7f899 --- /dev/null +++ b/src/Enigmos/Ports/ISignalInPort.cs @@ -0,0 +1,6 @@ +namespace Nocturnis.Enigmos.Ports; + +public interface ISignalInPort +{ + +} \ No newline at end of file diff --git a/src/Enigmos/Ports/ISignalOutPort.cs b/src/Enigmos/Ports/ISignalOutPort.cs new file mode 100644 index 0000000..055ff6d --- /dev/null +++ b/src/Enigmos/Ports/ISignalOutPort.cs @@ -0,0 +1,6 @@ +namespace Nocturnis.Enigmos.Ports; + +public interface ISignalOutPort +{ + +} \ No newline at end of file diff --git a/src/Enigmos/Ports/ISignalPort.cs b/src/Enigmos/Ports/ISignalPort.cs new file mode 100644 index 0000000..90320fe --- /dev/null +++ b/src/Enigmos/Ports/ISignalPort.cs @@ -0,0 +1,6 @@ +namespace Nocturnis.Enigmos.Ports; + +public interface ISignalPort +{ + +} \ No newline at end of file diff --git a/src/Inventories/ItemSlots/IBaseItemSlot.cs b/src/Inventories/ItemSlots/IBaseItemSlot.cs new file mode 100644 index 0000000..528b4f6 --- /dev/null +++ b/src/Inventories/ItemSlots/IBaseItemSlot.cs @@ -0,0 +1,8 @@ +using Nocturnis.Inventories.Items; + +namespace Nocturnis.Inventories.ItemSlots; + +public interface IBaseItemSlot +{ + IBaseItem Item { get; set; } +} \ No newline at end of file diff --git a/src/Inventories/ItemSlots/ItemSlots/IChemicalItemSlot.cs b/src/Inventories/ItemSlots/ItemSlots/IChemicalItemSlot.cs new file mode 100644 index 0000000..86b2339 --- /dev/null +++ b/src/Inventories/ItemSlots/ItemSlots/IChemicalItemSlot.cs @@ -0,0 +1,8 @@ +using Nocturnis.Inventories.Items.Items; + +namespace Nocturnis.Inventories.ItemSlots.ItemSlots; + +public interface IChemicalItemSlot +{ + IBaseChemicalItem Item { get; set; } +} \ No newline at end of file diff --git a/src/Inventories/Items/IBaseItem.cs b/src/Inventories/Items/IBaseItem.cs new file mode 100644 index 0000000..2294f39 --- /dev/null +++ b/src/Inventories/Items/IBaseItem.cs @@ -0,0 +1,6 @@ +namespace Nocturnis.Inventories.Items; + +public interface IBaseItem +{ + +} \ No newline at end of file diff --git a/src/Inventories/Items/Items/IBaseChemicalItem.cs b/src/Inventories/Items/Items/IBaseChemicalItem.cs new file mode 100644 index 0000000..a20a410 --- /dev/null +++ b/src/Inventories/Items/Items/IBaseChemicalItem.cs @@ -0,0 +1,9 @@ +using VirtualChemistry.Chemistry.Mixtures.Implements; + +namespace Nocturnis.Inventories.Items.Items; + +public interface IBaseChemicalItem : IBaseItem +{ + HeterogeneousMixture ContentMaterial { get; set; } + void ConsumeFromBottom(double amount); +} \ No newline at end of file diff --git a/src/Inventories/Items/Items/IBaseModuleItem.cs b/src/Inventories/Items/Items/IBaseModuleItem.cs new file mode 100644 index 0000000..ab83ade --- /dev/null +++ b/src/Inventories/Items/Items/IBaseModuleItem.cs @@ -0,0 +1,8 @@ +using Nocturnis.Enigmos.Modules; + +namespace Nocturnis.Inventories.Items.Items; + +public interface IBaseModuleItem +{ + IBaseModule ContentModule { get; } +} \ No newline at end of file diff --git a/src/Scenes/IRootScene.cs b/src/Scenes/IRootScene.cs new file mode 100644 index 0000000..221523f --- /dev/null +++ b/src/Scenes/IRootScene.cs @@ -0,0 +1,8 @@ +using Godot; + +namespace Nocturnis.Scenes; + +public interface IRootScene +{ + void ChangeScene(Node scene); +} \ No newline at end of file diff --git a/src/UIElements/IDashboardTab.cs b/src/UIElements/IDashboardTab.cs new file mode 100644 index 0000000..ce3ac09 --- /dev/null +++ b/src/UIElements/IDashboardTab.cs @@ -0,0 +1,8 @@ +using Nocturnis.Communicators; + +namespace Nocturnis.UIElements; + +public interface IDashboardTab +{ + IEnumerable AllCommunicators { get; } +} \ No newline at end of file diff --git a/src/UIElements/IPanelViewer.cs b/src/UIElements/IPanelViewer.cs new file mode 100644 index 0000000..59877db --- /dev/null +++ b/src/UIElements/IPanelViewer.cs @@ -0,0 +1,6 @@ +namespace Nocturnis.UIElements; + +public interface IPanelViewer +{ + +} \ No newline at end of file diff --git a/src/UIElements/ISimpleLabel.cs b/src/UIElements/ISimpleLabel.cs new file mode 100644 index 0000000..ca3f1d0 --- /dev/null +++ b/src/UIElements/ISimpleLabel.cs @@ -0,0 +1,12 @@ +using Godot; + +namespace Nocturnis.UIElements; + +public interface ISimpleLabel +{ + Vector2 Position { get; set; } + Vector2 Size { get; set; } + string Text { get; set; } + Node AsNode { get; } + bool Visible { get; set; } +} diff --git a/src/UIElements/Layers/IBoardControlLayer.cs b/src/UIElements/Layers/IBoardControlLayer.cs new file mode 100644 index 0000000..4725f5d --- /dev/null +++ b/src/UIElements/Layers/IBoardControlLayer.cs @@ -0,0 +1,8 @@ +using Nocturnis.Enigmos.Boards; + +namespace Nocturnis.UIElements.Layers; + +public interface IBoardControlLayer +{ + IBaseBoard Board { get; set; } +} \ No newline at end of file diff --git a/src/UIElements/Layers/IModuleManualLayer.cs b/src/UIElements/Layers/IModuleManualLayer.cs new file mode 100644 index 0000000..c74f2c1 --- /dev/null +++ b/src/UIElements/Layers/IModuleManualLayer.cs @@ -0,0 +1,9 @@ +using Godot; + +namespace Nocturnis.UIElements.Layers; + +public interface IModuleManualLayer +{ + void AddChild(Node child); + Marker2D ManualPosition { get; set; } +} \ No newline at end of file diff --git a/src/UIElements/Layers/IModuleMovingLayer.cs b/src/UIElements/Layers/IModuleMovingLayer.cs new file mode 100644 index 0000000..2dbc28b --- /dev/null +++ b/src/UIElements/Layers/IModuleMovingLayer.cs @@ -0,0 +1,12 @@ +using Godot; +using Nocturnis.Enigmos.Boards; +using Nocturnis.Enigmos.Modules; + +namespace Nocturnis.UIElements.Layers; + +public interface IModuleMovingLayer +{ + IBaseModule DraggingModule { get; set; } + Vector2 MouseOffset { get; set; } + IBaseBoard Board { get; set; } +} \ No newline at end of file