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)