38 lines
2.1 KiB
GDScript
38 lines
2.1 KiB
GDScript
extends Control # Или CanvasLayer, смотря к какому узлу прикреплен скрипт
|
|
|
|
# Точный глубокий поиск твоей кнопки внутри дерева сцены
|
|
@onready var restart_button: Button = find_child("RestartButton", true, false)
|
|
|
|
func _ready() -> void:
|
|
# Принудительно зажигаем видимость всей панели в момент её спавна,
|
|
# чтобы она железно отрисовалась поверх игры!
|
|
visible = true
|
|
|
|
# Освобождаем мышь для клика
|
|
Input.set_mouse_mode(Input.MOUSE_MODE_VISIBLE)
|
|
|
|
# Подключаем клик по кнопке Начать заново
|
|
if restart_button:
|
|
restart_button.pressed.connect(_on_restart_button_pressed)
|
|
print("[СЦЕНА СМЕРТИ] Кнопка RestartButton успешно инициализирована и ждет клика.")
|
|
else:
|
|
print("[СЦЕНА СМЕРТИ] ОШИБКА: Не удалось найти кнопку RestartButton в дереве узлов!")
|
|
|
|
func _on_restart_button_pressed() -> void:
|
|
print("[СЦЕНА СМЕРТИ] Клик зафиксирован! Сбрасываю кэш и перезапускаю карту уровня...")
|
|
|
|
# Сбрасываем кэш здоровья в синглтоне переноса вещей обратно в 100 перед рестартом
|
|
var gt = get_node_or_null("/root/GameTransfer")
|
|
if gt and "saved_health" in gt:
|
|
gt.saved_health = 100.0
|
|
|
|
# --- САМОЛИКВИДАЦИЯ ЭКРАНА СМЕРТИ ИЗ ГЛОБАЛЬНОЙ ПАМЯТИ ---
|
|
# Прячем панель с экрана мгновенно, чтобы она не мозолила глаза при загрузке
|
|
visible = false
|
|
# Полностью и физически удаляем этот узел из корня игры, чтобы он исчез навсегда
|
|
queue_free()
|
|
# ---------------------------------------------------------
|
|
|
|
# Перезапускаем текущую сцену уровня шутера
|
|
get_tree().reload_current_scene()
|