balatro-shader/components/float_param.gd

34 lines
764 B
GDScript

class_name FloatParam extends ParamField
@onready var label: Label = $Labels/Label
@onready var value_label: Label = $Labels/ValueLabel
@onready var h_slider: HSlider = $HSlider
var decimal_places: int
func setup(
dict: Dictionary,
key: String,
decimal_places: int = 2,
min: float = 0.0,
max: float = 1) -> void:
name = key
_d = dict
_k = key
label.text = key.capitalize()
decimal_places = decimal_places
h_slider.min_value = min
h_slider.max_value = max
h_slider.step = 1.0 / pow(10, decimal_places)
h_slider.value = dict[key]
value_label.text = str(h_slider.value)
h_slider.value_changed.connect(_on_h_slider_value_changed)
func _on_h_slider_value_changed(value: float) -> void:
value_label.text = str(value)
_d[_k] = value