source generator
This commit is contained in:
@@ -1,10 +1,11 @@
|
||||
using Godot;
|
||||
using Nocturnis;
|
||||
using Nocturnis.Communicators;
|
||||
using Nocturnis.Enigmos.ModuleManuals;
|
||||
using Nocturnis.Enigmos.Modules;
|
||||
|
||||
namespace Enigmos.Manual;
|
||||
public partial class CommunicatorPairTab : Panel, IModuleManualTab
|
||||
public partial class CommunicatorPairTab : Panel, IModuleManualTab, ISceneConcept
|
||||
{
|
||||
private bool InitFlag { get; set; }
|
||||
public string FullName() => "Pair";
|
||||
|
||||
@@ -1,10 +1,11 @@
|
||||
using Godot;
|
||||
using Nocturnis;
|
||||
using Nocturnis.Enigmos.ModuleManuals;
|
||||
using Nocturnis.Enigmos.Modules;
|
||||
|
||||
namespace Enigmos.Manual;
|
||||
|
||||
public partial class ErrorHandlerTab : Panel, IModuleManualTab
|
||||
public partial class ErrorHandlerTab : Panel, IModuleManualTab, ISceneConcept
|
||||
{
|
||||
public string FullName() => "Error Handling";
|
||||
private bool InitFlag { get; set; }
|
||||
|
||||
@@ -1,9 +1,10 @@
|
||||
using Godot;
|
||||
using Nocturnis;
|
||||
using Nocturnis.DataStructures.ConfigurableParameters;
|
||||
|
||||
namespace Enigmos.Manual;
|
||||
|
||||
public partial class ModuleBoolValueParameterSetter : ModuleParameterSetter
|
||||
public partial class ModuleBoolValueParameterSetter : ModuleParameterSetter, ISceneConcept
|
||||
{
|
||||
private CheckButton ToggleSetter { get; set; }
|
||||
private Label TrueLabel { get; set; }
|
||||
|
||||
@@ -1,9 +1,10 @@
|
||||
using Godot;
|
||||
using Nocturnis;
|
||||
using Nocturnis.DataStructures.ConfigurableParameters;
|
||||
|
||||
namespace Enigmos.Manual;
|
||||
|
||||
public partial class ModuleCharValueParameterSetter : ModuleParameterSetter
|
||||
public partial class ModuleCharValueParameterSetter : ModuleParameterSetter, ISceneConcept
|
||||
{
|
||||
private LineEdit CharInput { get; set; }
|
||||
private Button Apply { get; set; }
|
||||
|
||||
@@ -1,9 +1,10 @@
|
||||
using Godot;
|
||||
using Nocturnis;
|
||||
using Nocturnis.DataStructures.ConfigurableParameters;
|
||||
|
||||
namespace Enigmos.Manual;
|
||||
|
||||
public partial class ModuleKeyValueParameterSetter : ModuleParameterSetter
|
||||
public partial class ModuleKeyValueParameterSetter : ModuleParameterSetter, ISceneConcept
|
||||
{
|
||||
public new IKeyParameter UnderlyingParameter
|
||||
{
|
||||
|
||||
@@ -1,12 +1,13 @@
|
||||
using Enigmos.Modules.ProgrammableModules;
|
||||
using Godot;
|
||||
using Nocturnis;
|
||||
using Nocturnis.Enigmos.ModuleManuals;
|
||||
using Nocturnis.Enigmos.Modules;
|
||||
using Nocturnis.GlobalManagement.Providers;
|
||||
|
||||
namespace Enigmos.Manual;
|
||||
|
||||
public partial class ModuleManual : Panel
|
||||
public abstract partial class ModuleManual : Panel, ISceneConcept
|
||||
{
|
||||
private bool InitFlag { get; set; }
|
||||
|
||||
@@ -16,15 +17,14 @@ public partial class ModuleManual : Panel
|
||||
InitFlag = true;
|
||||
}
|
||||
|
||||
private Label ModuleDescriptionTitle { get; set; }
|
||||
private RichTextLabel ModuleDescription { get; set; }
|
||||
private Label ModuleConfigurationTitle { get; set; }
|
||||
private TextureButton Close { get; set; }
|
||||
private TabContainer ConfigurationTabs { get; set; }
|
||||
private IBaseModule Module { get; set; }
|
||||
private List<IModuleManualTab> Tabs { get; set; }
|
||||
private LineEdit LabelString { get; set; }
|
||||
|
||||
private Label? ModuleDescriptionTitle { get; set; }
|
||||
private RichTextLabel? ModuleDescription { get; set; }
|
||||
private Label? ModuleConfigurationTitle { get; set; }
|
||||
private TextureButton? Close { get; set; }
|
||||
private TabContainer? ConfigurationTabs { get; set; }
|
||||
private IBaseModule? Module { get; set; }
|
||||
private List<IModuleManualTab> Tabs { get; set; } = new();
|
||||
private LineEdit? LabelString { get; set; }
|
||||
public override void _Ready()
|
||||
{
|
||||
if(!InitFlag)
|
||||
@@ -38,16 +38,16 @@ public partial class ModuleManual : Panel
|
||||
LabelString = GetNode<LineEdit>("LabelString");
|
||||
LabelString.Text = Module.LabelString;
|
||||
Tabs = new List<IModuleManualTab>();
|
||||
PortMaintenanceTab mainTab = GlobalProvider.SceneProvider
|
||||
.AssetMapper<PortMaintenanceTab>()
|
||||
PortMaintenanceTab mainTab = GlobalProvider
|
||||
.AssetMapper<PortMaintenanceTab>.Scene
|
||||
.Instantiate<PortMaintenanceTab>();
|
||||
mainTab.Init(Module);
|
||||
Tabs.Add(mainTab);
|
||||
ConfigurationTabs.AddChild(mainTab);
|
||||
if (Module is IPolymorphismModule polyModule)
|
||||
{
|
||||
ModulePolymorphismTab polyTab = GlobalProvider.SceneProvider
|
||||
.AssetMapper<ModulePolymorphismTab>()
|
||||
ModulePolymorphismTab polyTab = GlobalProvider
|
||||
.AssetMapper<ModulePolymorphismTab>.Scene
|
||||
.Instantiate<ModulePolymorphismTab>();
|
||||
polyTab.Init(polyModule);
|
||||
Tabs.Add(polyTab);
|
||||
@@ -56,8 +56,8 @@ public partial class ModuleManual : Panel
|
||||
|
||||
if (Module is IParameterizedModule paraModule)
|
||||
{
|
||||
ModuleParameterTab paraTab = GlobalProvider.SceneProvider
|
||||
.AssetMapper<ModuleParameterTab>()
|
||||
ModuleParameterTab paraTab = GlobalProvider
|
||||
.AssetMapper<ModuleParameterTab>.Scene
|
||||
.Instantiate<ModuleParameterTab>();
|
||||
paraTab.Init(paraModule);
|
||||
Tabs.Add(paraTab);
|
||||
@@ -66,8 +66,8 @@ public partial class ModuleManual : Panel
|
||||
|
||||
if (Module is ICommunicateModule comModule)
|
||||
{
|
||||
CommunicatorPairTab pairTab = GlobalProvider.SceneProvider
|
||||
.AssetMapper<CommunicatorPairTab>()
|
||||
CommunicatorPairTab pairTab = GlobalProvider
|
||||
.AssetMapper<CommunicatorPairTab>.Scene
|
||||
.Instantiate<CommunicatorPairTab>();
|
||||
pairTab.Init(comModule);
|
||||
Tabs.Add(pairTab);
|
||||
@@ -76,8 +76,8 @@ public partial class ModuleManual : Panel
|
||||
|
||||
if (Module is ProgrammableModule programmableModule)
|
||||
{
|
||||
ProgrammableModuleSettingTab progTab =GlobalProvider.SceneProvider
|
||||
.AssetMapper<ProgrammableModuleSettingTab>()
|
||||
ProgrammableModuleSettingTab progTab =GlobalProvider
|
||||
.AssetMapper<ProgrammableModuleSettingTab>.Scene
|
||||
.Instantiate<ProgrammableModuleSettingTab>();
|
||||
progTab.Init(programmableModule);
|
||||
Tabs.Add(progTab);
|
||||
@@ -86,8 +86,8 @@ public partial class ModuleManual : Panel
|
||||
|
||||
if (Module is IErrorHandlerModule errorHandlerModule)
|
||||
{
|
||||
ErrorHandlerTab errTab = GlobalProvider.SceneProvider
|
||||
.AssetMapper<ErrorHandlerTab>()
|
||||
ErrorHandlerTab errTab = GlobalProvider
|
||||
.AssetMapper<ErrorHandlerTab>.Scene
|
||||
.Instantiate<ErrorHandlerTab>();
|
||||
errTab.Init(errorHandlerModule);
|
||||
Tabs.Add(errTab);
|
||||
@@ -110,4 +110,4 @@ public partial class ModuleManual : Panel
|
||||
Module.Label.Text = label;
|
||||
Module.LabelString = label;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
using Godot;
|
||||
using Nocturnis;
|
||||
using Nocturnis.DataStructures.ConfigurableParameters;
|
||||
using Nocturnis.Enigmos.ModuleManuals;
|
||||
using Nocturnis.Enigmos.Modules;
|
||||
@@ -6,7 +7,7 @@ using Nocturnis.GlobalManagement.Providers;
|
||||
|
||||
namespace Enigmos.Manual;
|
||||
|
||||
public partial class ModuleParameterTab : Panel, IModuleManualTab
|
||||
public partial class ModuleParameterTab : Panel, IModuleManualTab, ISceneConcept
|
||||
{
|
||||
public string FullName() => "Parameter";
|
||||
private bool InitFlag { get; set; }
|
||||
@@ -18,11 +19,7 @@ public partial class ModuleParameterTab : Panel, IModuleManualTab
|
||||
|
||||
public IParameterizedModule Module { get; set; }
|
||||
|
||||
private static readonly PackedScene RealParameterSetterScene =
|
||||
GlobalProvider.SceneProvider.AssetMapper<ModuleRealValueParameterSetter>();
|
||||
|
||||
private static readonly PackedScene BoolParameterSetterScene =
|
||||
GlobalProvider.SceneProvider.AssetMapper<ModuleBoolValueParameterSetter>();
|
||||
private VBoxContainer Parameters { get; set; }
|
||||
public override void _Ready()
|
||||
{
|
||||
@@ -33,24 +30,26 @@ public partial class ModuleParameterTab : Panel, IModuleManualTab
|
||||
{
|
||||
if(parameter is IDoubleParameter doubleParameter)
|
||||
{
|
||||
ModuleRealValueParameterSetter setter =
|
||||
RealParameterSetterScene.Instantiate<ModuleRealValueParameterSetter>();
|
||||
ModuleRealValueParameterSetter setter = GlobalProvider
|
||||
.AssetMapper<ModuleRealValueParameterSetter>.Scene
|
||||
.Instantiate<ModuleRealValueParameterSetter>();
|
||||
setter.Init(doubleParameter);
|
||||
Parameters.AddChild(setter);
|
||||
}
|
||||
|
||||
else if (parameter is IBoolParameter boolParameter)
|
||||
{
|
||||
ModuleBoolValueParameterSetter setter =
|
||||
BoolParameterSetterScene.Instantiate<ModuleBoolValueParameterSetter>();
|
||||
ModuleBoolValueParameterSetter setter = GlobalProvider
|
||||
.AssetMapper<ModuleBoolValueParameterSetter>.Scene
|
||||
.Instantiate<ModuleBoolValueParameterSetter>();
|
||||
setter.Init(boolParameter);
|
||||
Parameters.AddChild(setter);
|
||||
}
|
||||
else if (parameter is ICharParameter charParameter)
|
||||
{
|
||||
ModuleCharValueParameterSetter setter =
|
||||
GlobalProvider.SceneProvider
|
||||
.AssetMapper<ModuleCharValueParameterSetter>()
|
||||
GlobalProvider
|
||||
.AssetMapper<ModuleCharValueParameterSetter>.Scene
|
||||
.Instantiate<ModuleCharValueParameterSetter>();
|
||||
setter.Init(charParameter);
|
||||
Parameters.AddChild(setter);
|
||||
@@ -58,8 +57,8 @@ public partial class ModuleParameterTab : Panel, IModuleManualTab
|
||||
else if (parameter is IKeyParameter keyParameter)
|
||||
{
|
||||
ModuleKeyValueParameterSetter setter =
|
||||
GlobalProvider.SceneProvider
|
||||
.AssetMapper<ModuleKeyValueParameterSetter>()
|
||||
GlobalProvider
|
||||
.AssetMapper<ModuleKeyValueParameterSetter>.Scene
|
||||
.Instantiate<ModuleKeyValueParameterSetter>();
|
||||
setter.Init(keyParameter);
|
||||
Parameters.AddChild(setter);
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
using Godot;
|
||||
using Nocturnis;
|
||||
using Nocturnis.DataStructures.DataPortGroups;
|
||||
using Nocturnis.Enigmos.ModuleManuals;
|
||||
using Nocturnis.Enigmos.Modules;
|
||||
@@ -6,7 +7,7 @@ using Nocturnis.GlobalManagement.Providers;
|
||||
|
||||
namespace Enigmos.Manual;
|
||||
|
||||
public partial class ModulePolymorphismTab : Panel, IModuleManualTab
|
||||
public partial class ModulePolymorphismTab : Panel, IModuleManualTab, ISceneConcept
|
||||
{
|
||||
private bool InitFlag { get; set; }
|
||||
|
||||
@@ -17,9 +18,6 @@ public partial class ModulePolymorphismTab : Panel, IModuleManualTab
|
||||
}
|
||||
|
||||
public string FullName() => "Polymorphism";
|
||||
|
||||
private static readonly PackedScene PortTypeSelectorScene =
|
||||
GlobalProvider.SceneProvider.AssetMapper<PortTypeSelector>();
|
||||
public IPolymorphismModule Module { get; set; }
|
||||
private VBoxContainer PortGroups { get; set; }
|
||||
|
||||
@@ -30,7 +28,9 @@ public partial class ModulePolymorphismTab : Panel, IModuleManualTab
|
||||
PortGroups = GetNode<VBoxContainer>("ScrolledItems/PortGroups");
|
||||
foreach (IDataPortGroup group in Module.ConfigurablePortGroups)
|
||||
{
|
||||
PortTypeSelector selector = PortTypeSelectorScene.Instantiate<PortTypeSelector>();
|
||||
PortTypeSelector selector = GlobalProvider
|
||||
.AssetMapper<PortTypeSelector>.Scene
|
||||
.Instantiate<PortTypeSelector>();
|
||||
selector.Init(group);
|
||||
PortGroups.AddChild(selector);
|
||||
}
|
||||
|
||||
@@ -1,9 +1,10 @@
|
||||
using Godot;
|
||||
using Nocturnis;
|
||||
using Nocturnis.DataStructures.ConfigurableParameters;
|
||||
|
||||
namespace Enigmos.Manual;
|
||||
|
||||
public partial class ModuleRealValueParameterSetter : ModuleParameterSetter
|
||||
public partial class ModuleRealValueParameterSetter : ModuleParameterSetter, ISceneConcept
|
||||
{
|
||||
public void Init(IDoubleParameter parameter)
|
||||
{
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
using Enigmos.Modules.ProgrammableModules;
|
||||
using Godot;
|
||||
using Nocturnis;
|
||||
using Nocturnis.Enigmos.ModuleManuals;
|
||||
using Nocturnis.Enigmos.Modules;
|
||||
using Nocturnis.Enigmos.Ports;
|
||||
@@ -7,7 +8,7 @@ using Nocturnis.GlobalManagement.Providers;
|
||||
|
||||
namespace Enigmos.Manual;
|
||||
|
||||
public partial class PortMaintenanceTab : Panel, IModuleManualTab
|
||||
public abstract partial class PortMaintenanceTab : Panel, IModuleManualTab, ISceneConcept
|
||||
{
|
||||
private bool InitFlag { get; set; }
|
||||
|
||||
@@ -18,7 +19,10 @@ public partial class PortMaintenanceTab : Panel, IModuleManualTab
|
||||
}
|
||||
|
||||
public string FullName() => "Maintenance";
|
||||
private static readonly PackedScene PortFixerScene = GlobalProvider.SceneProvider!.AssetMapper<PortFixer>();
|
||||
|
||||
protected abstract PortFixer PortFixerInstantiate();
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Should Be Assigned Before This Tab Been Added As Child To Tab Container
|
||||
/// </summary>
|
||||
@@ -31,7 +35,7 @@ public partial class PortMaintenanceTab : Panel, IModuleManualTab
|
||||
Ports = GetNode<VBoxContainer>("ScrolledItems/Ports");
|
||||
foreach (IBasePort port in Module!.Ports)
|
||||
{
|
||||
PortFixer fixer = PortFixerScene.Instantiate<PortFixer>();
|
||||
PortFixer fixer = PortFixerInstantiate();
|
||||
fixer.Init(port);
|
||||
Ports.AddChild(fixer);
|
||||
}
|
||||
@@ -39,18 +43,18 @@ public partial class PortMaintenanceTab : Panel, IModuleManualTab
|
||||
if (Module is ProgrammableModule programmableModule)
|
||||
{
|
||||
HashSet<string> used = new HashSet<string>();
|
||||
foreach (IBasePort port in programmableModule.ExplicitPorts)
|
||||
foreach (IBasePort port in programmableModule.Ports)
|
||||
{
|
||||
int i = 0;
|
||||
while (used.Contains("Exterior" + port.Name + $"#{i}"))
|
||||
i++;
|
||||
used.Add("Exterior" + port.Name + $"#{i}");
|
||||
port.Name = "Exterior" + port.Name + $"#{i}";
|
||||
PortFixer fixer = PortFixerScene.Instantiate<PortFixer>();
|
||||
PortFixer fixer = PortFixerInstantiate();
|
||||
fixer.Init(port);
|
||||
Ports.AddChild(fixer);
|
||||
}
|
||||
foreach (IBasePort port in programmableModule.ImplicitPorts)
|
||||
foreach (IBasePort port in programmableModule.Board!.OnBoardPorts)
|
||||
{
|
||||
string baseName = port.Name.ToString().Replace("Empty", "Interior");
|
||||
int i = 0;
|
||||
@@ -58,7 +62,7 @@ public partial class PortMaintenanceTab : Panel, IModuleManualTab
|
||||
i++;
|
||||
used.Add(baseName + $"#{i}");
|
||||
port.Name = baseName + $"#{i}";
|
||||
PortFixer fixer = PortFixerScene.Instantiate<PortFixer>();
|
||||
PortFixer fixer = PortFixerInstantiate();
|
||||
fixer.Init(port);
|
||||
Ports.AddChild(fixer);
|
||||
}
|
||||
|
||||
@@ -1,10 +1,11 @@
|
||||
using Godot;
|
||||
using Nocturnis;
|
||||
using Nocturnis.DataStructures.DataPortGroups;
|
||||
using Nocturnis.GlobalManagement.Providers;
|
||||
|
||||
namespace Enigmos.Manual;
|
||||
|
||||
public partial class PortTypeSelector : Control
|
||||
public partial class PortTypeSelector : Control, ISceneConcept
|
||||
{
|
||||
private bool InitFlag { get; set; }
|
||||
|
||||
|
||||
@@ -1,11 +1,12 @@
|
||||
using Enigmos.Modules.ProgrammableModules;
|
||||
using Godot;
|
||||
using Nocturnis;
|
||||
using Nocturnis.Enigmos.ModuleManuals;
|
||||
using Nocturnis.GlobalManagement.Providers;
|
||||
|
||||
namespace Enigmos.Manual;
|
||||
|
||||
public partial class ProgrammableModuleSettingTab : Panel, IModuleManualTab
|
||||
public abstract partial class ProgrammableModuleSettingTab : Panel, IModuleManualTab, ISceneConcept
|
||||
{
|
||||
private ProgrammableModule? Module { get; set; }
|
||||
|
||||
@@ -29,4 +30,5 @@ public partial class ProgrammableModuleSettingTab : Panel, IModuleManualTab
|
||||
{
|
||||
GlobalProvider.SceneProvider!.RootScene.ChangeScene(Module!.UnderlyingBoard);
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user