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