Files
Enigmos/Manual/ModuleParameterTab.cs
2024-07-12 14:32:16 +01:00

62 lines
1.9 KiB
C#

using Godot;
using Nocturnis;
using Nocturnis.DataStructures.ConfigurableParameters;
using Nocturnis.Enigmos.ModuleManuals;
using Nocturnis.Enigmos.Modules;
using Nocturnis.GlobalManagement.Providers;
namespace Enigmos.Manual;
public partial class ModuleParameterTab : Panel, IModuleManualTab, ISceneConcept
{
public string FullName() => "Parameter";
private bool InitFlag { get; set; }
public void Init(IParameterizedModule module)
{
Module = module;
InitFlag = true;
}
public IParameterizedModule Module { get; set; }
private VBoxContainer Parameters { get; set; }
public override void _Ready()
{
if (!InitFlag)
throw new Exception("TODO - NEED INIT FIRST");
Parameters = GetNode<VBoxContainer>("ScrolledItems/Parameters");
foreach (IConfigurableParameter parameter in Module.ConfigurableParameters)
{
if(parameter is IDoubleParameter doubleParameter)
{
ModuleRealValueParameterSetter setter = GlobalProvider.ProcessProvider
.BuildModuleRealValueParameterSetter(doubleParameter) as ModuleRealValueParameterSetter;
Parameters.AddChild(setter);
}
else if (parameter is IBoolParameter boolParameter)
{
ModuleBoolValueParameterSetter setter = GlobalProvider.ProcessProvider
.BuildModuleBoolValueParameterSetter(boolParameter) as ModuleBoolValueParameterSetter;
Parameters.AddChild(setter);
}
else if (parameter is ICharParameter charParameter)
{
ModuleCharValueParameterSetter setter = GlobalProvider.ProcessProvider
.BuildModuleCharValueParameterSetter(charParameter) as ModuleCharValueParameterSetter;
Parameters.AddChild(setter);
}
else if (parameter is IKeyParameter keyParameter)
{
ModuleKeyValueParameterSetter setter = GlobalProvider.ProcessProvider
.BuildModuleKeyValueParameterSetter(keyParameter) as ModuleKeyValueParameterSetter;
Parameters.AddChild(setter);
}
}
Name = "Para";
base._Ready();
}
}