using Godot; using Nocturnis.DataStructures.ConfigurableParameters; namespace Enigmos.Manual; public partial class ModuleRealValueParameterSetter : ModuleParameterSetter { 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