using Robust.Shared.GameStates; using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom; namespace Content.Shared.Power.Components; /// /// Self-recharging battery. /// To be used in combination with . /// [RegisterComponent, NetworkedComponent] [AutoGenerateComponentState, AutoGenerateComponentPause] public sealed partial class BatterySelfRechargerComponent : Component { /// /// At what rate does the entity automatically recharge? In watts. /// [DataField, AutoNetworkedField, ViewVariables] public float AutoRechargeRate; /// /// How long should the entity stop automatically recharging if a charge is used? /// [DataField, AutoNetworkedField] public TimeSpan AutoRechargePauseTime = TimeSpan.Zero; /// /// Do not auto recharge if this timestamp has yet to happen, set for the auto recharge pause system. /// [DataField(customTypeSerializer: typeof(TimeOffsetSerializer))] [AutoNetworkedField, AutoPausedField, ViewVariables] public TimeSpan? NextAutoRecharge = TimeSpan.FromSeconds(0); }