using Godot;
using Nocturnis;
using Nocturnis.DataStructures.ConfigurableParameters;
namespace Enigmos.Manual;
public partial class ModuleRealValueParameterSetter : ModuleParameterSetter, ISceneConcept
{
public void Init(IDoubleParameter parameter)
{
UnderlyingParameter = parameter;
InitFlag = true;
}
///
/// Underlying Parameter must be set before ready
///
public new IDoubleParameter UnderlyingParameter
{
get => (base.UnderlyingParameter as IDoubleParameter)!;
set => base.UnderlyingParameter = value;
}
private HSlider SliderSetter { get; set; }
private SpinBox SpinSetter { get; set; }
private double MinValue
{
get => SliderSetter.MinValue;
set
{
SliderSetter.MinValue = value;
SpinSetter.MinValue = value;
}
}
private double MaxValue
{
get => SliderSetter.MaxValue;
set
{
SliderSetter.MaxValue = value;
SpinSetter.MaxValue = value;
}
}
private double Step
{
get => SliderSetter.Step;
set
{
SliderSetter.Step = value;
SpinSetter.Step = value;
}
}
private Label MaxLabel { get; set; }
private Label MinLabel { get; set; }
private double Value
{
get => SliderSetter.Value;
set
{
SliderSetter.Value = value;
SpinSetter.Value = value;
}
}
public override void _Ready()
{
if (!InitFlag)
throw new Exception("TODO - NEED INIT");
SliderSetter = GetNode("SliderSetter");
SpinSetter = GetNode("SpinSetter");
MaxLabel = GetNode