Исправления. Исправлен вылет, если цель приходит в режиме контроля с отключеными сигналами в работе.
This commit is contained in:
@@ -745,7 +745,7 @@ func _on_threat_new(th) -> void:
|
||||
|
||||
|
||||
func _on_threat_update(th) -> void:
|
||||
var target = get_parent().get_node(str(th.id))
|
||||
var target = get_parent().get_node_or_null(str(th.id))
|
||||
if not target:
|
||||
return
|
||||
var new_position = lonlat_to_world(th.lon, th.lat)
|
||||
|
||||
@@ -190,14 +190,14 @@ func _on_control_prd_pressed() -> void:
|
||||
# Показываем прогресс бар
|
||||
$pribor_uf/control_progress.visible = true
|
||||
$pribor_uf/control_progress.value = 0
|
||||
|
||||
|
||||
# Создаем твин для анимации с плавным началом и концом
|
||||
var tween = create_tween()
|
||||
tween.tween_property($pribor_uf/control_progress, \"value\", 100, 2.0)\\
|
||||
.set_trans(Tween.TRANS_SINE)\\
|
||||
.set_ease(Tween.EASE_IN_OUT)
|
||||
|
||||
tween.tween_callback(func():
|
||||
|
||||
tween.tween_callback(func():
|
||||
$pribor_uf/control_progress.visible = false
|
||||
$pribor_uf.state = uf_control.serviceability_uf
|
||||
)
|
||||
|
||||
@@ -105,7 +105,7 @@ var SIGNALS_CONNECTIONS = [
|
||||
[signaller, 'interfer_prinuditelno', 'on_interfer_prinuditelno'],
|
||||
[signaller, 'interfer_selected', 'on_interfer_selected'],
|
||||
[signaller, 'map_user_panning', 'on_user_panning'],
|
||||
[signaller, 'on_prog_ecm_off', 'on_interfer_new'],
|
||||
[signaller, 'prog_ecm_off', 'on_interfer_new'],
|
||||
[signaller, 'rto_threat_sel', 'on_rto_threat_sel'],
|
||||
[signaller, 'rto_threat_unsel', 'on_rto_threat_unsel'],
|
||||
[signaller, 'sector_klaster', 'sector_klaster'],
|
||||
@@ -233,12 +233,23 @@ func connect_all() -> void:
|
||||
else:
|
||||
var ers = error_string(rc)
|
||||
push_error('%s: %s %s %s' % [ers, item[0], item[1], item[2]])
|
||||
signaller.emit_signal('connect_work_signal')
|
||||
for th in thrs_dict.values():
|
||||
var bip = Bip.instantiate()
|
||||
bip.name = '%d' % th.id
|
||||
map_threat_to_bip(th, bip)
|
||||
add_child(bip)
|
||||
var bips: Array = get_children().filter(func(item): return item.name.is_valid_int())
|
||||
|
||||
|
||||
func disconnect_all() -> void:
|
||||
for item in signal_conections:
|
||||
item[0].disconnect(item[1], item[2])
|
||||
signal_conections.clear()
|
||||
var bips: Array = get_children().filter(func(item): return item.name.is_valid_int())
|
||||
for bip in bips:
|
||||
remove_child(bip)
|
||||
bip.free()
|
||||
|
||||
|
||||
func sector_klaster(sector_data):
|
||||
@@ -302,6 +313,7 @@ func map_threat_to_bip(th: threats.Threat, bip: Control) -> bool:
|
||||
|
||||
## Обработчик сигнала обновления цели.
|
||||
func on_threat_update(th: threats.Threat):
|
||||
var bips: Array = get_children().filter(func(item): return item.name.is_valid_int())
|
||||
var bip = get_node('%d' % th.id)
|
||||
bip.update(th.tick_rx)
|
||||
if th.gos:
|
||||
|
||||
@@ -353,7 +353,7 @@ func map_msvk_to_ecms(unit_instance: unit.Unit, ecms: Dictionary):
|
||||
for ecm in ecms.values():
|
||||
if (ecm.ispp not in ispp_arr) and (ecm.krp == INTERFER_OFF):
|
||||
var sz = ecms.size()
|
||||
signaller.emit_signal('on_prog_ecm_off', ecm)
|
||||
signaller.emit_signal('prog_ecm_off', ecm)
|
||||
ecms.erase(ecm.ispp)
|
||||
thrs.erase(ecm.ispp)
|
||||
cu.erase(ecm.ispp)
|
||||
@@ -660,7 +660,7 @@ func on_interfer_off(ecm: Interfer, ecms, unit_caps):
|
||||
send_ecm(ecm, unit_caps)
|
||||
if not unit_caps.online:
|
||||
var sz = ecms.size()
|
||||
signaller.emit_signal('on_prog_ecm_off', ecm)
|
||||
signaller.emit_signal('prog_ecm_off', ecm)
|
||||
ecms.erase(ecm.ispp)
|
||||
thrs.erase(ecm.ispp)
|
||||
cu.erase(ecm.ispp)
|
||||
|
||||
@@ -227,4 +227,8 @@ signal start_contol_device()
|
||||
|
||||
## Вызывается при программном отключении помехи.[br]
|
||||
## [param ecm] - выключаемая помеха ([b]true[/b]
|
||||
signal on_prog_ecm_off(ecm: interfer.Interfer)
|
||||
signal prog_ecm_off(ecm: interfer.Interfer)
|
||||
|
||||
|
||||
## Вызывается при подключении обработчиков в режиме работа.[br]
|
||||
signal connect_work_signal()
|
||||
|
||||
@@ -71,6 +71,7 @@ func _ready() -> void:
|
||||
signaller.connect('rto_threat_unsel_all', Callable(self, 'on_rto_threat_unsel_all').bind(threats))
|
||||
signaller.connect('threat_selected', Callable(self, 'on_threat_selected').bind(threats))
|
||||
signaller.connect('interfer_init', Callable(self, 'on_interfer_init').bind(threats))
|
||||
signaller.connect('connect_work_signal', Callable(self, 'on_connect_work_signal').bind(threats))
|
||||
|
||||
ProjectSettings.connect('settings_changed', on_settings_changed.bind(threats))
|
||||
|
||||
@@ -166,7 +167,7 @@ func on_data_capsrpb_received(unit: capsrpb.CapsRpb, threats: Dictionary):
|
||||
call_deferred('emit_signal', 'threats_resized', threats)
|
||||
|
||||
|
||||
func on_settings_changed(ths):
|
||||
func on_settings_changed(ths: Dictionary):
|
||||
gos_flag = ProjectSettings.get_setting('application/config/Включить работу по своим целям', true)
|
||||
var protocols: String = ProjectSettings.get_setting('application/config/Список своих протоколов', '')
|
||||
gos_protocols = protocols.split(",", true)
|
||||
@@ -180,3 +181,7 @@ func set_gos(th: Threat):
|
||||
th.gos = false
|
||||
elif (th.proto in gos_protocols) and th.fflags.proto:
|
||||
th.gos = true
|
||||
|
||||
|
||||
func on_connect_work_signal(ths: Dictionary):
|
||||
emit_signal('threats_resized', ths)
|
||||
|
||||
Reference in New Issue
Block a user