using Content.Server.Fluids.EntitySystems; using Content.Shared.Chemistry.Reagent; using Content.Shared.FixedPoint; using Robust.Shared.Analyzers; using Robust.Shared.GameObjects; using Robust.Shared.Serialization.Manager.Attributes; namespace Content.Server.Fluids.Components { [RegisterComponent] [Friend(typeof(EvaporationSystem))] public sealed class EvaporationComponent : Component { public override string Name => "Evaporation"; /// /// The time that it will take this puddle to lose one fixed unit of solution, in seconds. /// [DataField("evaporateTime")] public float EvaporateTime { get; set; } = 5f; /// /// Name of referenced solution. Defaults to /// [DataField("solution")] public string SolutionName { get; set; } = PuddleComponent.DefaultSolutionName; /// /// Lower limit below which puddle won't evaporate. Useful when wanting to leave a stain. /// Defaults to evaporate completely. /// [DataField("lowerLimit")] public FixedPoint2 LowerLimit = FixedPoint2.Zero; /// /// Upper limit below which puddle won't evaporate. Useful when wanting to make sure large puddle will /// remain forever. Defaults to . /// [DataField("upperLimit")] public FixedPoint2 UpperLimit = PuddleComponent.DefaultOverflowVolume; /// /// The time accumulated since the start. /// public float Accumulator = 0f; } }