From ffc9b44838c68a31702eb8df185474c4d4750626 Mon Sep 17 00:00:00 2001 From: Milon Date: Sun, 9 Mar 2025 21:50:24 +0100 Subject: [PATCH] fix UpdateBankAccount (#35749) * trolled * fun * fuck me --- .../Cargo/Systems/CargoSystem.Orders.cs | 6 +++--- Content.Server/Cargo/Systems/CargoSystem.cs | 16 ++++++++++------ .../Cargo/Components/BankClientComponent.cs | 3 +-- 3 files changed, 14 insertions(+), 11 deletions(-) diff --git a/Content.Server/Cargo/Systems/CargoSystem.Orders.cs b/Content.Server/Cargo/Systems/CargoSystem.Orders.cs index fb217715a0..108b132a94 100644 --- a/Content.Server/Cargo/Systems/CargoSystem.Orders.cs +++ b/Content.Server/Cargo/Systems/CargoSystem.Orders.cs @@ -62,7 +62,7 @@ namespace Content.Server.Cargo.Systems return; _audio.PlayPvs(component.ConfirmSound, uid); - UpdateBankAccount(stationUid.Value, bank, (int) price); + UpdateBankAccount((stationUid.Value, bank), (int) price); QueueDel(args.Used); args.Handled = true; } @@ -103,7 +103,7 @@ namespace Content.Server.Cargo.Systems while (stationQuery.MoveNext(out var uid, out var bank)) { var balanceToAdd = bank.IncreasePerSecond * Delay; - UpdateBankAccount(uid, bank, balanceToAdd); + UpdateBankAccount((uid, bank), balanceToAdd); } var query = EntityQueryEnumerator(); @@ -229,7 +229,7 @@ namespace Content.Server.Cargo.Systems $"{ToPrettyString(player):user} approved order [orderId:{order.OrderId}, quantity:{order.OrderQuantity}, product:{order.ProductId}, requester:{order.Requester}, reason:{order.Reason}] with balance at {bank.Balance}"); orderDatabase.Orders.Remove(order); - UpdateBankAccount(station.Value, bank, -cost); + UpdateBankAccount((station.Value, bank), -cost); UpdateOrders(station.Value); } diff --git a/Content.Server/Cargo/Systems/CargoSystem.cs b/Content.Server/Cargo/Systems/CargoSystem.cs index dc2b25aa4a..ba39787395 100644 --- a/Content.Server/Cargo/Systems/CargoSystem.cs +++ b/Content.Server/Cargo/Systems/CargoSystem.cs @@ -77,19 +77,23 @@ public sealed partial class CargoSystem : SharedCargoSystem } [PublicAPI] - public void UpdateBankAccount(EntityUid uid, StationBankAccountComponent component, int balanceAdded) + public void UpdateBankAccount(Entity ent, int balanceAdded) { - component.Balance += balanceAdded; - var query = EntityQueryEnumerator(); + if (!Resolve(ent, ref ent.Comp)) + return; - var ev = new BankBalanceUpdatedEvent(uid, component.Balance); + ent.Comp.Balance += balanceAdded; + + var ev = new BankBalanceUpdatedEvent(ent, ent.Comp.Balance); + + var query = EntityQueryEnumerator(); while (query.MoveNext(out var client, out var comp, out var xform)) { var station = _station.GetOwningStation(client, xform); - if (station != uid) + if (station != ent) continue; - comp.Balance = component.Balance; + comp.Balance = ent.Comp.Balance; Dirty(client, comp); RaiseLocalEvent(client, ref ev); } diff --git a/Content.Shared/Cargo/Components/BankClientComponent.cs b/Content.Shared/Cargo/Components/BankClientComponent.cs index 4fd7085503..a2bf804570 100644 --- a/Content.Shared/Cargo/Components/BankClientComponent.cs +++ b/Content.Shared/Cargo/Components/BankClientComponent.cs @@ -1,4 +1,3 @@ -using Content.Shared.Cargo; using Robust.Shared.GameStates; namespace Content.Shared.Cargo.Components; @@ -23,4 +22,4 @@ public sealed partial class BankClientComponent : Component /// Raised on an entity with when the bank's balance is updated. /// [ByRefEvent] -public record struct BankBalanceUpdatedEvent(EntityUid Station, int Balance); +public readonly record struct BankBalanceUpdatedEvent(EntityUid Station, int Balance);