24 lines
510 B
GDScript3
24 lines
510 B
GDScript3
|
class_name NetworkNode
|
||
|
extends Node
|
||
|
|
||
|
var handlers: Array[Node] = []
|
||
|
|
||
|
func _init():
|
||
|
handlers.resize(256)
|
||
|
|
||
|
func get_handler(index: int) -> PacketHandler:
|
||
|
return handlers[index]
|
||
|
|
||
|
func set_handler(index: int, node: PacketHandler):
|
||
|
handlers[index] = node
|
||
|
|
||
|
func handle_packet(packet: PackedByteArray, peer: PacketPeer):
|
||
|
var type := packet.decode_u8(0)
|
||
|
var handler := get_handler(type)
|
||
|
|
||
|
if handler == null:
|
||
|
push_warning("Unknown packet type %d" % type)
|
||
|
return
|
||
|
|
||
|
handler.handle_packet(packet.slice(1), peer)
|