private void OnSetName(EntityUid uid, SurveillanceCameraComponent component, SurveillanceCameraSetupSetName args) { if (args.UiKey is not SurveillanceCameraSetupUiKey key || key != SurveillanceCameraSetupUiKey.Camera || string.IsNullOrEmpty(args.Name) || args.Name.Length > CameraNameLimit) { return; } component.CameraId = args.Name; component.NameSet = true; UpdateSetupInterface(uid, component); }
private void AddVerbs(EntityUid uid, SurveillanceCameraComponent component, GetVerbsEvent <AlternativeVerb> verbs) { if (!_actionBlocker.CanInteract(verbs.User, uid)) { return; } if (component.NameSet && component.NetworkSet) { return; } AlternativeVerb verb = new(); verb.Text = Loc.GetString("surveillance-camera-setup"); verb.Act = () => OpenSetupInterface(uid, verbs.User, component); verbs.Verbs.Add(verb); }
private void OnSetNetwork(EntityUid uid, SurveillanceCameraComponent component, SurveillanceCameraSetupSetNetwork args) { if (args.UiKey is not SurveillanceCameraSetupUiKey key || key != SurveillanceCameraSetupUiKey.Camera) { return; } if (args.Network < 0 || args.Network >= component.AvailableNetworks.Count) { return; } if (!_prototypeManager.TryIndex <DeviceFrequencyPrototype>(component.AvailableNetworks[args.Network], out var frequency)) { return; } _deviceNetworkSystem.SetReceiveFrequency(uid, frequency.Frequency); component.NetworkSet = true; UpdateSetupInterface(uid, component); }
private void OnPacketReceived(EntityUid uid, SurveillanceCameraComponent component, DeviceNetworkPacketEvent args) { if (!component.Active) { return; } if (!TryComp(uid, out DeviceNetworkComponent? deviceNet)) { return; } if (args.Data.TryGetValue(DeviceNetworkConstants.Command, out string?command)) { var payload = new NetworkPayload() { { DeviceNetworkConstants.Command, string.Empty }, { CameraAddressData, deviceNet.Address }, { CameraNameData, component.CameraId }, { CameraSubnetData, string.Empty } }; var dest = string.Empty; switch (command) { case CameraConnectMessage: if (!args.Data.TryGetValue(CameraAddressData, out dest) || string.IsNullOrEmpty(args.Address)) { return; } payload[DeviceNetworkConstants.Command] = CameraConnectMessage; break; case CameraHeartbeatMessage: if (!args.Data.TryGetValue(CameraAddressData, out dest) || string.IsNullOrEmpty(args.Address)) { return; } payload[DeviceNetworkConstants.Command] = CameraHeartbeatMessage; break; case CameraPingMessage: if (!args.Data.TryGetValue(CameraSubnetData, out string?subnet)) { return; } dest = args.SenderAddress; payload[CameraSubnetData] = subnet; payload[DeviceNetworkConstants.Command] = CameraDataMessage; break; } _deviceNetworkSystem.QueuePacket( uid, dest, payload); } }
private void OnShutdown(EntityUid camera, SurveillanceCameraComponent component, ComponentShutdown args) { Deactivate(camera, component); }
private void OnPowerChanged(EntityUid camera, SurveillanceCameraComponent component, PowerChangedEvent args) { SetActive(camera, args.Powered, component); }