using TMPro;
using UnityEngine;
using UnityEngine.InputSystem;
using UnityEngine.UI;

public class UIManager : MonoBehaviour
{
    [SerializeField]
    private Slider healthBar;

    [SerializeField]
    private TMP_Text healthText;

    [SerializeField]
    private TMP_Text coinsText;

    [SerializeField]
    private GameObject pausePanel;

    [SerializeField]
    private InputActionReference pauseAction;

    private bool paused;

    void Update()
    {
        if (pauseAction.action.WasPressedThisFrame())
        {
            TogglePause();
        }
    }

    public void UpdateHealth(
        int current,
        int maximum)
    {
        healthBar.maxValue = maximum;
        healthBar.value = current;
        healthText.text =
            $"{current} / {maximum}";
    }

    public void UpdateCoins(int coins)
    {
        coinsText.text = coins.ToString();
    }

    public void TogglePause()
    {
        paused = !paused;

        pausePanel.SetActive(paused);
        Time.timeScale =
            paused ? 0f : 1f;

        Cursor.visible = paused;

        Cursor.lockState =
            paused
                ? CursorLockMode.None
                : CursorLockMode.Locked;
    }
}