You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

19 lines
633 B
GDScript

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)