blob: e611835dfc1e3868a1bb5d78811e85aab344a66e (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
class_name SelectableArea
extends Area2D
signal hover_enter
signal hover_exit
signal select_primary(event: InputEvent)
signal select_secondary(event: InputEvent)
@export var root: Node2D
func _ready() -> void:
var cshapes := find_children("*", "CollisionShape2D")
assert(cshapes.size() > 0)
assert(cshapes[0].shape is RectangleShape2D)
$HoverControl.size = cshapes[0].shape.size
func _on_mouse_entered() -> void:
hover_enter.emit()
func _on_mouse_exited() -> void:
hover_exit.emit()
func _on_input_event(_viewport: Node, event: InputEvent, _shape_idx: int) -> void:
if event.is_action_pressed("select"):
select_primary.emit(event)
if event.is_action_pressed("select_secondary"):
select_secondary.emit(event)
|