using Content.Shared.Dataset;
using Content.Shared.FixedPoint;
using Robust.Shared.Audio;
using Robust.Shared.GameStates;
using Robust.Shared.Prototypes;
namespace Content.Shared.Bed.Sleep;
///
/// Added to entities when they go to sleep.
///
[NetworkedComponent, RegisterComponent]
[AutoGenerateComponentState, AutoGenerateComponentPause(Dirty = true)]
public sealed partial class SleepingComponent : Component
{
///
/// How much damage of any type it takes to wake this entity.
///
[DataField]
public FixedPoint2 WakeThreshold = FixedPoint2.New(2);
///
/// Cooldown time between users hand interaction.
///
[DataField]
public TimeSpan Cooldown = TimeSpan.FromSeconds(1f);
[DataField]
[AutoNetworkedField, AutoPausedField]
public TimeSpan CooldownEnd;
[DataField]
[AutoNetworkedField]
public EntityUid? WakeAction;
///
/// Sound to play when another player attempts to wake this entity.
///
[DataField]
public SoundSpecifier WakeAttemptSound = new SoundPathSpecifier("/Audio/Effects/thudswoosh.ogg")
{
Params = AudioParams.Default.WithVariation(0.05f)
};
///
/// The fluent string prefix to use when picking a random suffix
/// This is only active for those who have the sleeping component
///
[DataField]
public ProtoId ForceSaySleepDataset = "ForceSaySleepDataset";
}