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