using Content.Shared.Chemistry.EntitySystems; using Robust.Shared.GameStates; using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom; namespace Content.Shared.Chemistry.Components; /// /// Passively increases a solution's quantity of a reagent. /// [RegisterComponent, AutoGenerateComponentPause, AutoGenerateComponentState, NetworkedComponent] [Access(typeof(SolutionRegenerationSystem))] public sealed partial class SolutionRegenerationComponent : Component { /// /// The name of the solution to add to. /// [DataField("solution", required: true)] public string SolutionName = string.Empty; /// /// The solution to add reagents to. /// [ViewVariables] public Entity? SolutionRef = null; /// /// The reagent(s) to be regenerated in the solution. /// [DataField(required: true)] public Solution Generated = default!; /// /// How long it takes to regenerate once. /// [DataField] public TimeSpan Duration = TimeSpan.FromSeconds(1); /// /// The time when the next regeneration will occur. /// [DataField("nextChargeTime", customTypeSerializer: typeof(TimeOffsetSerializer))] [AutoPausedField, AutoNetworkedField] public TimeSpan NextRegenTime; }