using Content.Server.Fluids.EntitySystems; using Content.Shared.FixedPoint; namespace Content.Server.Fluids.Components { [RegisterComponent] [Friend(typeof(EvaporationSystem))] public sealed class EvaporationComponent : Component { /// /// Is this entity actively evaporating? This toggle lets us pause evaporation under certain conditions. /// [DataField("evaporationToggle")] public bool EvaporationToggle = true; /// /// 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 above which puddle won't evaporate. Useful when wanting to make sure large puddle will /// remain forever. Defaults to 100. /// [DataField("upperLimit")] public FixedPoint2 UpperLimit = FixedPoint2.New(100); //TODO: Consider setting this back to PuddleComponent.DefaultOverflowVolume once that behaviour is fixed. /// /// The time accumulated since the start. /// [DataField("accumulator")] public float Accumulator = 0f; } }