Files
TheGamesGame/addons/gdfxr/editor/ParamSlider.gd
2026-07-01 20:31:41 +02:00

61 lines
939 B
GDScript

@tool
extends HBoxContainer
signal param_changed(name, value)
signal param_reset(name)
signal param_submitted(name)
@export var label: String :
set = set_label
@export var parameter: String
@export var bipolar := false :
set = set_bipolar
func _ready():
set_label(label)
set_bipolar(bipolar)
func set_label(v: String) -> void:
label = v
if is_inside_tree():
$Label.text = v
func set_bipolar(v: bool) -> void:
bipolar = v
if not is_inside_tree():
return
if bipolar:
$HSlider.min_value = -1.0
else:
$HSlider.min_value = 0.0
func set_value(v: float) -> void:
$HSlider.value = v
func get_value() -> float:
return $HSlider.value
func set_resetable(v: bool) -> void:
$Reset.disabled = not v
func _on_HSlider_value_changed(value: float):
param_changed.emit(parameter, value)
func _on_Reset_pressed():
param_reset.emit(parameter)
func _on_HSlider_value_submitted():
param_submitted.emit(parameter)