using Content.Server.Power.NodeGroups; using Content.Server.Power.Pow3r; using Content.Shared.Power.Components; namespace Content.Server.Power.Components { /// /// Attempts to link with a nearby s /// so that it can receive power from a . /// [RegisterComponent] public sealed partial class ApcPowerReceiverComponent : SharedApcPowerReceiverComponent { /// /// Amount of charge this needs from an APC per second to function. /// [DataField("powerLoad")] public override float Load { get => NetworkLoad.DesiredPower; set => NetworkLoad.DesiredPower = value; } public ApcPowerProviderComponent? Provider = null; /// /// When false, causes this to appear powered even if not receiving power from an Apc. /// [ViewVariables(VVAccess.ReadWrite)] public override bool NeedsPower { get => _needsPower; set { _needsPower = value; } } [DataField("needsPower")] private bool _needsPower = true; /// /// When true, causes this to never appear powered. /// [DataField("powerDisabled")] public override bool PowerDisabled { get => !NetworkLoad.Enabled; set => NetworkLoad.Enabled = !value; } [ViewVariables] public PowerState.Load NetworkLoad { get; } = new PowerState.Load { DesiredPower = 5 }; public float PowerReceived => NetworkLoad.ReceivingPower; } }