using Content.Server.Power.NodeGroups; using Content.Server.Power.Pow3r; namespace Content.Server.Power.Components { /// /// Draws power directly from an MV or HV wire it is on top of. /// [RegisterComponent] public sealed partial class PowerConsumerComponent : BaseNetConnectorComponent { /// /// How much power this needs to be fully powered. /// [DataField("drawRate")] [ViewVariables(VVAccess.ReadWrite)] public float DrawRate { get => NetworkLoad.DesiredPower; set => NetworkLoad.DesiredPower = value; } [DataField("showInMonitor")] [ViewVariables(VVAccess.ReadWrite)] public bool ShowInMonitor { get; set; } = true; /// /// How much power this is currently receiving from s. /// [ViewVariables] public float ReceivedPower => NetworkLoad.ReceivingPower; public float LastReceived = float.NaN; public PowerState.Load NetworkLoad { get; } = new(); protected override void AddSelfToNet(IBasePowerNet powerNet) { powerNet.AddConsumer(this); } protected override void RemoveSelfFromNet(IBasePowerNet powerNet) { powerNet.RemoveConsumer(this); } } }