using Godot;
using Mr.BrickAdventures;
using Mr.BrickAdventures.Autoloads;
using Mr.BrickAdventures.scripts.components;

namespace Mr.BrickAdventures.scripts.UI;

public partial class Hud : Control
{
    [Export] public HealthComponent Health { get; set; }
    [Export] public Label CoinsLabel { get; set; }
    [Export] public ProgressBar HealthBar { get; set; }
    [Export] public Label LivesLabel { get; set; }

    private GameStateStore Store => GameStateStore.Instance;

    public override void _Process(double delta)
    {
        SetHealthBar();
        SetLivesLabel();
        SetCoinsLabel();
    }

    private void SetCoinsLabel()
    {
        CoinsLabel.Text = Tr("COINS_LABEL") + ": " + (Store?.GetTotalCoins() ?? 0);
    }

    private void SetLivesLabel()
    {
        LivesLabel.Text = Tr("LIVES_LABEL") + ": " + (Store?.Player.Lives ?? 0);
    }

    private void SetHealthBar()
    {
        HealthBar.Value = Health.Health;
        HealthBar.MaxValue = Health.MaxHealth;
    }
}