62 lines
1.9 KiB
C#
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();
|
|
}
|
|
|
|
} |