Newer
Older
DungeonShooting / DungeonShooting_Godot / src / game / ui / pauseMenu / PauseMenuPanel.cs
@小李xl 小李xl on 20 Sep 2023 1 KB 制作暂停功能
using Godot;

namespace UI.PauseMenu;

public partial class PauseMenuPanel : PauseMenu
{

    public override void OnCreateUi()
    {
        S_Continue.Instance.Pressed += OnContinueClick;
        S_Restart.Instance.Pressed += OnRestartClick;
        S_Exit.Instance.Pressed += OnExitClick;
        
        if (GameApplication.Instance.DungeonManager.IsEditorMode) //在编辑器模式下打开的Ui
        {
            S_Exit.Instance.Text = "返回编辑器";
        }
    }

    public override void Process(float delta)
    {
        if (Input.IsActionJustPressed("ui_cancel")) //返回游戏
        {
            OnContinueClick();
        }
    }

    //继续游戏
    private void OnContinueClick()
    {
        GameApplication.Instance.World.Pause = false;
        GameApplication.Instance.Cursor.SetGuiMode(false);
        Destroy();
    }

    //重新开始
    private void OnRestartClick()
    {
        Destroy();
        if (GameApplication.Instance.DungeonManager.IsEditorMode) //在编辑器模式下打开的Ui
        {
            EditorPlayManager.Restart();
        }
        else //正常重新开始
        {
            GameApplication.Instance.DungeonManager.RestartDungeon(GameApplication.Instance.DungeonConfig);
        }
    }

    //退出地牢
    private void OnExitClick()
    {
        Destroy();
        if (GameApplication.Instance.DungeonManager.IsEditorMode) //在编辑器模式下打开的Ui
        {
            EditorPlayManager.Exit();
        }
        else //正常关闭Ui
        {
            GameApplication.Instance.DungeonManager.ExitDungeon(() =>
            {
                UiManager.Open_Main();
            });
        }
    }
}