using Content.Shared.Chemistry.Components; using Robust.Shared.Audio; using Robust.Shared.GameStates; namespace Content.Shared.Kitchen.Components; /// /// Indicates this entity is a handheld grinder. /// Entities with can be used on handheld grinders to extract their solutions. /// [RegisterComponent, NetworkedComponent, AutoGenerateComponentState] public sealed partial class HandheldGrinderComponent : Component { /// /// The length of the doAfter. /// After it ends, the respective GrinderProgram is used on the contents. /// [DataField, AutoNetworkedField] public TimeSpan DoAfterDuration = TimeSpan.FromSeconds(4f); /// /// Popup to use after the current item is done processing. /// [DataField, AutoNetworkedField] public LocId FinishedPopup = "handheld-grinder-default"; /// /// The sound to play when the doAfter starts. /// [DataField] public SoundSpecifier Sound = new SoundPathSpecifier("/Audio/Items/Culinary/mortar_grinding.ogg", AudioParams.Default.WithLoop(true)); /// /// The grinder program to use. /// Decides whether this one will Juice or Grind the objects. /// [DataField, AutoNetworkedField] public GrinderProgram Program = GrinderProgram.Grind; /// /// The solution into which the output reagents will go. /// [DataField, AutoNetworkedField] public string SolutionName = "grinderOutput"; /// /// Cached solution from the grinder. /// [ViewVariables] public Entity? GrinderSolution; // Used to cancel the sound. public EntityUid? AudioStream; }