using Content.Shared.Chemistry.Reagent; using Robust.Shared.GameObjects; namespace Content.Shared.Chemistry.Metabolizable { /// /// Metabolism behavior for a reagent. /// public interface IMetabolizable { /// /// 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. /// Reagent available to be metabolized. /// The amount of reagent to be removed. The metabolizing organ should handle removing the reagent. ReagentUnit Metabolize(IEntity solutionEntity, string reagentId, float tickTime, ReagentUnit availableReagent); } }