Files
uarep-ctl/scripts/repnetwork.gd
2023-07-12 10:34:22 +03:00

37 lines
1.2 KiB
GDScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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)