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; /// /// If true, messages spoken by this vocalizer will not be logged in the chat window /// and will only be shown as speech bubbles. /// [DataField] public bool HideChat; }