ld-56/components/Cursor/cursor.gd

31 lines
768 B
GDScript3
Raw Normal View History

2024-10-06 08:22:46 +00:00
@icon("res://components/Cursor/mouse-pointer-2.svg")
extends Base
@onready var mouse_control = $"MouseControl"
func _process(delta):
Input.set_mouse_mode(Input.MOUSE_MODE_HIDDEN)
mouse_control.position = mouse_control.get_global_mouse_position()
if Input.is_action_just_pressed("left_click"):
var overlapping_areas = mouse_control.get_overlapping_areas()
overlapping_areas.sort_custom(func(a, b):
return a.z_index > b.z_index
)
for area in overlapping_areas:
if area.has_method("_on_clicked"):
if not area._on_clicked():
break
func _on_mouse_control_area_entered(area):
if area.has_method("_on_hovered"):
area._on_hovered()
func _on_mouse_control_area_exited(area):
if area.has_method("_on_unhovered"):
area._on_unhovered()