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
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)
|