From f34984872ef8e97e09a8f28925662977c334fd5d Mon Sep 17 00:00:00 2001
From: TotMaxim
Date: Tue, 9 Dec 2025 19:42:49 +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=BF=D1=80=D0=BE=D0=B3=D1=80=D0=B5=D1=81=D1=81?=
=?UTF-8?q?=20=D0=B1=D0=B0=D1=80=D0=B0=20=D0=B4=D0=BB=D1=8F=20=D0=A3=D0=A4?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
scenes/tabs-switch/tab-switch.tscn | 19 +++-----
scenes/контроль/контроль.tscn | 72 +++++++++++++++++++++++-------
scenes/работа/работа.gd | 10 ++++-
scenes/работа/работа.tscn | 1 -
4 files changed, 71 insertions(+), 31 deletions(-)
diff --git a/scenes/tabs-switch/tab-switch.tscn b/scenes/tabs-switch/tab-switch.tscn
index 1c958ecf..110a4fdb 100644
--- a/scenes/tabs-switch/tab-switch.tscn
+++ b/scenes/tabs-switch/tab-switch.tscn
@@ -1,4 +1,4 @@
-[gd_scene load_steps=20 format=3 uid="uid://3slb0i3pvowc"]
+[gd_scene load_steps=19 format=3 uid="uid://3slb0i3pvowc"]
[ext_resource type="Script" uid="uid://bvo6tcreqyuex" path="res://scenes/tabs-switch/tab-switch.gd" id="1_fg0vd"]
[ext_resource type="PackedScene" uid="uid://b276iygic5itk" path="res://scenes/работа/работа.tscn" id="2_u7p16"]
@@ -22,16 +22,13 @@
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_o1r22"]
-[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_nmdfd"]
-bg_color = Color(0.061, 100, 0.051, 1)
-
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_cw2ss"]
-bg_color = Color(0.473976, 0.473976, 0.473976, 1)
+bg_color = Color(0.47451, 0.47451, 0.47451, 1)
+
+[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_nmdfd"]
+bg_color = Color(0, 100, 0, 1)
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_41d34"]
-bg_color = Color(0.39, 100, 0.327, 1)
-
-[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_imu1q"]
[node name="panel" type="Panel"]
offset_right = 1600.0
@@ -100,12 +97,10 @@ offset_bottom = 27.0
tooltip_text = "Задействовать режим Тренаж"
focus_mode = 0
theme_override_colors/font_hover_pressed_color = Color(0, 0, 0, 1)
-theme_override_colors/font_color = Color(0, 0, 0, 1)
theme_override_colors/font_pressed_color = Color(0, 0, 0, 1)
-theme_override_styles/hover_pressed = SubResource("StyleBoxFlat_nmdfd")
theme_override_styles/hover = SubResource("StyleBoxFlat_cw2ss")
-theme_override_styles/pressed = SubResource("StyleBoxFlat_41d34")
-theme_override_styles/normal = SubResource("StyleBoxFlat_imu1q")
+theme_override_styles/pressed = SubResource("StyleBoxFlat_nmdfd")
+theme_override_styles/normal = SubResource("StyleBoxFlat_41d34")
toggle_mode = true
text = "Тренаж"
script = ExtResource("9_41d34")
diff --git a/scenes/контроль/контроль.tscn b/scenes/контроль/контроль.tscn
index 56f9ec6f..fa22a302 100644
--- a/scenes/контроль/контроль.tscn
+++ b/scenes/контроль/контроль.tscn
@@ -122,7 +122,7 @@ func _ready():
signaller.conn(signaller.режим_журнал, on_mode_changed)
signaller.conn(signaller.режим_настройки, on_mode_changed)
signaller.conn(signaller.режим_эмс, on_mode_changed)
- signaller.connect('debag_control_pressed', Callable(self, 'on_control_button_pressed'))
+ signaller.connect('debag_control_pressed', Callable(self, 'on_debag_button_pressed'))
func online_change_arr(_u, conn_node, pribor_meta):
@@ -187,8 +187,36 @@ func _on_control_prd_pressed() -> void:
for pribor in get_tree().get_nodes_in_group('pribor_buttons'):
pribor.state = 0 # NONE
signaller.emit_signal('start_contol_device')
+ # Показываем прогресс бар
+ $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():
+ $pribor_uf/control_progress.visible = false
+ $pribor_uf.state = uf_control.serviceability_uf
+ )
+func on_debag_button_pressed(state: bool) -> void:
+ ctl_btn_state = state
+ update_pribor_items_visibility()
+
+
+func update_pribor_items_visibility():
+ var pribor_items = get_tree().get_nodes_in_group('pribor_items')
+ for pribor in pribor_items:
+ for child_name in ['input_0', 'output_0', 'input_1', 'output_1', 'input_2', 'output_2']:
+ if pribor.has_node(child_name):
+ pribor.get_node(child_name).visible = ctl_btn_state
+
+
+#region Управление прогресс барами в контроле
func on_update_progress(value_progress: float, pribor_node: Node) -> void:
pribor_node.progress_value = value_progress
pribor_node.progress_visible = value_progress > 0
@@ -196,6 +224,7 @@ func on_update_progress(value_progress: float, pribor_node: Node) -> void:
func on_update_max_value_progress(max_value_progress: int, pribor_node: Node) -> void:
pribor_node.progress_max_value = max_value_progress
+#endregion
func on_control_is_over(pribor_name: String) -> void:
@@ -224,19 +253,6 @@ func _on_gui_input(event: InputEvent) -> void:
cur_pribor_node = null
$frame_button/chk_show_functional.button_pressed = false
$frame_button/chk_show_functional.disabled = true
-
-
-func on_control_button_pressed(state: bool) -> void:
- ctl_btn_state = state
- update_pribor_items_visibility()
-
-
-func update_pribor_items_visibility():
- var pribor_items = get_tree().get_nodes_in_group('pribor_items')
- for pribor in pribor_items:
- for child_name in ['input_0', 'output_0', 'input_1', 'output_1', 'input_2', 'output_2']:
- if pribor.has_node(child_name):
- pribor.get_node(child_name).visible = ctl_btn_state
"
[sub_resource type="SpriteFrames" id="SpriteFrames_foasq"]
@@ -265,6 +281,7 @@ border_width_left = 2
border_width_top = 2
border_width_right = 2
border_width_bottom = 2
+border_color = Color(0.6, 0.6, 0.6, 1)
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_l5wui"]
bg_color = Color(0.47451, 0.47451, 0.47451, 1)
@@ -616,6 +633,28 @@ offset_bottom = 311.0
scale = Vector2(0.789429, 0.789429)
texture = ExtResource("11_gjf0t")
+[node name="control_progress" type="TextureProgressBar" parent="pribor_uf"]
+visible = false
+offset_left = 9.0
+offset_top = 191.0
+offset_right = 102.0
+offset_bottom = 201.0
+size_flags_horizontal = 3
+size_flags_vertical = 3
+tooltip_text = "
+Текущее: 0.00"
+mouse_filter = 0
+max_value = 30.0
+nine_patch_stretch = true
+stretch_margin_left = 5
+stretch_margin_top = 5
+stretch_margin_right = 5
+stretch_margin_bottom = 5
+texture_under = ExtResource("9_w6m6a")
+texture_progress = ExtResource("10_lbx5w")
+tint_under = Color(1, 1, 1, 0.419608)
+tint_progress = Color(0.890196, 0.486275, 0.196078, 1)
+
[node name="pribor_rtr" type="TextureButton" parent="." groups=["pribor_buttons"]]
editor_description = "Кнопка для выбора прибора."
layout_mode = 0
@@ -1938,9 +1977,9 @@ vertical_alignment = 1
[node name="frame_button" type="Panel" parent="."]
layout_mode = 0
offset_left = 1040.0
-offset_top = 12.0
+offset_top = 16.0
offset_right = 1416.0
-offset_bottom = 52.0
+offset_bottom = 56.0
theme_override_styles/panel = SubResource("StyleBoxFlat_6hcgs")
[node name="chk_show_functional" type="CheckButton" parent="frame_button"]
@@ -1954,6 +1993,7 @@ theme_override_font_sizes/font_size = 22
disabled = true
text = "Функциональная схема Э2"
flat = true
+alignment = 1
[node name="connect_legend0" type="AnimatedSprite2D" parent="."]
light_mask = 3
diff --git a/scenes/работа/работа.gd b/scenes/работа/работа.gd
index 527ed7db..a26110b3 100644
--- a/scenes/работа/работа.gd
+++ b/scenes/работа/работа.gd
@@ -149,8 +149,14 @@ func on_settings_changed():
color_emit_sel *= Color(1.0, 1.0, 1.0, 0.2)
color_closed *= Color(1.0, 1.0, 1.0, 0.0)
color_closed_emit *= Color(1.0, 1.0, 1.0, 1.0)
-
- col_btn_act = ProjectSettings.get_setting('application/config/%s' % 'Цвет кнопки \"Подавление\"', Color.WHITE)
+ var act_value = ProjectSettings.get_setting('application/config/%s' % 'Цвет кнопки \"Подавление\"', Color.WHITE)
+ if act_value is Array and act_value.size() >= 4:
+ col_btn_act = Color(act_value[0], act_value[1], act_value[2], act_value[3])
+ elif act_value is Color:
+ col_btn_act = act_value
+ else:
+ col_btn_act = Color.WHITE # значение по умолчанию
+ push_warning("Некорректный тип цвета: %s" % str(act_value))
## Обработчик сигнала изменения списка целей.
diff --git a/scenes/работа/работа.tscn b/scenes/работа/работа.tscn
index 368e95d4..c8fd4dff 100644
--- a/scenes/работа/работа.tscn
+++ b/scenes/работа/работа.tscn
@@ -380,7 +380,6 @@ texture_normal = ExtResource("14_ggrwd")
[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_center" to="." method="on_btn_center_toggled"]
[connection signal="button_down" from="zoom_plus" to="tilemap" method="_on_zoom_plus_button_down"]