| 123456789101112131415161718192021222324252627282930 |
- extends HBoxContainer
- var selected := false
- @export var title := ""
- var selected_index := 0
- @export var values: Array[String] = []
- @export var add_colon := true
- signal value_changed(new_index: int)
- func _process(_delta: float) -> void:
- if selected:
- handle_inputs()
- $Title/Cursor.visible = (selected)
- $Title.text = tr(title) + (":" if add_colon else "")
- $Value.text = ("◄" if selected_index > 0 and selected else " ") + tr(str(values[selected_index])) + ("►" if selected_index < values.size() - 1 and selected else " ")
- func set_selected(active := false) -> void:
- selected = active
- func handle_inputs() -> void:
- var old := selected_index
- if Input.is_action_just_pressed("ui_left"):
- selected_index -= 1
- if Input.is_action_just_pressed("ui_right"):
- selected_index += 1
- selected_index = clamp(selected_index, 0, values.size() - 1)
- if old != selected_index:
- value_changed.emit(selected_index)
-
|