extends NetworkNode

@export var port := 4242
@export var max_pending_connections := 4096

var server := UDPServer.new()
var last_statistics := Time.get_ticks_msec()
var packet_count := 0

func _init():
	super._init()
	server.set_max_pending_connections(max_pending_connections)
	server.listen(port)

func _process(_delta):
	server.poll()

	while server.is_connection_available():
		var peer: PacketPeerUDP = server.take_connection()

		while peer.get_available_packet_count() > 0:
			var packet = peer.get_packet()
			handle_packet(packet, peer)
			packet_count += 1

	if Time.get_ticks_msec() > last_statistics + 1000:
		print("[Server] %d packets per second" % packet_count)
		packet_count = 0
		last_statistics = Time.get_ticks_msec()