2025-02-19 15:45:21 +01:00
|
|
|
|
using Godot;
|
|
|
|
|
|
|
|
|
|
|
|
namespace Cirno.Scripts.UI;
|
|
|
|
|
|
|
|
|
|
|
|
public partial class PauseMenu : Control
|
|
|
|
|
|
{
|
2025-03-01 20:50:47 +01:00
|
|
|
|
[Export]
|
2025-03-12 15:54:00 +01:00
|
|
|
|
public StringName PauseActionName = "pause";
|
2025-03-01 20:50:47 +01:00
|
|
|
|
|
2025-02-19 15:45:21 +01:00
|
|
|
|
[ExportGroup("Scenes")]
|
|
|
|
|
|
[Export]
|
|
|
|
|
|
public string MainMenuScene { get; private set; }
|
|
|
|
|
|
|
|
|
|
|
|
[ExportGroup("Buttons")]
|
|
|
|
|
|
[Export]
|
|
|
|
|
|
public Button ResumeButton { get; private set; }
|
2025-03-01 20:50:47 +01:00
|
|
|
|
|
2025-02-19 15:45:21 +01:00
|
|
|
|
[Export]
|
|
|
|
|
|
public Button QuitButton { get; private set; }
|
2025-03-01 20:50:47 +01:00
|
|
|
|
|
2025-02-19 15:45:21 +01:00
|
|
|
|
[Export]
|
|
|
|
|
|
public Button OptionsButton { get; private set; }
|
2025-03-01 20:50:47 +01:00
|
|
|
|
|
2025-02-19 15:45:21 +01:00
|
|
|
|
[Export]
|
|
|
|
|
|
public Button DebugButton { get; private set; }
|
|
|
|
|
|
|
|
|
|
|
|
private GameManager _gameManager;
|
|
|
|
|
|
|
|
|
|
|
|
[Signal]
|
|
|
|
|
|
public delegate void SpawnDebugMenuEventHandler();
|
|
|
|
|
|
|
|
|
|
|
|
public override void _Ready()
|
|
|
|
|
|
{
|
2025-02-24 10:58:00 +01:00
|
|
|
|
//_gameManager = GetNode<GameManager>("/root/GameScene");
|
|
|
|
|
|
_gameManager = GameManager.Instance;
|
2025-02-19 15:45:21 +01:00
|
|
|
|
|
|
|
|
|
|
ResumeButton.Pressed += ResumeButtonOnPressed;
|
|
|
|
|
|
QuitButton.Pressed += QuitButtonOnPressed;
|
|
|
|
|
|
DebugButton.Pressed += DebugButtonOnPressed;
|
2025-03-12 15:54:00 +01:00
|
|
|
|
|
|
|
|
|
|
ResumeButton.GrabFocus();
|
2025-02-19 15:45:21 +01:00
|
|
|
|
}
|
|
|
|
|
|
|
2025-03-01 20:50:47 +01:00
|
|
|
|
public override void _Process(double delta)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (_gameManager.GameState == GameState.Paused && Input.IsActionJustPressed(PauseActionName))
|
|
|
|
|
|
{
|
|
|
|
|
|
_gameManager.Unpause();
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2025-02-19 15:45:21 +01:00
|
|
|
|
private void DebugButtonOnPressed()
|
|
|
|
|
|
{
|
|
|
|
|
|
EmitSignal(SignalName.SpawnDebugMenu);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private void ResumeButtonOnPressed()
|
|
|
|
|
|
{
|
|
|
|
|
|
_gameManager.Unpause();
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private void QuitButtonOnPressed()
|
|
|
|
|
|
{
|
2025-02-24 10:58:00 +01:00
|
|
|
|
_gameManager.Unpause();
|
2025-02-21 12:09:42 +01:00
|
|
|
|
GlobalState.Instance.GotoScene(MainMenuScene);
|
|
|
|
|
|
//GetTree().ChangeSceneToFile(MainMenuScene);
|
2025-02-19 15:45:21 +01:00
|
|
|
|
}
|
|
|
|
|
|
}
|