using System;
using Robust.Shared.GameObjects;
using Robust.Shared.GameObjects.Components.UserInterface;
using Robust.Shared.Serialization;
namespace Content.Shared.GameObjects.Components.Power
{
public abstract class SharedApcComponent : Component
{
public sealed override string Name => "Apc";
}
[Serializable, NetSerializable]
public enum ApcVisuals
{
ChargeState
}
[Serializable, NetSerializable]
public enum ApcChargeState
{
///
/// APC does not have enough power to charge cell (if necessary) and keep powering the area.
///
Lack,
///
/// APC is not full but has enough power.
///
Charging,
///
/// APC battery is full and has enough power.
///
Full,
}
[Serializable, NetSerializable]
public sealed class ApcBoundInterfaceState : BoundUserInterfaceState
{
public readonly bool MainBreaker;
public readonly ApcExternalPowerState ApcExternalPower;
public readonly float Charge;
public ApcBoundInterfaceState(bool mainBreaker, ApcExternalPowerState apcExternalPower, float charge)
{
MainBreaker = mainBreaker;
ApcExternalPower = apcExternalPower;
Charge = charge;
}
}
[Serializable, NetSerializable]
public sealed class ApcToggleMainBreakerMessage : BoundUserInterfaceMessage
{
}
public enum ApcExternalPowerState
{
None,
Low,
Good,
}
[NetSerializable, Serializable]
public enum ApcUiKey
{
Key,
}
}