summaryrefslogtreecommitdiff
path: root/Game/Selection/selection_rectangle.gd
diff options
context:
space:
mode:
Diffstat (limited to 'Game/Selection/selection_rectangle.gd')
-rw-r--r--Game/Selection/selection_rectangle.gd23
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)