From 5eb44fd20a2db24488a28f15e8d194e0bba2919b Mon Sep 17 00:00:00 2001
From: TotMaxim
Date: Sun, 23 Nov 2025 21:28:45 +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=BC=D0=B8=D0=BD=D0=B8=20=D0=B1=D0=B0=D1=80?=
=?UTF-8?q?=D0=BE=D0=B2?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
scripts/pribor-prd.gd | 49 +++++++++++++++++++++----------------------
1 file changed, 24 insertions(+), 25 deletions(-)
diff --git a/scripts/pribor-prd.gd b/scripts/pribor-prd.gd
index 5c2eb539..721641d5 100644
--- a/scripts/pribor-prd.gd
+++ b/scripts/pribor-prd.gd
@@ -127,6 +127,7 @@ var cc: int = 0
var cmd_array: Array
## Переменные для отслеживания прогресса
+var prog_back: float = 0.0
var total_fs_to_check: int = 0
var completed_fs_count: int = 0
var current_fs_progress: float = 0.0
@@ -450,7 +451,8 @@ func _handle_check_kasseta_state() -> void:
else:
_set_status('Перегрев УМ')
state = STATE_MACHINE.IN_EMS_STOP
- elif flag_only_fs:
+ else:
+ flag_only_fs = true
state = STATE_MACHINE.IN_EMS_STOP
@@ -640,25 +642,19 @@ func progressbar_status() -> void:
# Базовый прогресс в зависимости от состояния
match state:
- STATE_MACHINE.INIT:
- base_progress = PROGRESS_INIT
- STATE_MACHINE.FS_TURN_ON:
- base_progress = PROGRESS_FS_TURN_ON
- STATE_MACHINE.FS_WORK:
- base_progress = PROGRESS_FS_WORK
- STATE_MACHINE.CHEK_KASSETA_Y5:
- base_progress = PROGRESS_CHECK_KASSETA
- STATE_MACHINE.UG_SET_RAY_CTRL:
- base_progress = PROGRESS_WRITE_ISA
- STATE_MACHINE.READ_ISA:
- base_progress = PROGRESS_READ_ISA
- STATE_MACHINE.UG_SET_RAY:
- base_progress = PROGRESS_UG_SET_RAY
- STATE_MACHINE.UG_SET_RAY_0, STATE_MACHINE.UG_SET_RAY_1, STATE_MACHINE.UG_SET_RAY_2, \
- STATE_MACHINE.UG_SET_RAY_3, STATE_MACHINE.UG_SET_RAY_4, STATE_MACHINE.UG_SET_RAY_5:
- base_progress = PROGRESS_RAY_STATES
- STATE_MACHINE.IN_EMS_STOP, STATE_MACHINE.FS_TURN_OFF, STATE_MACHINE.STOP_CONTROL:
- base_progress = PROGRESS_COMPLETE
+ STATE_MACHINE.INIT: base_progress = PROGRESS_INIT
+ STATE_MACHINE.FS_TURN_ON: base_progress = PROGRESS_FS_TURN_ON
+ STATE_MACHINE.FS_WORK: base_progress = PROGRESS_FS_WORK
+ STATE_MACHINE.CHEK_KASSETA_Y5: base_progress = PROGRESS_CHECK_KASSETA
+ STATE_MACHINE.UG_SET_RAY_0: base_progress = PROGRESS_RAY_STATES
+ STATE_MACHINE.UG_SET_RAY_1: base_progress = PROGRESS_RAY_STATES + 5
+ STATE_MACHINE.UG_SET_RAY_2: base_progress = PROGRESS_RAY_STATES + 10
+ STATE_MACHINE.UG_SET_RAY_3: base_progress = PROGRESS_RAY_STATES + 15
+ STATE_MACHINE.UG_SET_RAY_4: base_progress = PROGRESS_RAY_STATES + 20
+ STATE_MACHINE.UG_SET_RAY_5: base_progress = PROGRESS_RAY_STATES + 25
+ STATE_MACHINE.IN_EMS_STOP: base_progress = PROGRESS_COMPLETE
+ STATE_MACHINE.FS_TURN_OFF: base_progress = PROGRESS_COMPLETE
+ STATE_MACHINE.STOP_CONTROL: base_progress = PROGRESS_COMPLETE
# Плавное заполнение во время ожидания таймера
if control_timer.time_left > 0 and state != STATE_MACHINE.STOP_CONTROL:
@@ -678,11 +674,15 @@ func progressbar_status() -> void:
if total_fs_to_check > 0:
var progress_per_fs = (PROGRESS_COMPLETE - PROGRESS_INIT) / total_fs_to_check
var fs_base_progress = completed_fs_count * progress_per_fs
- progress_value = fs_base_progress + (base_progress * progress_per_fs / PROGRESS_COMPLETE)
+ prog_back = fs_base_progress + (base_progress * progress_per_fs / PROGRESS_COMPLETE)
else:
- progress_value = base_progress
+ prog_back = base_progress
- progress_value = clamp(progress_value, 0.0, PROGRESS_COMPLETE)
+ if control_timer.time_left > 0 and not control_timer.is_stopped():
+ prog_back += (control_timer.wait_time - control_timer.time_left) + 10
+
+ prog_back = progress_value if progress_value > prog_back else prog_back
+ progress_value = clamp(progress_value, prog_back, PROGRESS_COMPLETE)
## Установка нового статуса с emit сигнала
@@ -728,8 +728,6 @@ func on_stop_control() -> void:
if state == STATE_MACHINE.UG_SET_RAY:
flag_no_trust_yau07 = true
- elif state == STATE_MACHINE.CHEK_KASSETA_Y5:
- flag_only_fs = true
state = STATE_MACHINE.IN_EMS_STOP
#endregion
@@ -780,6 +778,7 @@ func _determine_self_name() -> void:
progress_value = 0
completed_fs_count = 0
current_fs_progress = 0.0
+ prog_back = 0
call_deferred('emit_signal', 'update_max_value_progress', 100)