extends CanvasLayer var _in_play := false func _ready(): process_mode = Node.PROCESS_MODE_ALWAYS visible = false EventBus.game_started.connect(func(): _in_play = true) EventBus.game_won.connect(func(): _in_play = false) EventBus.game_lost.connect(func(_reason: String): _in_play = false) $Center/Card/Margin/Column/Title.text = Strings.PAUSE_TITLE $Center/Card/Margin/Column/SpaceHint.text = Strings.PAUSE_SPACE_HINT $Center/Card/Margin/Column/RestartHint.text = Strings.PAUSE_R_HINT func _unhandled_input(event): if not _in_play: return if event is InputEventKey and event.pressed and not event.echo and event.keycode == KEY_ESCAPE: _toggle() get_viewport().set_input_as_handled() return if get_tree().paused and event is InputEventKey and event.pressed and not event.echo: if event.keycode == KEY_SPACE: _on_resume_pressed() get_viewport().set_input_as_handled() elif event.keycode == KEY_R: _on_restart_pressed() get_viewport().set_input_as_handled() func _toggle(): var paused := not get_tree().paused get_tree().paused = paused visible = paused func _on_resume_pressed(): get_tree().paused = false visible = false func _on_restart_pressed(): get_tree().paused = false get_tree().reload_current_scene()