INIT
This commit is contained in:
60
addons/gdfxr/editor/ParamSlider.gd
Normal file
60
addons/gdfxr/editor/ParamSlider.gd
Normal file
@@ -0,0 +1,60 @@
|
||||
@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)
|
||||
|
||||
Reference in New Issue
Block a user