* nasrano * Add station budget & salary * Initial balance * Vending machine UI * Pricing for vending machines * Finish economy * Eftpos * Finish eftpos * Put eftpos into lockers * Vending machine prices * Small fixes * Fix atm UI * Add atms to maps * fix * reset * Add PDA program * Maps again --------- Co-authored-by: Mona Hmiza <> Co-authored-by: rhailrake <49613070+rhailrake@users.noreply.github.com>
47 lines
1.6 KiB
C#
47 lines
1.6 KiB
C#
using Content.Server.CartridgeLoader;
|
|
using Content.Shared.CartridgeLoader;
|
|
using Content.Shared.White.Economy;
|
|
|
|
namespace Content.Server.White.Economy;
|
|
|
|
public sealed class BankCartridgeSystem : EntitySystem
|
|
{
|
|
[Dependency] private readonly CartridgeLoaderSystem? _cartridgeLoaderSystem = default!;
|
|
[Dependency] private readonly BankCardSystem _bankCardSystem = default!;
|
|
|
|
public override void Initialize()
|
|
{
|
|
base.Initialize();
|
|
SubscribeLocalEvent<BankCartridgeComponent, CartridgeMessageEvent>(OnUiMessage);
|
|
SubscribeLocalEvent<BankCartridgeComponent, CartridgeUiReadyEvent>(OnUiReady);
|
|
}
|
|
|
|
private void OnUiReady(EntityUid uid, BankCartridgeComponent component, CartridgeUiReadyEvent args)
|
|
{
|
|
UpdateUiState(uid, args.Loader, component);
|
|
}
|
|
|
|
private void OnUiMessage(EntityUid uid, BankCartridgeComponent component, CartridgeMessageEvent args)
|
|
{
|
|
UpdateUiState(uid, GetEntity(args.LoaderUid), component);
|
|
}
|
|
|
|
public void UpdateUiState(EntityUid cartridgeUid, EntityUid loaderUid, BankCartridgeComponent? component = null)
|
|
{
|
|
if (!Resolve(cartridgeUid, ref component))
|
|
return;
|
|
|
|
var state = new BankCartridgeUiState
|
|
{
|
|
AccountLinked = component.AccountId != null
|
|
};
|
|
|
|
if (component.AccountId != null && _bankCardSystem.TryGetAccount(component.AccountId.Value, out var account))
|
|
{
|
|
state.Balance = account.Balance;
|
|
state.OwnerName = account.Name;
|
|
}
|
|
_cartridgeLoaderSystem?.UpdateCartridgeUiState(loaderUid, state);
|
|
}
|
|
}
|