using Robust.Client.Animations;
using Robust.Client.Graphics;
using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom;
namespace Content.Client.Chemistry.Visualizers;
///
/// A component that makes foam play an animation when it dissolves.
///
[RegisterComponent]
[Access(typeof(FoamVisualizerSystem))]
public sealed partial class FoamVisualsComponent : Component
{
///
/// The id of the animation used when the foam dissolves.
///
public const string AnimationKey = "foamdissolve_animation";
[DataField(customTypeSerializer: typeof(TimeOffsetSerializer))]
public TimeSpan StartTime;
///
/// How long the foam visually dissolves for.
///
[DataField]
public float AnimationTime = 0.5f;
///
/// The state of the entities base sprite RSI that is displayed when the foam dissolves.
/// Cannot use because it does not have and I am not making an engine PR at this time.
///
[DataField]
public string AnimationState = "foam-dissolve";
///
/// The animation used while the foam dissolves.
/// Generated by .
///
[ViewVariables(VVAccess.ReadOnly)]
public Animation Animation = default!;
}