using Robust.Shared.GameStates;
using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom;
namespace Content.Shared.Flash.Components;
///
/// Marks an entity with the as currently flashing.
/// Only used for an Update loop for resetting the visuals.
///
///
/// TODO: Replace this with something like sprite flick once that exists to get rid of the update loop.
///
[RegisterComponent, NetworkedComponent, AutoGenerateComponentState, AutoGenerateComponentPause]
[Access(typeof(SharedFlashSystem))]
public sealed partial class ActiveFlashComponent : Component
{
///
/// Time at which this flash will be considered no longer active.
/// At this time this component will be removed.
///
[DataField(customTypeSerializer: typeof(TimeOffsetSerializer))]
[AutoNetworkedField, AutoPausedField]
public TimeSpan ActiveUntil = TimeSpan.Zero;
}