extends Node signal changed(ping: float) const HISTORY_SIZE = 8 var count := 0 var history: Array[float] = [] func _init(): history.resize(HISTORY_SIZE) func _ready(): %Network.add_handler(Packet.PING, self) func send_ping(): var buffer := StreamPeerBuffer.new() buffer.put_8(Packet.PING) buffer.put_8(count) %Network.udp.put_packet(buffer.data_array) history[count] = Time.get_unix_time_from_system() count += 1 if count >= HISTORY_SIZE: count = 0 func handle_packet(data: PackedByteArray): var id := data.decode_u8(0) var ping := Time.get_unix_time_from_system() - history[id] changed.emit(ping)