Split project
This commit is contained in:
73
Manual/ModuleParameterTab.cs
Normal file
73
Manual/ModuleParameterTab.cs
Normal file
@@ -0,0 +1,73 @@
|
||||
using Godot;
|
||||
using Nocturnis.DataStructures.ConfigurableParameters;
|
||||
using Nocturnis.Enigmos.ModuleManuals;
|
||||
using Nocturnis.Enigmos.Modules;
|
||||
using TabulaSmaragdina;
|
||||
|
||||
namespace Enigmos.Manual;
|
||||
|
||||
public partial class ModuleParameterTab : Panel, IModuleManualTab
|
||||
{
|
||||
public string FullName() => "Parameter";
|
||||
private bool InitFlag { get; set; }
|
||||
public void Init(IParameterizedModule module)
|
||||
{
|
||||
Module = module;
|
||||
InitFlag = true;
|
||||
}
|
||||
|
||||
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()
|
||||
{
|
||||
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 =
|
||||
RealParameterSetterScene.Instantiate<ModuleRealValueParameterSetter>();
|
||||
setter.Init(doubleParameter);
|
||||
Parameters.AddChild(setter);
|
||||
}
|
||||
|
||||
else if (parameter is IBoolParameter boolParameter)
|
||||
{
|
||||
ModuleBoolValueParameterSetter setter =
|
||||
BoolParameterSetterScene.Instantiate<ModuleBoolValueParameterSetter>();
|
||||
setter.Init(boolParameter);
|
||||
Parameters.AddChild(setter);
|
||||
}
|
||||
else if (parameter is ICharParameter charParameter)
|
||||
{
|
||||
ModuleCharValueParameterSetter setter =
|
||||
GlobalProvider.SceneProvider
|
||||
.AssetMapper<ModuleCharValueParameterSetter>()
|
||||
.Instantiate<ModuleCharValueParameterSetter>();
|
||||
setter.Init(charParameter);
|
||||
Parameters.AddChild(setter);
|
||||
}
|
||||
else if (parameter is IKeyParameter keyParameter)
|
||||
{
|
||||
ModuleKeyValueParameterSetter setter =
|
||||
GlobalProvider.SceneProvider
|
||||
.AssetMapper<ModuleKeyValueParameterSetter>()
|
||||
.Instantiate<ModuleKeyValueParameterSetter>();
|
||||
setter.Init(keyParameter);
|
||||
Parameters.AddChild(setter);
|
||||
}
|
||||
}
|
||||
|
||||
Name = "Para";
|
||||
base._Ready();
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user