using Content.Server.Chemistry.EntitySystems; using Content.Shared.Chemistry.Reagent; using Robust.Shared.Prototypes; namespace Content.Server.Chemistry.Components; /// /// A container that transforms its appearance depending on the reagent it contains. /// It returns to its initial state once the reagent is removed. /// e.g. An empty glass changes to a beer glass when beer is added to it. /// /// Should probably be joined with SolutionContainerVisualsComponent when solutions are networked. /// [RegisterComponent, Access(typeof(TransformableContainerSystem))] public sealed partial class TransformableContainerComponent : Component { /// /// This is the initial metadata description for the container. /// It will revert to this when emptied. /// /// It defaults to the description of the parent entity unless overwritten. /// [DataField] public string? InitialDescription; /// /// This stores whatever primary reagent is currently in the container. /// It is used to help determine if a transformation is needed on solution update. /// [DataField] public ProtoId? CurrentReagent; /// /// This returns whether this container in a transformed or initial state. /// [DataField] public bool Transformed; }