using Content.Server.Power.Components; using Content.Shared.Power.Components; using Content.Shared.Power.EntitySystems; namespace Content.Server.Power.EntitySystems; /// > public sealed partial class PowerStateSystem : SharedPowerStateSystem { [Dependency] EntityQuery _powerConsumerQuery = default!; /// Init IsWorking and power values on startup. [SubscribeLocalEvent] private void OnComponentStartup(Entity ent, ref ComponentStartup args) { if (ent.Comp.EnsureApc) EnsureComp(ent); SetPowerLoad(ent, ent.Comp.IsWorking); } /// > protected override void SetPowerLoad(Entity ent, bool isWorking) { base.SetPowerLoad(ent, isWorking); if (_powerConsumerQuery.TryComp(ent, out var powerConsumer)) powerConsumer.DrawRate = isWorking ? ent.Comp.WorkingPowerDraw : ent.Comp.IdlePowerDraw; } }