using System.Collections.Generic; using UnityEngine; using NEG.UI.Popup; using NEG.UI.UnityUi.Window; using NEG.UI.UnityUi.WindowSlot; using NEG.UI.Window; using NEG.UI.WindowSlot; using System; namespace NEG.UI.Area { public class MonoArea : MonoBehaviour, IArea { public IEnumerable AvailableSlots => windowSlots; public IWindowSlot DefaultWindowSlot => windowSlots[0]; [SerializeField] private bool setAsDefaultArea; [SerializeField] private List windowSlots; public virtual void SetEnabled(bool setEnabled) => gameObject.SetActive(setEnabled); public virtual void OpenWindow(IWindow window, object data = null) { DefaultWindowSlot.AttachWindow(window); window.SetData(data); } protected virtual void Awake() { if (setAsDefaultArea) UiManager.Instance.CurrentArea = this; } protected virtual void OnDestroy() { if (ReferenceEquals(UiManager.Instance.CurrentArea, this)) UiManager.Instance.CurrentArea = null; } } }