76 lines
2.0 KiB
GDScript
76 lines
2.0 KiB
GDScript
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.get_scene_id() != "TITLE"
|
|
|
|
%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
|