newlon/scripts/gui/PauseMenu.cs
2025-07-20 22:11:23 +05:00

45 lines
1,013 B
C#

using Godot;
using Newlon;
using System;
public partial class PauseMenu : Control
{
private static PauseMenu Instance;
private bool previousPaused;
private bool currently_paused = false;
private AudioStream pauseSound = ResourceLoader.Load<AudioStream>("uid://ckja8ym50y0d4");
public override void _Ready()
{
Instance = this;
}
public void Continue()
{
GetParent<Control>().Visible = false;
GetTree().Paused = previousPaused;
currently_paused = false;
}
public void Restart()
{
GetTree().Paused = false;
LevelController.Instance.RestartLevel();
currently_paused = false;
}
public void Exit()
{
LevelController.Instance.EndLevel();
currently_paused = false;
}
public static void Pause()
{
if (Instance.currently_paused)
{
return;
}
Instance.GetParent<Control>().Visible = true;
Instance.previousPaused = Instance.GetTree().Paused;
Instance.GetTree().Paused = true;
Instance.currently_paused = true;
AudioSequencer.Play("pause",Instance.pauseSound);
}
}