using Robust.Shared.Network;
namespace Content.Server.GameTicking.Rules.Components;
///
/// This is used for globally tracking players that need to be respawned.
/// Used on gamerule entities.
///
[RegisterComponent, Access(typeof(RespawnRuleSystem))]
public sealed partial class RespawnTrackerComponent : Component
{
///
/// A list of the people that should be respawned.
/// Used to make sure that we don't respawn aghosts or observers.
///
[DataField]
public HashSet Players = new();
///
/// The delay between dying and respawning.
///
[DataField]
public TimeSpan RespawnDelay = TimeSpan.Zero;
///
/// A dictionary of player netuserids and when they will respawn.
///
[DataField]
public Dictionary RespawnQueue = new();
///
/// Whether or not to delete the original body when respawning
///
[DataField]
public bool DeleteBody = true;
///
/// Is the spawn timer running at a set time for everyone, or X amount of time since death?
///
[DataField]
public bool Fixed = false;
///
/// Only used if fixed is true
///
[DataField]
public TimeSpan GlobalTimer = TimeSpan.Zero;
}