From 99e32fd985f7d6b20a7865427e8532f8d578cc74 Mon Sep 17 00:00:00 2001 From: lepshiy Date: Thu, 2 Oct 2025 12:04:08 +0300 Subject: [PATCH] =?UTF-8?q?=D0=A2=D1=80=D0=B0=D1=81=D1=81=D0=B0.=20=D0=9D?= =?UTF-8?q?=D0=B0=D0=B6=D0=B0=D1=82=D0=B8=D0=B5/=D0=BE=D1=82=D0=B6=D0=B0?= =?UTF-8?q?=D1=82=D0=B8=D0=B5=20=D0=BA=D0=BD=D0=BE=D0=BF=D0=BE=D0=BA=20?= =?UTF-8?q?=D0=B3=D1=80=D1=83=D0=BF=D0=BF=D1=8B=20=D0=BF=D1=80=D0=B8=D0=BD?= =?UTF-8?q?=D1=83=D0=B4=D0=B8=D1=82=D0=B5=D0=BB=D1=8C=D0=BD=D0=BE.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- scenes/работа/работа.tscn | 2 +- scripts/trassa.gd | 22 +++++++++++++++++++--- 2 files changed, 20 insertions(+), 4 deletions(-) diff --git a/scenes/работа/работа.tscn b/scenes/работа/работа.tscn index a1667359..692683ec 100644 --- a/scenes/работа/работа.tscn +++ b/scenes/работа/работа.tscn @@ -308,6 +308,6 @@ text = "Масштаб:" [connection signal="drag_continue" from="." to="." method="_on_drag_continue"] [connection signal="toggled" from="btn_view" to="." method="on_button_view_toggled"] [connection signal="toggled" from="chk_auto" to="." method="on_value_changed"] -[connection signal="toggled" from="btn_activate" to="." method="on_btn_activate"] [connection signal="toggled" from="btn_activate" to="." method="on_btn_activate_toggled"] +[connection signal="toggled" from="btn_activate" to="." method="on_btn_activate"] [connection signal="toggled" from="btn_center" to="." method="on_btn_center_toggled"] diff --git a/scripts/trassa.gd b/scripts/trassa.gd index 428e2e82..b207aa69 100644 --- a/scripts/trassa.gd +++ b/scripts/trassa.gd @@ -15,10 +15,13 @@ class Trassa extends unit.Unit: var ecms: Dictionary = {} # Словарь всех активных помех var srn = 0 var jtids = 0 - + var prinud_but: Array = [] + var forced_buttons: Array = [] # Храним ссылки на кнопки + # Инициализация - func _init(nm: StringName) -> void: + func _init(nm: StringName, buttons: Array = []) -> void: self.name = nm + self.forced_buttons = buttons tx_stack.resize(WORDS_TOTAL) tx_stack.fill(NOINFO) interfer.connect("interfer_resized", Callable(self, "on_interfer_resized")) @@ -124,9 +127,17 @@ class Trassa extends unit.Unit: # Обработка указаний от Трассы по кнопке - func btn_trassa_pressed() -> void: + func btn_trassa_pressed() -> void: var state = ProjectSettings.get_setting('application/config/Внешнее указание Трасса', false) if state == true: + var tree: SceneTree = Engine.get_main_loop() + if tree is SceneTree: + var nodes: Array = tree.get_nodes_in_group('группа-принудительно') + for btn in nodes: + if btn.name == 'btn_srn': + btn.pressed = (srn == 1) + elif btn.name == 'btn_jtids': + btn.pressed = (jtids == 1) if srn == 1: tx_stack[65] = 1 signaller.emit_signal('interfer_prinuditelno', frm_ecm_list.srn_sectors) @@ -147,3 +158,8 @@ class Trassa extends unit.Unit: ecm.krp = interfer.INTERFER_OFF interfer.send_ecm(ecm, unit_caps) signaller.emit_signal('interfer_off', ecm) + for ecm in ecms.values(): + if ecm.krp == "svi1" and ecm.svk == 1: + ecm.krp = interfer.INTERFER_OFF + interfer.send_ecm(ecm, unit_caps) + signaller.emit_signal('interfer_off', ecm)