From 3ed0f2c4bbd8c6a7dc89e93e3b904664cfdafd0e Mon Sep 17 00:00:00 2001 From: RedBurningPhoenix <147742474+RedBurningPhoenix@users.noreply.github.com> Date: Sat, 27 Jul 2024 20:47:27 +0500 Subject: [PATCH] SUPER CAMERA(OCHKO) (#501) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * SUPER CAMERA(OCHKO) * Удобный монитор камер и портативный мониторинг для детектива. (#25) * Улучшение мониторинга камер * Портативный монитор камер для дека * чейнжлог * Revert "Удобный монитор камер и портативный мониторинг для детектива. (#25)" This reverts commit adf35bb8f6ddd6256b18841a81b330224ebff103. * Revert "Revert "Удобный монитор камер и портативный мониторинг для детектива. (#25)"" This reverts commit bd30fe45046b7b8508e8277f8c186d03338354cd. * cleanups * its so over --------- Co-authored-by: Vigers Ray <60344369+VigersRay@users.noreply.github.com> Co-authored-by: drdth --- .../ActiveSurveillanceCameraMonitor.cs | 2 +- .../UI/SurveillanceCameraMonitorBoundUi.cs | 32 +-- .../UI/SurveillanceCameraMonitorWindow.xaml | 62 +++--- .../SurveillanceCameraMonitorWindow.xaml.cs | 186 ++++++++---------- .../UI/SurveillanceCameraNavMapControl.cs | 80 ++++++++ Content.Server/Emp/EmpSystem.cs | 1 + .../Components/SurveillanceCameraComponent.cs | 3 +- .../SurveillanceCameraMonitorComponent.cs | 11 +- .../SurveillanceCameraRouterComponent.cs | 5 + .../SurveillanceCameraMicrophoneSystem.cs | 3 +- .../SurveillanceCameraMonitorSystem.cs | 127 ++++++------ .../Systems/SurveillanceCameraRouterSystem.cs | 11 +- .../SurveillanceCameraSpeakerSystem.cs | 2 +- .../Systems/SurveillanceCameraSystem.cs | 65 +++--- .../SurveillanceBodyCameraSystem.cs | 2 + .../SharedSurveillanceCameraMonitorSystem.cs | 28 ++- Resources/Changelog/ChangelogSunrise.yml | 0 .../surveillance-camera-ui.ftl | 3 + .../Machines/surveillance_camera_routers.yml | 11 ++ .../Prototypes/_White/portable_computers.yml | 0 .../portable_camera_viewer.rsi/icon.png | Bin 0 -> 701 bytes .../portable_camera_viewer.rsi/meta.json | 14 ++ 22 files changed, 385 insertions(+), 263 deletions(-) create mode 100644 Content.Client/SurveillanceCamera/UI/SurveillanceCameraNavMapControl.cs create mode 100644 Resources/Changelog/ChangelogSunrise.yml create mode 100644 Resources/Prototypes/_White/portable_computers.yml create mode 100644 Resources/Textures/_Sunrise/Entities/Objects/Devices/portable_camera_viewer.rsi/icon.png create mode 100644 Resources/Textures/_Sunrise/Entities/Objects/Devices/portable_camera_viewer.rsi/meta.json diff --git a/Content.Client/SurveillanceCamera/ActiveSurveillanceCameraMonitor.cs b/Content.Client/SurveillanceCamera/ActiveSurveillanceCameraMonitor.cs index 6b038a3a4a..cd9d29b13b 100644 --- a/Content.Client/SurveillanceCamera/ActiveSurveillanceCameraMonitor.cs +++ b/Content.Client/SurveillanceCamera/ActiveSurveillanceCameraMonitor.cs @@ -3,7 +3,7 @@ namespace Content.Client.SurveillanceCamera; [RegisterComponent] public sealed partial class ActiveSurveillanceCameraMonitorVisualsComponent : Component { - public float TimeLeft = 10f; + public float TimeLeft = 0.5f; public Action? OnFinish; } diff --git a/Content.Client/SurveillanceCamera/UI/SurveillanceCameraMonitorBoundUi.cs b/Content.Client/SurveillanceCamera/UI/SurveillanceCameraMonitorBoundUi.cs index 9132dd6ed5..5cc98ea2c8 100644 --- a/Content.Client/SurveillanceCamera/UI/SurveillanceCameraMonitorBoundUi.cs +++ b/Content.Client/SurveillanceCamera/UI/SurveillanceCameraMonitorBoundUi.cs @@ -14,18 +14,30 @@ public sealed class SurveillanceCameraMonitorBoundUserInterface : BoundUserInter [ViewVariables] private EntityUid? _currentCamera; + private readonly IEntityManager _entManager; public SurveillanceCameraMonitorBoundUserInterface(EntityUid owner, Enum uiKey) : base(owner, uiKey) { _eyeLerpingSystem = EntMan.System(); _surveillanceCameraMonitorSystem = EntMan.System(); + IoCManager.InjectDependencies(this); + _entManager = IoCManager.Resolve(); } protected override void Open() { base.Open(); - _window = new SurveillanceCameraMonitorWindow(); + // Sunrise-start + EntityUid? gridUid = null; + + if (_entManager.TryGetComponent(Owner, out var xform)) + { + gridUid = xform.GridUid; + } + + _window = new SurveillanceCameraMonitorWindow(gridUid); + // Sunrise-end if (State != null) { @@ -35,7 +47,6 @@ public sealed class SurveillanceCameraMonitorBoundUserInterface : BoundUserInter _window.OpenCentered(); _window.CameraSelected += OnCameraSelected; - _window.SubnetOpened += OnSubnetRequest; _window.CameraRefresh += OnCameraRefresh; _window.SubnetRefresh += OnSubnetRefresh; _window.OnClose += Close; @@ -43,14 +54,9 @@ public sealed class SurveillanceCameraMonitorBoundUserInterface : BoundUserInter _window.CameraDisconnect += OnCameraDisconnect; } - private void OnCameraSelected(string address) + private void OnCameraSelected(NetEntity camera) { - SendMessage(new SurveillanceCameraMonitorSwitchMessage(address)); - } - - private void OnSubnetRequest(string subnet) - { - SendMessage(new SurveillanceCameraMonitorSubnetRequestMessage(subnet)); + SendMessage(new SurveillanceCameraMonitorSwitchMessage(camera)); } private void OnCameraSwitchTimer() @@ -82,9 +88,11 @@ public sealed class SurveillanceCameraMonitorBoundUserInterface : BoundUserInter var active = EntMan.GetEntity(cast.ActiveCamera); + _entManager.TryGetComponent(Owner, out var xform); + if (active == null) { - _window.UpdateState(null, cast.Subnets, cast.ActiveAddress, cast.ActiveSubnet, cast.Cameras); + _window.UpdateState(null, cast.ActiveAddress, cast.ActiveCamera); if (_currentCamera != null) { @@ -109,9 +117,11 @@ public sealed class SurveillanceCameraMonitorBoundUserInterface : BoundUserInter if (EntMan.TryGetComponent(active, out var eye)) { - _window.UpdateState(eye.Eye, cast.Subnets, cast.ActiveAddress, cast.ActiveSubnet, cast.Cameras); + _window.UpdateState(eye.Eye, cast.ActiveAddress, cast.ActiveCamera); } } + + _window.ShowCameras(cast.Cameras, xform?.Coordinates); } protected override void Dispose(bool disposing) diff --git a/Content.Client/SurveillanceCamera/UI/SurveillanceCameraMonitorWindow.xaml b/Content.Client/SurveillanceCamera/UI/SurveillanceCameraMonitorWindow.xaml index 8f996b8171..238ff61ae0 100644 --- a/Content.Client/SurveillanceCamera/UI/SurveillanceCameraMonitorWindow.xaml +++ b/Content.Client/SurveillanceCamera/UI/SurveillanceCameraMonitorWindow.xaml @@ -1,25 +1,41 @@ - - - - - -