extends CanvasLayer var pause = false: set = set_pause var mouse_mode_before_pause: Input.MouseMode func _ready(): hide() Dialogic.timeline_ended.connect(_on_timeline_ended) func set_pause(p): if p != pause: if p: %AnimationPlayer.play("pause") else: %AnimationPlayer.play_backwards("pause") pause = p get_tree().paused = pause %Settings.close_settings() %Controls.close_controls() if p: mouse_mode_before_pause = Input.mouse_mode Input.mouse_mode = Input.MOUSE_MODE_VISIBLE else: Input.mouse_mode = mouse_mode_before_pause if p: %GiveUp.visible = (GameInfo.game_data and GameInfo.game_data.current_region_data and SceneManager.actual_scene and SceneManager.actual_scene.can_abandon()) %TitleScreen.visible = not (SceneManager.actual_scene and SceneManager.actual_scene.get_scene_id() == "TITLE") if not p: GameInfo.save_settings() func _input(_event): if ((not SceneManager.actual_scene or SceneManager.actual_scene.get_scene_id() != "TITLE") and Input.is_action_just_pressed("pause") and not %Settings.is_visible_in_tree() and not %Controls.is_visible_in_tree() ): pause = not pause func _on_timeline_ended(): if SceneManager.actual_scene and SceneManager.actual_scene.mouse_captured: Input.mouse_mode = Input.MOUSE_MODE_CAPTURED func _on_resume_pressed(): pause = false func _on_quit_pressed(): get_tree().quit() func _on_game_gui_pause_asked(): pause = true func _on_settings_pressed(): open_settings() func open_settings(): %Settings.open_settings() func _on_controls_pressed(): open_controls() func open_controls(): %Controls.open_controls() func _on_give_up_pressed(): if GameInfo.game_data: GameInfo.game_data.give_up() pause = false func _on_title_screen_pressed(): SceneManager.change_to_scene(TitleScene.new()) pause = false