2022-05-17 13:49:07 +10:00
|
|
|
using Content.Shared.Damage.Prototypes;
|
2022-07-29 14:13:12 +12:00
|
|
|
using Robust.Shared.Audio;
|
2022-05-17 13:49:07 +10:00
|
|
|
using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype.Dictionary;
|
|
|
|
|
|
2022-11-14 08:33:54 +11:00
|
|
|
namespace Content.Shared.Weapons.Melee.Components;
|
2022-05-17 13:49:07 +10:00
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Plays the specified sound upon receiving damage of the specified type.
|
|
|
|
|
/// </summary>
|
|
|
|
|
[RegisterComponent]
|
2023-08-22 18:14:33 -07:00
|
|
|
public sealed partial class MeleeSoundComponent : Component
|
2022-05-17 13:49:07 +10:00
|
|
|
{
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Specified sounds to apply when the entity takes damage with the specified group.
|
|
|
|
|
/// Will fallback to defaults if none specified.
|
|
|
|
|
/// </summary>
|
|
|
|
|
[DataField("soundGroups",
|
|
|
|
|
customTypeSerializer: typeof(PrototypeIdDictionarySerializer<SoundSpecifier, DamageGroupPrototype>))]
|
|
|
|
|
public Dictionary<string, SoundSpecifier>? SoundGroups;
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Specified sounds to apply when the entity takes damage with the specified type.
|
|
|
|
|
/// Will fallback to defaults if none specified.
|
|
|
|
|
/// </summary>
|
|
|
|
|
[DataField("soundTypes",
|
|
|
|
|
customTypeSerializer: typeof(PrototypeIdDictionarySerializer<SoundSpecifier, DamageTypePrototype>))]
|
|
|
|
|
public Dictionary<string, SoundSpecifier>? SoundTypes;
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Sound that plays if no damage is done.
|
|
|
|
|
/// </summary>
|
|
|
|
|
[DataField("noDamageSound")] public SoundSpecifier? NoDamageSound;
|
|
|
|
|
}
|