6
2025-11-03 10:15:18 +03:00

50 lines
1.5 KiB
C#

using Content.Shared._NF.Bank.BUI;
using Content.Shared._NF.Bank.Components;
using Robust.Client.AutoGenerated;
using Robust.Client.UserInterface.Controls;
using Robust.Client.UserInterface.XAML;
namespace Content.Client._NF.CartridgeLoader.Cartridges;
[GenerateTypedNameReferences]
public sealed partial class LedgerUiFragment : BoxContainer
{
private Dictionary<SectorBankAccount, LedgerTab> _tabsByAccount = new();
public LedgerUiFragment()
{
RobustXamlLoader.Load(this);
foreach (var account in Enum.GetValues<SectorBankAccount>())
{
if (account == SectorBankAccount.Invalid)
continue;
var ledgerTab = new LedgerTab(account);
Tabs.AddChild(ledgerTab);
Tabs.SetTabTitle(Tabs.ChildCount - 1, Loc.GetString($"ledger-tab-{account}"));
_tabsByAccount[account] = ledgerTab;
}
}
public void UpdateState(NFLedgerState state)
{
foreach (var tab in Tabs.Children)
{
if (tab is LedgerTab ledgerTab)
ledgerTab.ClearLedgerEntries();
}
// Regenerate new entries
foreach (var entry in state.Entries)
{
if (_tabsByAccount.ContainsKey(entry.Account))
_tabsByAccount[entry.Account].AddLedgerEntry(entry.Type, entry.Amount);
}
foreach (var tab in Tabs.Children)
{
if (tab is LedgerTab ledgerTab)
ledgerTab.UpdateTotals();
}
}
}