Files
uarep-ctl/scenes/repnetwork.gd

37 lines
1.1 KiB
GDScript

extends Node
var sock: PacketPeerUDP
var units: Dictionary
func _ready() -> void:
var addr = REPSettings.addr['уареп-пульт'][1]
var port = REPSettings.addr['уареп-пульт'][2]
sock = PacketPeerUDP.new()
sock.bind(port, addr)
for key in REPSettings.addr:
var prof = REPSettings.addr[key]
if prof[0] == 'yau07':
addr = REPSettings.addr[key][1]
port = REPSettings.addr[key][2]
var unit = yau07.YaU07.new([addr, port])
var addr_port: String = '%s:%d' % [addr, port]
units[addr_port] = unit
Log.info('ЯУ-07: %s' % unit)
func _process(delta: float) -> void:
for unit in units.values() as Array[yau07.YaU07]:
unit.process(delta, sock)
while sock.get_available_packet_count() > 0:
var data = sock.get_packet()
var addr = sock.get_packet_ip()
var port = sock.get_packet_port()
var addr_port: String = '%s:%d' % [addr, port]
if addr_port in units:
var unit: yau07.YaU07 = units[addr_port]
unit.parse(data)
return