| 123456789101112131415161718192021222324252627282930313233 |
- class_name EditorSelectorScroller
- extends Control
- @export var selected_index := 0
- var selectors: Array[Control] = []
- func _ready() -> void:
- for i in get_children():
- if i is EditorTileSelector:
- selectors.append(i)
- func _process(_delta: float) -> void:
- handle_inputs()
- for i in selectors.size():
- selectors[i].visible = i == selected_index
- selectors[i].notification(NOTIFICATION_MOUSE_ENTER)
- func handle_inputs() -> void:
- var hovered = false
- for i in selectors:
- if i.get_node("Button").is_hovered():
- hovered = true
- break
- if not hovered:
- return
- if Input.is_action_just_pressed("scroll_up"):
- selected_index += 1
- warp_mouse(get_local_mouse_position())
- if Input.is_action_just_pressed("scroll_down"):
- selected_index -= 1
- warp_mouse(get_local_mouse_position())
- selected_index = clamp(selected_index, 0, selectors.size() - 1)
|