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