mirror of
https://gitlab.com/MaddoScientisto/cirnogodot.git
synced 2026-06-03 20:55:54 +00:00
51 lines
No EOL
1.3 KiB
C#
51 lines
No EOL
1.3 KiB
C#
using Cirno.Scripts.Resources;
|
|
using Godot;
|
|
|
|
namespace Cirno.Scripts.UI;
|
|
|
|
public partial class WeaponAmmoCounter : Control
|
|
{
|
|
public LootItem Item { get; private set; }
|
|
|
|
[Export]
|
|
public TextureRect Icon { get; private set; }
|
|
|
|
[Export]
|
|
public TextureRect AmmoIcon { get; private set; }
|
|
|
|
[Export]
|
|
public Label TotalAmmoLabel { get; private set; }
|
|
[Export]
|
|
public Label LoadedAmmoLabel { get; private set; }
|
|
|
|
public void Init(LootItem item)
|
|
{
|
|
Item = item;
|
|
|
|
InventoryManager.Instance.LoadedAmmoChanged += (weaponKey, count) =>
|
|
{
|
|
if (weaponKey != Item.WeaponData.ItemKey) return;
|
|
LoadedAmmoLabel.Text = count.ToString();
|
|
};
|
|
|
|
if (string.IsNullOrWhiteSpace(item.WeaponData.AmmoKey))
|
|
{
|
|
TotalAmmoLabel.Hide();
|
|
AmmoIcon.Hide();
|
|
return;
|
|
}
|
|
|
|
UpdateCounter();
|
|
// Register this only if there's ammo
|
|
InventoryManager.Instance.TotalAmmoChanged += (ammoKey, count) =>
|
|
{
|
|
if (ammoKey != Item.WeaponData.AmmoKey) return;
|
|
TotalAmmoLabel.Text = count.ToString();
|
|
};
|
|
}
|
|
|
|
private void UpdateCounter()
|
|
{
|
|
TotalAmmoLabel.Text = InventoryManager.Instance.GetItemCount(Item.WeaponData.AmmoKey).ToString();
|
|
}
|
|
} |