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