valueslider.gd 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. extends VBoxContainer
  2. #Called when the node enters the scene tree for the first time.
  3. func _ready() -> void:
  4. #$HSplitContainer/ValueLabel.text = str($HSplitContainer/HSlider.value) # initial value
  5. $HSplitContainer/LineEdit.text = str($HSplitContainer/HSlider.value) # initial value
  6. func _on_h_slider_value_changed(value: float) -> void:
  7. #$HSplitContainer/ValueLabel.text = str(value)
  8. $HSplitContainer/LineEdit.text = str(value)
  9. func _on_line_edit_text_submitted(new_text: String) -> void:
  10. #check if input from text box is a valid number for the slider if not choose and appropriate value and set that
  11. if new_text.is_valid_float():
  12. var new_val = new_text.to_float()
  13. if new_val > $HSplitContainer/HSlider.max_value:
  14. $HSplitContainer/HSlider.value = $HSplitContainer/HSlider.max_value
  15. elif new_val < $HSplitContainer/HSlider.min_value:
  16. $HSplitContainer/HSlider.value = $HSplitContainer/HSlider.min_value
  17. else:
  18. $HSplitContainer/HSlider.set_value_no_signal(new_val)
  19. else:
  20. $HSplitContainer/LineEdit.text = str($HSplitContainer/HSlider.value)
  21. func _on_line_edit_focus_exited() -> void:
  22. #check if input from text box is a valid number for the slider if not choose and appropriate value and set that
  23. if $HSplitContainer/LineEdit.text.is_valid_float():
  24. var new_val = $HSplitContainer/LineEdit.text.to_float()
  25. if new_val > $HSplitContainer/HSlider.max_value:
  26. $HSplitContainer/HSlider.value = $HSplitContainer/HSlider.max_value
  27. elif new_val < $HSplitContainer/HSlider.min_value:
  28. $HSplitContainer/HSlider.value = $HSplitContainer/HSlider.min_value
  29. else:
  30. $HSplitContainer/HSlider.set_value_no_signal(new_val)
  31. else:
  32. $HSplitContainer/LineEdit.text = str($HSplitContainer/HSlider.value)