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 _tabsByAccount = new(); public LedgerUiFragment() { RobustXamlLoader.Load(this); foreach (var account in Enum.GetValues()) { 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(); } } }