Files
seeding-planets/gui/pause/scripts/pause.gd
2026-06-26 17:53:28 +02:00

69 lines
1.6 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
if not p:
GameInfo.save_settings()
func _input(_event):
if Input.is_action_just_pressed("pause"):
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