using Content.Shared.FixedPoint;
using Robust.Shared.GameStates;
using Robust.Shared.Prototypes;
using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom;
namespace Content.Shared.Fluids.Components;
///
/// Added to puddles that contain water so it may evaporate over time.
///
[NetworkedComponent, AutoGenerateComponentPause, AutoGenerateComponentState]
[RegisterComponent, Access(typeof(SharedPuddleSystem))]
public sealed partial class EvaporationComponent : Component
{
///
/// The next time we remove the EvaporationSystem reagent amount from this entity.
///
[AutoNetworkedField, AutoPausedField]
[DataField(customTypeSerializer: typeof(TimeOffsetSerializer))]
public TimeSpan NextTick;
///
/// Evaporation factor. Multiplied by the evaporating speed of the reagent.
///
[DataField]
public FixedPoint2 EvaporationAmount = FixedPoint2.New(1);
///
/// The effect spawned when the puddle fully evaporates.
///
[DataField]
public EntProtoId EvaporationEffect = "PuddleSparkle";
}