using System.Collections.Generic; using BlueWater.Uis; namespace BlueWater { public static class PopupUiController { public static List 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(); } } /// /// 현재 열려있는 팝업 리스트 중에 시간을 멈춘 팝업이 있는지 없는지 확인 /// 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(); } } }