extends Control @onready var serial_reader: Node = $"../SerialReader" func _ready() -> void: Input.set_mouse_mode(Input.MOUSE_MODE_VISIBLE) if serial_reader: serial_reader.mouse_pos_received.connect(_on_mouse_pos_received) func _on_mouse_pos_received(x: float, y: float) -> void: var viewport_size: Vector2 = get_viewport_rect().size var mapped_x: float = clamp(x, 0.0, viewport_size.x) var mapped_y: float = clamp(y, 0.0, viewport_size.y) var new_position: Vector2 = Vector2(mapped_x, mapped_y) call_deferred("_warp_the_mouse", new_position) func _warp_the_mouse(position: Vector2) -> void: Input.warp_mouse(position)