diff --git a/scenes/работа/работа.tscn b/scenes/работа/работа.tscn index a166735..692683e 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 428e2e8..b207aa6 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)