using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom; namespace Content.Server.Vocalization.Components; /// /// Makes an entity vocalize at set intervals /// [RegisterComponent] [AutoGenerateComponentPause] public sealed partial class VocalizerComponent : Component { /// /// Minimum time to wait after speaking to vocalize again /// [DataField] public TimeSpan MinVocalizeInterval = TimeSpan.FromMinutes(2); /// /// Maximum time to wait after speaking to vocalize again /// [DataField] public TimeSpan MaxVocalizeInterval = TimeSpan.FromMinutes(6); /// /// Next time at which to vocalize /// [DataField(customTypeSerializer: typeof(TimeOffsetSerializer))] [AutoPausedField] public TimeSpan NextVocalizeInterval = TimeSpan.Zero; }