CapersProject/Assets/02.Scripts/Ui/Popup/PopupUiController.cs
2024-12-19 01:00:39 +09:00

83 lines
2.0 KiB
C#

using System.Collections.Generic;
using BlueWater.Uis;
namespace BlueWater
{
public static class PopupUiController
{
public static List<PopupUi> PopupUis { get; private set; } = new();
// Popup 등록
public static void RegisterPopup(PopupUi popup)
{
if (!PopupUis.Contains(popup))
{
foreach (var element in PopupUis)
{
element.DisableInput();
}
PopupUis.Add(popup);
popup.EnableInput();
}
}
// Popup 해제
public static void UnregisterPopup(PopupUi popup)
{
if (PopupUis.Contains(popup))
{
popup.DisableInput();
PopupUis.Remove(popup);
if (PopupUis.Count > 0)
{
PopupUis[^1].EnableInput();
}
}
}
// 마지막 Popup 닫기
public static void CloseLastPopup()
{
if (PopupUis.Count <= 0) return;
PopupUis[^1].Close();
}
// 모든 Popup 닫기
public static void CloseAllPopup()
{
foreach (var element in PopupUis)
{
if (!element.IsOpened) continue;
element.Close();
}
}
/// <summary>
/// 현재 열려있는 팝업 리스트 중에 시간을 멈춘 팝업이 있는지 없는지 확인
/// </summary>
public static bool IsPausedPopupList()
{
foreach (var element in PopupUis)
{
if (!element.IsPaused) continue;
return true;
}
return false;
}
// Popup 목록이 비어 있는지 확인
public static bool IsPopupListEmpty() => PopupUis.Count == 0;
public static void ClearPopup()
{
PopupUis.Clear();
}
}
}