Neg_Utils/NEG/UI/UnityUi/Area/MonoArea.cs

51 lines
1.4 KiB
C#

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<IWindowSlot> AvailableSlots => windowSlots;
public IWindowSlot DefaultWindowSlot => windowSlots[0];
[SerializeField] private bool setAsDefaultArea;
[SerializeField] private List<MonoWindowSlot> windowSlots;
private Queue<IPopup> currentPopups = new();
public virtual void SetEnabled(bool setEnabled) => gameObject.SetActive(setEnabled);
public void OpenChildWindow(IWindow window, object data = null)
{
foreach (var slot in AvailableSlots)
{
}
}
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;
}
}
}