Files
OldThink/Content.Server/White/Economy/BankCartridgeSystem.cs
Aviu00 16c8b95da4 Economy (#403)
* 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>
2024-01-24 13:04:22 +03:00

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);
}
}