You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
83 lines
1.9 KiB
83 lines
1.9 KiB
namespace CMSGame
|
|
{
|
|
public partial class BattleScene : Node3D
|
|
{
|
|
public BattleHUD? HUD;
|
|
|
|
public Popup? PauseMenuPopup;
|
|
|
|
public Popup? SettingsMenuPopup;
|
|
|
|
public double Time;
|
|
|
|
public bool IsPause = false;
|
|
|
|
private bool IsPauseBeforePauseMenuPopup = false;
|
|
|
|
public override void _Ready()
|
|
{
|
|
this.GetUniqueNode(ref HUD, nameof(HUD));
|
|
PauseMenuPopup = HUD!.PauseMenuPopup;
|
|
SettingsMenuPopup = HUD.SettingsMenuPopup;
|
|
}
|
|
|
|
public override void _Process(double delta)
|
|
{
|
|
if (!IsPause)
|
|
{
|
|
Time += delta;
|
|
}
|
|
UpdateUI();
|
|
}
|
|
|
|
public override void _UnhandledInput(InputEvent input)
|
|
{
|
|
if (input.IsActionPressed("battle_pause_toggle"))
|
|
{
|
|
TogglePauseBattle();
|
|
}
|
|
else if (input.IsActionPressed("battle_pause"))
|
|
{
|
|
ShowPauseMenu();
|
|
}
|
|
}
|
|
|
|
public void UpdateUI()
|
|
{
|
|
HUD!.BattleTimeLabel!.Text = TimeHelper.FormatTime(Time);
|
|
}
|
|
|
|
private void TogglePauseBattle()
|
|
{
|
|
IsPause = !IsPause;
|
|
}
|
|
|
|
private void ShowPauseMenu()
|
|
{
|
|
IsPauseBeforePauseMenuPopup = IsPause;
|
|
IsPause = true;
|
|
PauseMenuPopup!.PopupCentered();
|
|
}
|
|
|
|
private void On_PauseBattleButton_Pressed()
|
|
{
|
|
TogglePauseBattle();
|
|
}
|
|
|
|
private void On_PauseMenuPopup_PopupHide()
|
|
{
|
|
IsPause = IsPauseBeforePauseMenuPopup;
|
|
}
|
|
|
|
private void On_ResumeBattleButton_Pressed()
|
|
{
|
|
PauseMenuPopup!.Hide();
|
|
}
|
|
|
|
private void On_SettingsMenuButton_Pressed()
|
|
{
|
|
SettingsMenuPopup!.PopupCentered();
|
|
}
|
|
}
|
|
}
|