using Content.Shared.Gibbing.Systems;
using Robust.Shared.Audio;
using Robust.Shared.GameStates;
using Robust.Shared.Prototypes;
namespace Content.Shared.Gibbing.Components;
[RegisterComponent, NetworkedComponent, AutoGenerateComponentState, Access(typeof(GibbingSystem))]
public sealed partial class GibbableComponent : Component
{
///
/// Giblet entity prototypes to randomly select from when spawning additional giblets
///
[DataField, AutoNetworkedField]
public List GibPrototypes = new();
///
/// Number of giblet entities to spawn in addition to entity contents
///
[DataField, AutoNetworkedField]
public int GibCount;
///
/// Sound to be played when this entity is gibbed, only played when playsound is true on the gibbing function
///
[DataField, AutoNetworkedField]
public SoundSpecifier? GibSound = new SoundCollectionSpecifier("gib", AudioParams.Default.WithVariation(0.025f));
///
/// Max distance giblets can be dropped from an entity when NOT using physics-based scattering
///
[DataField, AutoNetworkedField]
public float GibScatterRange = 0.3f;
}