using Content.Server.Power.Pow3r; namespace Content.Server.Power.Components { /// /// Glue component that manages the pow3r network node for batteries that are connected to the power network. /// /// /// This needs components like to work correctly, /// and battery storage should be handed off to components like . /// [RegisterComponent] public sealed class PowerNetworkBatteryComponent : Component { [ViewVariables] public float LastSupply = 0f; [DataField("maxChargeRate")] [ViewVariables(VVAccess.ReadWrite)] public float MaxChargeRate { get => NetworkBattery.MaxChargeRate; set => NetworkBattery.MaxChargeRate = value; } [DataField("maxSupply")] [ViewVariables(VVAccess.ReadWrite)] public float MaxSupply { get => NetworkBattery.MaxSupply; set => NetworkBattery.MaxSupply = value; } [DataField("supplyRampTolerance")] [ViewVariables(VVAccess.ReadWrite)] public float SupplyRampTolerance { get => NetworkBattery.SupplyRampTolerance; set => NetworkBattery.SupplyRampTolerance = value; } [DataField("supplyRampRate")] [ViewVariables(VVAccess.ReadWrite)] public float SupplyRampRate { get => NetworkBattery.SupplyRampRate; set => NetworkBattery.SupplyRampRate = value; } [DataField("supplyRampPosition")] [ViewVariables(VVAccess.ReadWrite)] public float SupplyRampPosition { get => NetworkBattery.SupplyRampPosition; set => NetworkBattery.SupplyRampPosition = value; } [DataField("currentSupply")] [ViewVariables(VVAccess.ReadWrite)] public float CurrentSupply { get => NetworkBattery.CurrentSupply; set => NetworkBattery.CurrentSupply = value; } [DataField("currentReceiving")] [ViewVariables(VVAccess.ReadWrite)] public float CurrentReceiving { get => NetworkBattery.CurrentReceiving; set => NetworkBattery.CurrentReceiving = value; } [DataField("loadingNetworkDemand")] [ViewVariables(VVAccess.ReadWrite)] public float LoadingNetworkDemand { get => NetworkBattery.LoadingNetworkDemand; set => NetworkBattery.LoadingNetworkDemand = value; } [DataField("enabled")] [ViewVariables(VVAccess.ReadWrite)] public bool Enabled { get => NetworkBattery.Enabled; set => NetworkBattery.Enabled = value; } [DataField("canCharge")] [ViewVariables(VVAccess.ReadWrite)] public bool CanCharge { get => NetworkBattery.CanCharge; set => NetworkBattery.CanCharge = value; } [DataField("canDisharge")] [ViewVariables(VVAccess.ReadWrite)] public bool CanDischarge { get => NetworkBattery.CanDischarge; set => NetworkBattery.CanDischarge = value; } [DataField("efficiency")] [ViewVariables(VVAccess.ReadWrite)] public float Efficiency { get => NetworkBattery.Efficiency; set => NetworkBattery.Efficiency = value; } [ViewVariables] public PowerState.Battery NetworkBattery { get; } = new(); } }