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("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(); } }