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