| 12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- using Content.Server.Power.NodeGroups;
- using Content.Server.Power.Pow3r;
- namespace Content.Server.Power.Components
- {
- /// <summary>
- /// Draws power directly from an MV or HV wire it is on top of.
- /// </summary>
- [RegisterComponent]
- public sealed partial class PowerConsumerComponent : BaseNetConnectorComponent<IBasePowerNet>
- {
- /// <summary>
- /// How much power this needs to be fully powered.
- /// </summary>
- [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;
- /// <summary>
- /// How much power this is currently receiving from <see cref="PowerSupplierComponent"/>s.
- /// </summary>
- [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);
- }
- }
- }
|