37 lines
1.2 KiB
GDScript
37 lines
1.2 KiB
GDScript
extends Node
|
||
|
||
|
||
var sock_unicast: PacketPeerUDP
|
||
var sock_broadcast: PacketPeerUDP
|
||
var units_yau07: Dictionary
|
||
|
||
|
||
func _ready() -> void:
|
||
var addr = REPSettings.addr['уарэп-яу07-частный'][1]
|
||
var port = REPSettings.addr['уарэп-яу07-частный'][2]
|
||
sock_unicast = PacketPeerUDP.new()
|
||
sock_unicast.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_yau07[addr_port] = unit
|
||
Log.info('ЯУ-07: %s' % unit)
|
||
|
||
|
||
func _process(delta: float) -> void:
|
||
for unit in units_yau07.values() as Array[yau07.YaU07]:
|
||
unit.process(delta, sock_unicast)
|
||
|
||
while sock_unicast.get_available_packet_count() > 0:
|
||
var data = sock_unicast.get_packet()
|
||
var addr = sock_unicast.get_packet_ip()
|
||
var port = sock_unicast.get_packet_port()
|
||
var addr_port: String = '%s:%d' % [addr, port]
|
||
if addr_port in units_yau07:
|
||
var unit: yau07.YaU07 = units_yau07[addr_port]
|
||
unit.parse(data)
|