using Robust.Shared.Audio; using Robust.Shared.GameStates; namespace Content.Shared.Nutrition.Components; /// /// Adds a "Shake" verb to the entity's verb menu. /// Handles checking the entity can be shaken, displaying popups when shaking, /// and raising a ShakeEvent when a shake occurs. /// Reacting to being shaken is left up to other components. /// [RegisterComponent, NetworkedComponent] public sealed partial class ShakeableComponent : Component { /// /// How long it takes to shake this item. /// [DataField] public TimeSpan ShakeDuration = TimeSpan.FromSeconds(1f); /// /// Does the entity need to be in the user's hand in order to be shaken? /// [DataField] public bool RequireInHand; /// /// Label to display in the verbs menu for this item's shake action. /// [DataField] public LocId ShakeVerbText = "shakeable-verb"; /// /// Text that will be displayed to the user when shaking this item. /// [DataField] public LocId ShakePopupMessageSelf = "shakeable-popup-message-self"; /// /// Text that will be displayed to other users when someone shakes this item. /// [DataField] public LocId ShakePopupMessageOthers = "shakeable-popup-message-others"; /// /// The sound that will be played when shaking this item. /// [DataField] public SoundSpecifier ShakeSound = new SoundPathSpecifier("/Audio/Items/soda_shake.ogg"); }