From 9ffab7404e06c7ace810f86e9b3d029cfcb9113a Mon Sep 17 00:00:00 2001 From: VigersRay Date: Wed, 5 Jun 2024 19:23:45 +0300 Subject: [PATCH 1/3] =?UTF-8?q?=D0=A3=D0=BB=D1=83=D1=87=D1=88=D0=B5=D0=BD?= =?UTF-8?q?=D0=B8=D0=B5=20=D0=BC=D0=BE=D0=BD=D0=B8=D1=82=D0=BE=D1=80=D0=B8?= =?UTF-8?q?=D0=BD=D0=B3=D0=B0=20=D0=BA=D0=B0=D0=BC=D0=B5=D1=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ActiveSurveillanceCameraMonitor.cs | 2 +- .../UI/SurveillanceCameraMonitorBoundUi.cs | 36 ++-- .../UI/SurveillanceCameraMonitorWindow.xaml | 62 ++++--- .../SurveillanceCameraMonitorWindow.xaml.cs | 173 ++++++++---------- .../UI/SurveillanceCameraNavMapControl.cs | 80 ++++++++ .../SurveillanceCameraMonitorComponent.cs | 8 +- .../SurveillanceCameraRouterComponent.cs | 5 + .../SurveillanceCameraMonitorSystem.cs | 121 +++++++----- .../Systems/SurveillanceCameraRouterSystem.cs | 5 +- .../Systems/SurveillanceCameraSystem.cs | 15 +- .../SharedSurveillanceCameraMonitorSystem.cs | 30 ++- .../surveillance-camera-ui.ftl | 4 + .../Machines/surveillance_camera_routers.yml | 11 ++ 13 files changed, 352 insertions(+), 200 deletions(-) create mode 100644 Content.Client/SurveillanceCamera/UI/SurveillanceCameraNavMapControl.cs diff --git a/Content.Client/SurveillanceCamera/ActiveSurveillanceCameraMonitor.cs b/Content.Client/SurveillanceCamera/ActiveSurveillanceCameraMonitor.cs index 6b038a3a4ac..df021dda6c6 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; // Sunrise-edit public Action? OnFinish; } diff --git a/Content.Client/SurveillanceCamera/UI/SurveillanceCameraMonitorBoundUi.cs b/Content.Client/SurveillanceCamera/UI/SurveillanceCameraMonitorBoundUi.cs index 9132dd6ed5f..44f7bc5b983 100644 --- a/Content.Client/SurveillanceCamera/UI/SurveillanceCameraMonitorBoundUi.cs +++ b/Content.Client/SurveillanceCamera/UI/SurveillanceCameraMonitorBoundUi.cs @@ -14,18 +14,34 @@ public sealed class SurveillanceCameraMonitorBoundUserInterface : BoundUserInter [ViewVariables] private EntityUid? _currentCamera; + private readonly IEntityManager _entManager; // Sunrise-edit public SurveillanceCameraMonitorBoundUserInterface(EntityUid owner, Enum uiKey) : base(owner, uiKey) { _eyeLerpingSystem = EntMan.System(); _surveillanceCameraMonitorSystem = EntMan.System(); + // Sunrise-start + IoCManager.InjectDependencies(this); + _entManager = IoCManager.Resolve(); + _eyeLerpingSystem = _entManager.EntitySysManager.GetEntitySystem(); + _surveillanceCameraMonitorSystem = _entManager.EntitySysManager.GetEntitySystem(); + // Sunrise-end } 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 +51,6 @@ protected override void Open() _window.OpenCentered(); _window.CameraSelected += OnCameraSelected; - _window.SubnetOpened += OnSubnetRequest; _window.CameraRefresh += OnCameraRefresh; _window.SubnetRefresh += OnSubnetRefresh; _window.OnClose += Close; @@ -43,14 +58,9 @@ protected override void Open() _window.CameraDisconnect += OnCameraDisconnect; } - private void OnCameraSelected(string address) + private void OnCameraSelected(string cameraAddress, string subnetAddress) // Sunrise-edit { - SendMessage(new SurveillanceCameraMonitorSwitchMessage(address)); - } - - private void OnSubnetRequest(string subnet) - { - SendMessage(new SurveillanceCameraMonitorSubnetRequestMessage(subnet)); + SendMessage(new SurveillanceCameraMonitorSwitchMessage(cameraAddress, subnetAddress)); // Sunrise-edit } private void OnCameraSwitchTimer() @@ -82,9 +92,11 @@ protected override void UpdateState(BoundUserInterfaceState state) var active = EntMan.GetEntity(cast.ActiveCamera); + _entManager.TryGetComponent(Owner, out var xform); // Sunrise-edit + if (active == null) { - _window.UpdateState(null, cast.Subnets, cast.ActiveAddress, cast.ActiveSubnet, cast.Cameras); + _window.UpdateState(null, cast.ActiveAddress, cast.ActiveCamera); // Sunrise-edit if (_currentCamera != null) { @@ -109,9 +121,11 @@ protected override void UpdateState(BoundUserInterfaceState state) 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); // Sunrise-edit } } + + _window.ShowCameras(cast.Cameras, xform?.Coordinates); // Sunrise-edit } protected override void Dispose(bool disposing) diff --git a/Content.Client/SurveillanceCamera/UI/SurveillanceCameraMonitorWindow.xaml b/Content.Client/SurveillanceCamera/UI/SurveillanceCameraMonitorWindow.xaml index 8f996b81712..238ff61ae0b 100644 --- a/Content.Client/SurveillanceCamera/UI/SurveillanceCameraMonitorWindow.xaml +++ b/Content.Client/SurveillanceCamera/UI/SurveillanceCameraMonitorWindow.xaml @@ -1,25 +1,41 @@ - - - - - -