From 6622beecea1366887dc7819351bbfebcef055546 Mon Sep 17 00:00:00 2001 From: silicons <2003111+silicons@users.noreply.github.com> Date: Tue, 11 Apr 2023 02:04:49 -0700 Subject: [PATCH] tgui cameras now follow the camera if they're moving (#5341) Co-authored-by: silicons --- citadel.dme | 1 + code/controllers/subsystem/processing/moving_cameras.dm | 4 ++++ code/modules/tgui/modules/camera.dm | 8 ++++++++ 3 files changed, 13 insertions(+) create mode 100644 code/controllers/subsystem/processing/moving_cameras.dm diff --git a/citadel.dme b/citadel.dme index 524be14a6b4..ff6e8df3bca 100644 --- a/citadel.dme +++ b/citadel.dme @@ -544,6 +544,7 @@ #include "code\controllers\subsystem\processing\circuits.dm" #include "code\controllers\subsystem\processing\fastprocess.dm" #include "code\controllers\subsystem\processing\instruments.dm" +#include "code\controllers\subsystem\processing\moving_cameras.dm" #include "code\controllers\subsystem\processing\obj.dm" #include "code\controllers\subsystem\processing\pathfinder.dm" #include "code\controllers\subsystem\processing\processing.dm" diff --git a/code/controllers/subsystem/processing/moving_cameras.dm b/code/controllers/subsystem/processing/moving_cameras.dm new file mode 100644 index 00000000000..683c11e854c --- /dev/null +++ b/code/controllers/subsystem/processing/moving_cameras.dm @@ -0,0 +1,4 @@ +PROCESSING_SUBSYSTEM_DEF(moving_cameras) + name = "Camera Movement" + wait = 5 + stat_tag = "MCAM" diff --git a/code/modules/tgui/modules/camera.dm b/code/modules/tgui/modules/camera.dm index c97872c2142..5946642f4f9 100644 --- a/code/modules/tgui/modules/camera.dm +++ b/code/modules/tgui/modules/camera.dm @@ -61,6 +61,8 @@ cam_foreground.add_overlay(noise) /datum/tgui_module_old/camera/Destroy() + STOP_PROCESSING(SSmoving_cameras, src) + if(active_camera) UnregisterSignal(active_camera, COMSIG_MOVABLE_MOVED) active_camera = null @@ -136,6 +138,7 @@ if(active_camera) UnregisterSignal(active_camera, COMSIG_MOVABLE_MOVED) active_camera = C + START_PROCESSING(SSmoving_cameras, src) RegisterSignal(active_camera, COMSIG_MOVABLE_MOVED, .proc/update_active_camera_screen) playsound(ui_host(), get_sfx(SFX_ALIAS_TERMINAL), 25, FALSE) update_active_camera_screen() @@ -168,6 +171,11 @@ update_active_camera_screen() . = TRUE +/datum/tgui_module_old/camera/process() + if(isnull(active_camera)) + return PROCESS_KILL + update_active_camera_screen() + /datum/tgui_module_old/camera/proc/update_active_camera_screen() // Show static if can't use the camera if(!active_camera?.can_use())