diff --git a/Content.Server/Power/EntitySystems/BatterySystem.cs b/Content.Server/Power/EntitySystems/BatterySystem.cs index 44126d6810..e97b007861 100644 --- a/Content.Server/Power/EntitySystems/BatterySystem.cs +++ b/Content.Server/Power/EntitySystems/BatterySystem.cs @@ -11,23 +11,25 @@ namespace Content.Server.Power.EntitySystems { base.Initialize(); - SubscribeLocalEvent(PreSync); - SubscribeLocalEvent(PostSync); + SubscribeLocalEvent(PreSync); + SubscribeLocalEvent(PostSync); } - private void PreSync(EntityUid uid, BatteryComponent component, NetworkBatteryPreSync args) + private void PreSync(NetworkBatteryPreSync ev) { - var networkBattery = ComponentManager.GetComponent(uid); - - networkBattery.NetworkBattery.Capacity = component.MaxCharge; - networkBattery.NetworkBattery.CurrentStorage = component.CurrentCharge; + foreach (var (bat, netBat) in ComponentManager.EntityQuery()) + { + netBat.NetworkBattery.Capacity = bat.MaxCharge; + netBat.NetworkBattery.CurrentStorage = bat.CurrentCharge; + } } - private void PostSync(EntityUid uid, BatteryComponent component, NetworkBatteryPostSync args) + private void PostSync(NetworkBatteryPostSync ev) { - var networkBattery = ComponentManager.GetComponent(uid); - - component.CurrentCharge = networkBattery.NetworkBattery.CurrentStorage; + foreach (var (bat, netBat) in ComponentManager.EntityQuery()) + { + bat.CurrentCharge = netBat.NetworkBattery.CurrentStorage; + } } public override void Update(float frameTime) diff --git a/Content.Server/Power/EntitySystems/PowerNetSystem.cs b/Content.Server/Power/EntitySystems/PowerNetSystem.cs index 3b7f81fb25..84b65289b5 100644 --- a/Content.Server/Power/EntitySystems/PowerNetSystem.cs +++ b/Content.Server/Power/EntitySystems/PowerNetSystem.cs @@ -175,19 +175,13 @@ namespace Content.Server.Power.EntitySystems } // Synchronize batteries - foreach (var battery in ComponentManager.EntityQuery()) - { - RaiseLocalEvent(battery.Owner.Uid, new NetworkBatteryPreSync()); - } + RaiseLocalEvent(new NetworkBatteryPreSync()); // Run power solver. _solver.Tick(frameTime, _powerState); // Synchronize batteries, the other way around. - foreach (var battery in ComponentManager.EntityQuery()) - { - RaiseLocalEvent(battery.Owner.Uid, new NetworkBatteryPostSync()); - } + RaiseLocalEvent(new NetworkBatteryPostSync()); // Send events where necessary. { @@ -313,7 +307,7 @@ namespace Content.Server.Power.EntitySystems /// Raised before power network simulation happens, to synchronize battery state from /// components like into . /// - public sealed class NetworkBatteryPreSync : EntityEventArgs + public struct NetworkBatteryPreSync { } @@ -321,7 +315,7 @@ namespace Content.Server.Power.EntitySystems /// Raised after power network simulation happens, to synchronize battery charge changes from /// to components like . /// - public sealed class NetworkBatteryPostSync : EntityEventArgs + public struct NetworkBatteryPostSync { }