using System; using UnityEngine.UIElements; using VOID.ScriptableObjects; namespace VOID.UserInterface.Game.Util { [Serializable] public class StatusUI { // Content of slot public BasicStatus status { get; private set; } // Elements private VisualElement _templateElement; private VisualElement _iconElement; private Label _timerLabel; /// /// Initializes completly new inside given parent. /// /// Create new status as child in given parent. /// to use for this StatusUI /// Optional name for UI element public void InitNew(VisualElement parentWrapperElement, BasicStatus status, string name = null) { this.status = status; // Create Status (from template) in GUI _templateElement = GameUI.current.statusTemplate.CloneTree().contentContainer; _templateElement.name = name ?? "status"; _templateElement.AddToClassList("status"); _templateElement.AddToClassList("status-medium"); parentWrapperElement.Add(_templateElement); // Find all Status's elements _iconElement = _templateElement.Q("icon"); _iconElement.style.backgroundImage = new StyleBackground(status.displayIcon); _timerLabel = _templateElement.Q