extends Node signal mouse_pos_received(x: float, y: float) @export var port_name: String = "/dev/cu.usbmodem2101" @export var baud_rate: int = 9600 @onready var serial = $GDSerial func _ready(): var error = serial.open(port_name, baud_rate) if error != OK: print("fuck it ...", error) else: print("open bar !") func _process(_delta): if serial.is_open() and serial.bytes_available() > 0: var response = serial.readline() if not response.is_empty(): _parse_and_emit(response) func _parse_and_emit(response: String): var clean_response = response.strip_edges() var parts = clean_response.split(",") # Ex: ["X:100", "Y:200"] var x = 0.0 var y = 0.0 for part in parts: var key_value = part.split(":") if key_value.size() == 2: var key = key_value[0].strip_edges() # Ex: "X" var value = float(key_value[1].strip_edges()) # Ex: 100.0 if key == "X": x = value elif key == "Y": y = value mouse_pos_received.emit(x, y)