extends CanvasLayer # Track the current cursor shape var current_shape: int = -1 # References to child nodes (automatically set via $ syntax) @onready var texture_rect = $PanelContainer/TextureRect @onready var hotspot_marker = $PanelContainer/TextureRect/HotSpotMarker func _process(_delta): # Check the current cursor shape var shape = Input.get_current_cursor_shape() #Input.set_custom_mouse_cursor() if shape != current_shape: current_shape = shape #update_cursor(shape) func update_cursor(image: Resource, _shape:= 0 as Input.CursorShape, hotspot: Vector2 = Vector2(0, 0)): # Get the custom cursor data from the main script if image != null: texture_rect.texture = image # Position the hotspot marker (assuming a 4x4 marker) hotspot_marker.position = hotspot else: # Clear the texture if no custom cursor is set for this shape texture_rect.texture = null