24 lines
510 B
GDScript
24 lines
510 B
GDScript
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)
|