ResourcePackConfigOptionNode.gd 841 B

1234567891011121314151617181920212223242526272829303132
  1. class_name PackConfigOption
  2. extends HBoxContainer
  3. @export var selected := false
  4. var values := []
  5. signal value_changed(this: PackConfigOption)
  6. var config_name := ""
  7. var selected_index := 0
  8. var is_bool := false
  9. func _process(_delta: float) -> void:
  10. if selected:
  11. handle_inputs()
  12. $Cursor.modulate.a = int(selected)
  13. $Title.text = tr(config_name) + ":"
  14. $Value.text = ("◄" if selected_index > 0 and selected else " ") + tr(str(values[selected_index])) + ("►" if selected_index < values.size() - 1 and selected else " ")
  15. func handle_inputs() -> void:
  16. var old := selected_index
  17. if Input.is_action_just_pressed("ui_left"):
  18. selected_index -= 1
  19. if Input.is_action_just_pressed("ui_right"):
  20. selected_index += 1
  21. selected_index = clamp(selected_index, 0, values.size() - 1)
  22. if old != selected_index:
  23. value_changed.emit(self)