using System.Collections;
using UnityEngine;
using UnityEngine.UI;

public class ItemEquippedDisplay : MonoBehaviour
{
    [Header("Player")]
    [SerializeField] RacerCore m_localPlayer = null;

    [Header("UI References")]
    [SerializeField] Image m_itemImage = null;

    [Header("Default Sprite")]
    [SerializeField] Sprite m_defaultSprite = null;

    private void OnEnable()
    {
        if (!m_localPlayer)
            return;

        m_localPlayer.Items.OnItemDisplayUpdate += UpdateDisplay;
    }

    private void OnDisable()
    {
        if (!m_localPlayer)
            return;

        m_localPlayer.Items.OnItemDisplayUpdate -= UpdateDisplay;
    }

    private void Start()
    {
        m_itemImage = GetComponent<Image>();

        if (m_localPlayer)
            return;

        StartCoroutine(TryGetPlayer());
    }

    IEnumerator TryGetPlayer()
    {
        while (!m_localPlayer)
        {
            m_localPlayer = RacerCore.LocalRacer;

            yield return null;
        }

        m_localPlayer.Items.OnItemDisplayUpdate += UpdateDisplay;
    }

    void UpdateDisplay(Sprite _sprite)
    {
        //Debug.Log(_sprite == null ? "Default" : _sprite.name);

        if (m_itemImage)
            m_itemImage.sprite = _sprite == null ? m_defaultSprite : _sprite;
    }
}
