namespace Content.Server.Chat;
using Content.Server.Chat.Systems;
using Content.Shared.Chat.Prototypes;
using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype.Set;
///
/// Causes an entity to automatically emote at a set interval.
///
[RegisterComponent, Access(typeof(AutoEmoteSystem))]
public sealed partial class AutoEmoteComponent : Component
{
///
/// A set of emotes that the entity will preform.
///
///
[DataField("emotes", customTypeSerializer: typeof(PrototypeIdHashSetSerializer)), ViewVariables(VVAccess.ReadOnly)]
public HashSet Emotes = new HashSet();
///
/// A dictionary storing the time of the next emote attempt for each emote.
/// Uses AutoEmotePrototype IDs as keys.
///
[ViewVariables(VVAccess.ReadOnly)] //TODO: make this a datafield and (de)serialize values as time offsets when https://github.com/space-wizards/RobustToolbox/issues/3768 is fixed
public Dictionary EmoteTimers = new Dictionary();
///
/// Time of the next emote. Redundant, but avoids having to iterate EmoteTimers each update.
///
[ViewVariables(VVAccess.ReadOnly)]
public TimeSpan NextEmoteTime = TimeSpan.MaxValue;
}