using Content.Shared.DeviceNetwork; using Robust.Shared.Prototypes; namespace Content.Server.SurveillanceCamera; [RegisterComponent] [Access(typeof(SurveillanceCameraMonitorSystem))] public sealed partial class SurveillanceCameraMonitorComponent : Component { /// /// Currently active camera viewed by this monitor. /// [ViewVariables] public EntityUid? ActiveCamera { get; set; } [ViewVariables] public string ActiveCameraAddress { get; set; } = string.Empty; /// /// Last time this monitor was sent a heartbeat. /// [ViewVariables] public float LastHeartbeat { get; set; } /// /// Last time this monitor sent a heartbeat. /// [ViewVariables] public float LastHeartbeatSent { get; set; } /// /// Next camera this monitor is trying to connect to. /// If the monitor has connected to the camera, this should be set to null. /// [ViewVariables] public string? NextCameraAddress { get; set; } /// /// Set of viewers currently looking at this monitor. /// [ViewVariables] public HashSet Viewers { get; } = new(); /// /// Current active subnet. /// [ViewVariables] public ProtoId? ActiveSubnet { get; set; } /// /// Known cameras in this subnet by address with name values. /// This is cleared when the subnet is changed. /// [ViewVariables] public Dictionary KnownCameras { get; } = new(); /// /// The subnets known by this camera monitor. /// [ViewVariables] public Dictionary, string> KnownSubnets { get; } = new(); }