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"; }