From b14964398b7f80fa1710ca7c6a536f6bbe166b17 Mon Sep 17 00:00:00 2001 From: B_Kirill <153602297+B-Kirill@users.noreply.github.com> Date: Fri, 16 Jan 2026 07:21:55 +1000 Subject: [PATCH] Camera map (#39684) * Camera map * I hope this helps * Review 1 * Review 2 * Review 3 * Review 4 * Review 5 * Colorblind mode support * Review 6 * Change design * Map wire * Logic fix * Fix a terrible mistake * Fix * Fix 2 * Small rename * More fix * Better removal * And another fix * Will it work? * It is literally pointless * some small things --- .../UI/SurveillanceCameraMonitorBoundUi.cs | 10 +- .../UI/SurveillanceCameraMonitorWindow.xaml | 84 +++++++--- .../SurveillanceCameraMonitorWindow.xaml.cs | 47 +++++- .../UI/SurveillanceCameraNavMapControl.cs | 130 +++++++++++++++ .../CameraMapVisibilityWireAction.cs | 38 +++++ .../Systems/SurveillanceCameraMapSystem.cs | 148 ++++++++++++++++++ .../SurveillanceCameraMonitorSystem.cs | 19 ++- .../Systems/SurveillanceCameraSystem.cs | 4 +- .../SurveillanceCameraMapComponent.cs | 64 ++++++++ .../SharedSurveillanceCameraMonitorSystem.cs | 4 +- .../surveillance-camera-ui.ftl | 7 + Resources/Prototypes/Wires/layouts.yml | 1 + 12 files changed, 519 insertions(+), 37 deletions(-) create mode 100644 Content.Client/SurveillanceCamera/UI/SurveillanceCameraNavMapControl.cs create mode 100644 Content.Server/SurveillanceCamera/CameraMapVisibilityWireAction.cs create mode 100644 Content.Server/SurveillanceCamera/Systems/SurveillanceCameraMapSystem.cs create mode 100644 Content.Shared/SurveillanceCamera/Components/SurveillanceCameraMapComponent.cs diff --git a/Content.Client/SurveillanceCamera/UI/SurveillanceCameraMonitorBoundUi.cs b/Content.Client/SurveillanceCamera/UI/SurveillanceCameraMonitorBoundUi.cs index e3646c00cc..561744cf62 100644 --- a/Content.Client/SurveillanceCamera/UI/SurveillanceCameraMonitorBoundUi.cs +++ b/Content.Client/SurveillanceCamera/UI/SurveillanceCameraMonitorBoundUi.cs @@ -34,11 +34,17 @@ public sealed class SurveillanceCameraMonitorBoundUserInterface : BoundUserInter _window.SubnetRefresh += OnSubnetRefresh; _window.CameraSwitchTimer += OnCameraSwitchTimer; _window.CameraDisconnect += OnCameraDisconnect; + + var xform = EntMan.GetComponent(Owner); + var gridUid = xform.GridUid ?? xform.MapUid; + + if (gridUid is not null) + _window?.SetMap(gridUid.Value); } - private void OnCameraSelected(string address) + private void OnCameraSelected(string address, string? subnet) { - SendMessage(new SurveillanceCameraMonitorSwitchMessage(address)); + SendMessage(new SurveillanceCameraMonitorSwitchMessage(address, subnet)); } private void OnSubnetRequest(string subnet) diff --git a/Content.Client/SurveillanceCamera/UI/SurveillanceCameraMonitorWindow.xaml b/Content.Client/SurveillanceCamera/UI/SurveillanceCameraMonitorWindow.xaml index 8f996b8171..855a20b17c 100644 --- a/Content.Client/SurveillanceCamera/UI/SurveillanceCameraMonitorWindow.xaml +++ b/Content.Client/SurveillanceCamera/UI/SurveillanceCameraMonitorWindow.xaml @@ -1,25 +1,71 @@ - - - - -