using System; using System.Collections.Generic; using UnityEngine; using UnityEngine.UIElements; using VOID.Generic.Dict; using VOID.Generic.Objects.Container; using VOID.Generic.Objects.Container.Events; using VOID.Generic.Objects.Item; using VOID.Generic.Objects.Unit; using VOID.Generic.Objects.Unit.Actions; using VOID.UserInterface.Game.Interfaces; using VOID.UserInterface.Game.Util; namespace VOID.UserInterface.Game { public class ContainerUI : MonoBehaviour, IHasWindow { public static List currentList { get; } = new(); // WindowUI public WindowUI windowUI { get; private set; } // ContainerObject, its content to which this UI is connected and also unit who opened it public ContainerObject container { get; private set; } private ContainerObjectContent _content; private UnitObject _unit; // Visual Elements private VisualElement _rootElement; private VisualElement _slotsElement; private SlotUI[] _slots; // Sort buttons private Button _sortButton; private void Awake() { currentList.Add(this); var uiDocument = gameObject.GetComponent(); var template = uiDocument.rootVisualElement; // Find all important elements _rootElement = template.Q("root-container"); _slotsElement = template.Q("slots"); windowUI = gameObject.GetComponent(); // Sort buttons _sortButton = template.Q