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();
}