using Robust.Shared.Audio; using Robust.Shared.Prototypes; using Robust.Shared.Serialization; using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype.Dictionary; namespace Content.Shared.Chat.Prototypes; /// /// Sounds collection for each . /// Different entities may use different sounds collections. /// [Prototype, Serializable, NetSerializable] public sealed partial class EmoteSoundsPrototype : IPrototype { [IdDataField] public string ID { get; private set; } = default!; /// /// Optional fallback sound that will play if collection /// doesn't have specific sound for this emote id. /// [DataField("sound")] public SoundSpecifier? FallbackSound; /// /// Optional audio params that will be applied to ALL sounds. /// This will overwrite any params that may be set in sound specifiers. /// [DataField("params")] public AudioParams? GeneralParams; /// /// Collection of emote prototypes and their sounds. /// [DataField("sounds", customTypeSerializer: typeof(PrototypeIdDictionarySerializer))] public Dictionary Sounds = new(); }