using Content.Shared.Medical.SuitSensor; using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom; namespace Content.Server.Medical.SuitSensors { /// /// Tracking device, embedded in almost all uniforms and jumpsuits. /// If enabled, will report to crew monitoring console owners position and status. /// [RegisterComponent] [Access(typeof(SuitSensorSystem))] public sealed partial class SuitSensorComponent : Component { /// /// Choose a random sensor mode when item is spawned. /// [DataField("randomMode")] public bool RandomMode = true; /// /// If true user can't change suit sensor mode /// [DataField("controlsLocked")] public bool ControlsLocked = false; /// /// Current sensor mode. Can be switched by user verbs. /// [DataField("mode")] public SuitSensorMode Mode = SuitSensorMode.SensorOff; /// /// Activate sensor if user wear it in this slot. /// [DataField("activationSlot")] public string ActivationSlot = "jumpsuit"; /// /// Activate sensor if user has this in a sensor-compatible container. /// [DataField("activationContainer")] public string? ActivationContainer; /// /// How often does sensor update its owners status (in seconds). Limited by the system update rate. /// [DataField("updateRate")] public TimeSpan UpdateRate = TimeSpan.FromSeconds(2f); /// /// Current user that wears suit sensor. Null if nobody wearing it. /// [ViewVariables] public EntityUid? User = null; /// /// Next time when sensor updated owners status /// [DataField("nextUpdate", customTypeSerializer:typeof(TimeOffsetSerializer))] public TimeSpan NextUpdate = TimeSpan.Zero; /// /// The station this suit sensor belongs to. If it's null the suit didn't spawn on a station and the sensor doesn't work. /// [DataField("station")] public EntityUid? StationId = null; /// /// The server the suit sensor sends it state to. /// The suit sensor will try connecting to a new server when no server is connected. /// It does this by calling the servers entity system for performance reasons. /// [DataField("server")] public string? ConnectedServer = null; } }