using Content.Server.Chemistry.EntitySystems; using Content.Shared.Chemistry.Reagent; using Content.Shared.FixedPoint; using Robust.Shared.Prototypes; using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype; namespace Content.Server.Chemistry.Components; /// /// Basically, monkey cubes. /// But specifically, this component deletes the entity and spawns in a new entity when the entity is exposed to a certain amount of a given reagent. /// [RegisterComponent, Access(typeof(RehydratableSystem))] public sealed partial class RehydratableComponent : Component { /// /// The reagent that must be present to count as hydrated. /// [DataField("catalyst", customTypeSerializer: typeof(PrototypeIdSerializer)), ViewVariables(VVAccess.ReadWrite)] public string CatalystPrototype = "Water"; /// /// The minimum amount of catalyst that must be present to be hydrated. /// [DataField("catalystMinimum"), ViewVariables(VVAccess.ReadWrite)] public FixedPoint2 CatalystMinimum = FixedPoint2.Zero; /// /// The entity to create when hydrated. /// [DataField("possibleSpawns"), ViewVariables(VVAccess.ReadWrite)] public List PossibleSpawns = new(); } /// /// Raised on the rehydrated entity with target being the new entity it became. /// [ByRefEvent] public readonly record struct GotRehydratedEvent(EntityUid Target);