cirnogodot/Scripts/UI/PauseMenu.cs

68 lines
1.6 KiB
C#
Raw Normal View History

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();
GlobalState.Instance.GotoScene(MainMenuScene);
//GetTree().ChangeSceneToFile(MainMenuScene);
2025-02-19 15:45:21 +01:00
}
}