using UnityEngine;
using UnityEngine.UI;
using Unity.Netcode;

public class StaminaUI : MonoBehaviour
{
    private StaminaManager localStaminaManager;
    [SerializeField] private Image staminaBar;

    private void Start()
    {
        if (staminaBar == null)
        {
            Debug.LogError("[StaminaUI] No Image component found on this GameObject!");
            return;
        }

        // Wait for the player to be assigned
        InvokeRepeating(nameof(FindLocalPlayerStaminaManager), 0f, 1f);
    }

    private void FindLocalPlayerStaminaManager()
    {
        foreach (var player in FindObjectsOfType<StaminaManager>())
        {
            if (player.TryGetComponent<NetworkObject>(out var networkObject) && networkObject.IsOwner)
            {
                localStaminaManager = player;
                CancelInvoke(nameof(FindLocalPlayerStaminaManager)); // Stop checking once found
                Debug.Log("[StaminaUI] Found local player's StaminaManager.");
                break;
            }
        }
    }

    private void Update()
    {
        if (localStaminaManager != null && staminaBar != null)
        {
            staminaBar.fillAmount = localStaminaManager.CurrentStamina / localStaminaManager.MaxStamina;
        }
    }
}