46 lines
1.0 KiB
GDScript
46 lines
1.0 KiB
GDScript
extends CanvasLayer
|
|
|
|
@onready var pause_menu = $Control
|
|
|
|
func _ready() -> void:
|
|
_register_focus_sounds()
|
|
|
|
func _input(event):
|
|
if event.is_action_pressed("ui_cancel"):
|
|
if get_tree().paused:
|
|
resume_game()
|
|
else:
|
|
pause_game()
|
|
|
|
func pause_game():
|
|
get_tree().paused = true
|
|
visible = true
|
|
|
|
func resume_game():
|
|
get_tree().paused = false
|
|
visible = false
|
|
|
|
func _on_quit_button_pressed():
|
|
get_tree().quit()
|
|
|
|
func _on_continue_button_pressed():
|
|
resume_game()
|
|
|
|
func _register_focus_sounds() -> void:
|
|
if pause_menu == null:
|
|
return
|
|
var vbox := pause_menu.get_node_or_null("VBoxContainer")
|
|
if vbox == null:
|
|
return
|
|
for child in vbox.get_children():
|
|
if child is BaseButton:
|
|
var button: BaseButton = child
|
|
if not button.is_connected("focus_entered", Callable(self, "_on_menu_item_focus")):
|
|
button.focus_entered.connect(_on_menu_item_focus)
|
|
if not button.is_connected("mouse_entered", Callable(self, "_on_menu_item_focus")):
|
|
button.mouse_entered.connect(_on_menu_item_focus)
|
|
|
|
func _on_menu_item_focus() -> void:
|
|
if MenuSfx:
|
|
MenuSfx.play_hover()
|