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)