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