From 50e7222b5788fa6c9e0d5ee9f499b7f61d1d758d Mon Sep 17 00:00:00 2001 From: MaD_CaT Date: Fri, 26 Sep 2025 14:44:34 +0300 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D1=80=D0=B0=D0=B1=D0=BE=D1=82?= =?UTF-8?q?=D0=BA=D0=B0.=20=D0=9F=D0=B5=D1=80=D0=B5=D0=B4=D0=B5=D0=BB?= =?UTF-8?q?=D0=B0=D0=BD=20=D0=BC=D0=B5=D1=85=D0=B0=D0=BD=D0=B8=D0=B7=D0=BC?= =?UTF-8?q?=20=D0=BE=D1=82=D0=BA=D0=BB=D1=8E=D1=87=D0=B5=D0=BD=D0=B8=D1=8F?= =?UTF-8?q?=20=D0=BF=D0=BE=D0=BC=D0=B5=D1=85=D0=B8,=20=D0=B4=D0=BB=D1=8F?= =?UTF-8?q?=20=D0=B5=D1=91=20=D0=BE=D1=82=D0=BA=D0=BB=D1=8E=D1=87=D0=B5?= =?UTF-8?q?=D0=BD=D0=B8=D1=8F=20=D0=BD=D0=B0=D0=B4=D0=BE=20=D0=BE=D1=82?= =?UTF-8?q?=D0=BF=D1=80=D0=B0=D0=B2=D0=B8=D1=82=D1=8C=20=D1=82=D0=BE=D0=BB?= =?UTF-8?q?=D1=8C=D0=BA=D0=BE=20=D1=81=D0=B0=D0=BC=D1=83=20=D0=BF=D0=BE?= =?UTF-8?q?=D0=BC=D0=B5=D1=85=D1=83.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- scenes/frame-ecm-list/scroll-ecm-list.gd | 10 +--------- scenes/журнал/журнал.gd | 2 +- scenes/работа/работа.gd | 7 ------- scripts/interfer.gd | 19 +++++++++++++++---- scripts/signaller.gd | 2 +- 5 files changed, 18 insertions(+), 22 deletions(-) diff --git a/scenes/frame-ecm-list/scroll-ecm-list.gd b/scenes/frame-ecm-list/scroll-ecm-list.gd index cbfb7a8..eb3beee 100644 --- a/scenes/frame-ecm-list/scroll-ecm-list.gd +++ b/scenes/frame-ecm-list/scroll-ecm-list.gd @@ -122,21 +122,13 @@ func on_interfer_new(ecm, table_index): signaller.emit_signal('interfer_selected', ecm) -func on_interfer_off(ecm, ecms, thrs, table_index): - var sz = ecms.size() +func on_interfer_off(ecm, table_index): $table.remove_row(table_index[ecm.ispp]) rehash(table_index) - ecms.erase(ecm.ispp) - thrs.erase(ecm.ispp) - interfer.cu.erase(ecm.ispp) - interfer.fs.erase(ecm.ispp) - interfer.push_id(ecm.ispp) var sel_rows: Array $table.get_selected_rows(sel_rows) if not len(sel_rows): signaller.emit_signal('interfer_selected', null) - if sz != ecms.size(): - interfer.call_deferred('emit_signal', 'interfer_resized', ecms) ## Перестраивает индекс таблицы. Вызывать при удалении строки diff --git a/scenes/журнал/журнал.gd b/scenes/журнал/журнал.gd index dc5ab85..401ad0d 100644 --- a/scenes/журнал/журнал.gd +++ b/scenes/журнал/журнал.gd @@ -5,7 +5,7 @@ func on_line_changed(unit_inst): log.message(Logger.INFO, '\"%s\" изменен func on_command_fail(unit_inst): log.message(Logger.ERROR, '\"%s\" команда не выполнена' % unit_inst.name) func on_threats_changed(th: Object, msg: String): log.message(Logger.INFO, '%s: %s' % [msg, th.to_string()]) func on_parse_error(unit_inst, msg: String): log.message(Logger.ERROR, '%s: %s' % [unit_inst.name, msg]) -func on_interfer_off(ecm, _ecms, _thrs,msg: String): log.message(Logger.INFO, '%s: %s' % [msg, ecm.to_string()]) +func on_interfer_off(ecm, msg: String): log.message(Logger.INFO, '%s: %s' % [msg, ecm.to_string()]) func on_set_program_mode(msg: String): log.message(Logger.INFO, msg) func on_interfer_new(ecm, msg: String): diff --git a/scenes/работа/работа.gd b/scenes/работа/работа.gd index 242edf4..9f46f22 100644 --- a/scenes/работа/работа.gd +++ b/scenes/работа/работа.gd @@ -229,13 +229,6 @@ func on_interfer_off_all(): update_fs_colors() -func on_interfer_off(ecm_id): - fs_active.erase(ecm_id) - fs_selected.erase(ecm_id) - fs_active.clear() - update_fs_colors() - - ## Обработчик сигнала обнаружения цели. func on_threat_new(th) -> void: var bip = Bip.instantiate() diff --git a/scripts/interfer.gd b/scripts/interfer.gd index d45c5f6..37cd4b8 100644 --- a/scripts/interfer.gd +++ b/scripts/interfer.gd @@ -180,7 +180,7 @@ func _ready() -> void: signaller.connect('interfer_new', Callable(self, 'send_ecm').bind(unit_caps)) signaller.connect('interfer_off_all', Callable(self, 'on_interfer_off_all').bind(unit_caps, ecms)) signaller.connect('th_aoa_update', Callable(self, 'on_th_aoa_update').bind(ecms, unit_caps)) - signaller.connect('interfer_off', Callable(self, 'on_interfer_off')) + signaller.connect('interfer_off', Callable(self, 'on_interfer_off').bind(ecms)) signaller.connect('manual_control', Callable(self, 'on_manual_control')) signaller.connect('full_auto', Callable(self, 'on_full_auto')) signaller.connect('interfer_prinuditelno', Callable(self, 'on_interfer_prinuditelno')) @@ -391,7 +391,7 @@ func interfer_create(u, interfer_name, ecms, param, kni, id, dict, source_interf log.error('Ошибка выбора модуля ФС для помехи: %s' %[ecm.ispp]) signaller.emit_signal('interfer_new', ecm) if interfer_name == 'off': - signaller.emit_signal('interfer_off', ecm, ecms, thrs) + signaller.emit_signal('interfer_off', ecm) thrs.erase(ispp) ecm.tick_tx = Time.get_ticks_msec() send_ecm(ecm, u) @@ -414,7 +414,7 @@ func on_interfer_off_all(unit0, ecms: Dictionary) -> void: for ecm in ecms.values(): ecm.krp = INTERFER_OFF send_ecm(ecm, unit0) - signaller.emit_signal('interfer_off', ecm, ecms, thrs) + signaller.emit_signal('interfer_off', ecm) func on_threats_lost(th, ecms, unit0) -> void: @@ -424,7 +424,7 @@ func on_threats_lost(th, ecms, unit0) -> void: var ecm = ecms[ecm_id] ecm.krp = INTERFER_OFF send_ecm(ecm, unit0) - signaller.emit_signal('interfer_off', ecm, ecms, thrs) + signaller.emit_signal('interfer_off', ecm) func pop_id() -> int: @@ -596,3 +596,14 @@ func get_krp(threat: threats.Threat): krp = key return krp return krp + + +func on_interfer_off(ecm: Interfer, ecms): + var sz = ecms.size() + ecms.erase(ecm.ispp) + thrs.erase(ecm.ispp) + interfer.cu.erase(ecm.ispp) + interfer.fs.erase(ecm.ispp) + interfer.push_id(ecm.ispp) + if sz != ecms.size(): + interfer.call_deferred('emit_signal', 'interfer_resized', ecms) diff --git a/scripts/signaller.gd b/scripts/signaller.gd index d96201f..9e2a7c3 100644 --- a/scripts/signaller.gd +++ b/scripts/signaller.gd @@ -107,7 +107,7 @@ signal interfer_new(ecm: interfer.Interfer) ## [param ecm] - Новая помеха.[br] ## [param ecms] - словарь помех.[br] ## [param thrs] - словарь id помех и связанных с ними целей.[br] -signal interfer_off(ecm: interfer.Interfer, ecms: Dictionary, thrs: Dictionary) +signal interfer_off(ecm: interfer.Interfer) ## Вызывается при нажатии отключить.