summaryrefslogtreecommitdiff
path: root/Game/Selection/selectable_area.gd
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)