using Robust.Shared.Serialization; namespace Content.Shared.Power; /// /// UI key for large battery (SMES/substation) UIs. /// [NetSerializable, Serializable] public enum BatteryUiKey : byte { Key, } /// /// UI state for large battery (SMES/substation) UIs. /// /// [Serializable, NetSerializable] public sealed class BatteryBuiState : BoundUserInterfaceState { // These are mostly just regular Pow3r parameters. // I/O public bool CanCharge; public bool CanDischarge; public bool SupplyingNetworkHasPower; public bool LoadingNetworkHasPower; public float CurrentReceiving; public float CurrentSupply; // Charge public float MaxChargeRate; public float MinMaxChargeRate; public float MaxMaxChargeRate; public float Efficiency; // Discharge public float MaxSupply; public float MinMaxSupply; public float MaxMaxSupply; // Storage public float Charge; public float Capacity; } /// /// Sent client to server to change the input breaker state on a large battery. /// [Serializable, NetSerializable] public sealed class BatterySetInputBreakerMessage(bool on) : BoundUserInterfaceMessage { public bool On = on; } /// /// Sent client to server to change the output breaker state on a large battery. /// [Serializable, NetSerializable] public sealed class BatterySetOutputBreakerMessage(bool on) : BoundUserInterfaceMessage { public bool On = on; } /// /// Sent client to server to change the charge rate on a large battery. /// [Serializable, NetSerializable] public sealed class BatterySetChargeRateMessage(float rate) : BoundUserInterfaceMessage { public float Rate = rate; } /// /// Sent client to server to change the discharge rate on a large battery. /// [Serializable, NetSerializable] public sealed class BatterySetDischargeRateMessage(float rate) : BoundUserInterfaceMessage { public float Rate = rate; }