diff options
Diffstat (limited to 'Game/Selection/selection_rectangle.gd')
-rw-r--r-- | Game/Selection/selection_rectangle.gd | 23 |
1 files changed, 14 insertions, 9 deletions
diff --git a/Game/Selection/selection_rectangle.gd b/Game/Selection/selection_rectangle.gd index 0b6bb22..1d1590a 100644 --- a/Game/Selection/selection_rectangle.gd +++ b/Game/Selection/selection_rectangle.gd @@ -1,20 +1,25 @@ extends Area2D +signal hover_entered(node: Node2D) +signal hover_exited(node: Node2D) + @export_group("Color", "color") @export var color_background: Color @export var color_border: Color +@export var is_enabled: bool + var anchor: Vector2 = Vector2.ZERO -var size: Vector2 = Vector2.ZERO : +var size: Vector2 = Vector2.ZERO: set(value): size = value $CollisionShape2D.position = size / 2 $CollisionShape2D.shape.size = abs(size) -var is_active: bool : +var is_active: bool: get(): - return abs(size) > Vector2(1, 1) and Client.state is StateDefault + return abs(size) > Vector2(1, 1) and is_enabled @onready var camera: Camera = get_viewport().get_camera_2d() @@ -50,11 +55,11 @@ func _draw(): draw_rect(rect, color_border, false, 1.1 / max(camera.zoom.x, camera.zoom.y)) -func _on_area_entered(area: Area2D) -> void: - if area.get_parent().owner_id == multiplayer.get_unique_id(): - area.get_parent().is_hovered = true +func _on_area_entered(area: SelectableArea) -> void: + if area.root.owner_id == multiplayer.get_unique_id(): + hover_entered.emit(area.root) -func _on_area_exited(area: Area2D) -> void: - if area.get_parent().owner_id == multiplayer.get_unique_id(): - area.get_parent().is_hovered = false +func _on_area_exited(area: SelectableArea) -> void: + if area.root.owner_id == multiplayer.get_unique_id(): + hover_exited.emit(area.root) |