Files
Dawn-Godot/ui/pause/PauseMenu.gd
T

52 lines
1.1 KiB
GDScript

class_name PauseMenu extends Control
signal opened
signal closed
@export var MAIN:PauseMain
@export var settingsPanel:PauseSettings
func _ready() -> void:
close()
MAIN.resumeRequested.connect(close)
MAIN.settingsRequested.connect(_openSettings)
UI.MAIN_MENU_DIALOG.confirmed.connect(_goToMainMenu)
func isOpen() -> bool:
return visible
func open() -> void:
visible = true
get_tree().paused = true
MAIN.open()
opened.emit()
func close() -> void:
get_tree().paused = false
visible = false
MAIN.close()
settingsPanel.close()
closed.emit()
func _openSettings() -> void:
MAIN.close()
settingsPanel.open()
func _goToMainMenu() -> void:
close()
SCENE.setScene(SceneSingleton.SceneType.INITIAL)
func _unhandled_input(event:InputEvent) -> void:
if !visible:
return
if !event.is_action_pressed("ui_cancel"):
return
if (UI.QUIT_DIALOG != null and UI.QUIT_DIALOG.isOpen) or (UI.MAIN_MENU_DIALOG != null and UI.MAIN_MENU_DIALOG.isOpen):
return
if settingsPanel.isOpen():
settingsPanel.close()
MAIN.open()
else:
close()
get_viewport().set_input_as_handled()