Files
tbd-station-14/Content.Server/Power/Components/PowerConsumerComponent.cs
2022-05-13 17:59:03 +10:00

40 lines
1.2 KiB
C#

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