using System.Collections.Generic;
using Content.Shared.Chemistry;
using Robust.Shared.Interfaces.GameObjects;
using Robust.Shared.Interfaces.Serialization;
namespace Content.Shared.Interfaces.Chemistry
{
///
/// Metabolism behavior for a reagent.
///
public interface IMetabolizable : IExposeData
{
///
/// Metabolize the attached reagent. Return the amount of reagent to be removed from the solution.
/// You shouldn't remove the reagent yourself to avoid invalidating the iterator of the metabolism
/// organ that is processing it's reagents.
///
/// The entity containing the solution.
/// The reagent id
/// The time since the last metabolism tick in seconds.
/// The amount of reagent to be removed. The metabolizing organ should handle removing the reagent.
int Metabolize(IEntity solutionEntity, string reagentId, float tickTime);
}
}