From f38ccd7b54d8388be55863389daf224c0fd8b2af Mon Sep 17 00:00:00 2001 From: Qwertytoforty <52090703+Qwertytoforty@users.noreply.github.com> Date: Tue, 29 Oct 2024 17:44:36 -0400 Subject: [PATCH] breaker of rules, I can change your mind (#27235) --- .../RandomRuins/SpaceRuins/syndie_space_base.dmm | 12 ++++++++---- code/game/machinery/camera/camera.dm | 2 ++ code/game/objects/items/devices/camera_bug.dm | 7 +++++-- code/modules/mob/living/silicon/ai/freelook/chunk.dm | 2 ++ 4 files changed, 17 insertions(+), 6 deletions(-) diff --git a/_maps/map_files/RandomRuins/SpaceRuins/syndie_space_base.dmm b/_maps/map_files/RandomRuins/SpaceRuins/syndie_space_base.dmm index 54445ed5d04..fa717338c62 100644 --- a/_maps/map_files/RandomRuins/SpaceRuins/syndie_space_base.dmm +++ b/_maps/map_files/RandomRuins/SpaceRuins/syndie_space_base.dmm @@ -1347,7 +1347,8 @@ /obj/machinery/camera/emp_proof{ c_tag = "Test Lab South"; network = list("SyndicateTestLab"); - dir = 10 + dir = 10; + non_chunking_camera = 1 }, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 9 @@ -1944,7 +1945,8 @@ /obj/machinery/camera/emp_proof{ c_tag = "Test Lab East"; network = list("SyndicateTestLab"); - dir = 8 + dir = 8; + non_chunking_camera = 1 }, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 10 @@ -3538,7 +3540,8 @@ "tS" = ( /obj/machinery/camera/emp_proof{ c_tag = "Test Lab North"; - network = list("SyndicateTestLab") + network = list("SyndicateTestLab"); + non_chunking_camera = 1 }, /turf/simulated/floor/engine, /area/ruin/unpowered/syndicate_space_base/testlab) @@ -4639,7 +4642,8 @@ /obj/machinery/camera/emp_proof{ c_tag = "Test Lab West"; dir = 5; - network = list("SyndicateTestLab") + network = list("SyndicateTestLab"); + non_chunking_camera = 1 }, /turf/simulated/floor/engine, /area/ruin/unpowered/syndicate_space_base/testlab) diff --git a/code/game/machinery/camera/camera.dm b/code/game/machinery/camera/camera.dm index 131bc83a1a3..ccfe7b5ee88 100644 --- a/code/game/machinery/camera/camera.dm +++ b/code/game/machinery/camera/camera.dm @@ -40,6 +40,8 @@ var/detectTime = 0 var/area/station/ai_monitored/area_motion = null var/alarm_delay = 30 // Don't forget, there's another 3 seconds in queueAlarm() + /// If this camera doesnt add to camera chunks. Used by camera bugs. + var/non_chunking_camera = FALSE /obj/machinery/camera/Initialize(mapload, should_add_to_cameranet = TRUE) . = ..() diff --git a/code/game/objects/items/devices/camera_bug.dm b/code/game/objects/items/devices/camera_bug.dm index 439830e01b3..594f45c073c 100644 --- a/code/game/objects/items/devices/camera_bug.dm +++ b/code/game/objects/items/devices/camera_bug.dm @@ -55,7 +55,7 @@ icon = 'icons/obj/device.dmi' icon_state = "wall_bug" w_class = WEIGHT_CLASS_TINY - var/obj/machinery/camera/portable/camera + var/obj/machinery/camera/portable/camera_bug/camera var/index = "REPORT THIS TO CODERS" /obj/item/wall_bug/Initialize(mapload, obj/item/camera_bug/the_bug) @@ -81,10 +81,13 @@ camera_bug.connections++ index = camera_bug.connections - camera = new /obj/machinery/camera/portable(src) + camera = new /obj/machinery/camera/portable/camera_bug(src) camera.network = list("camera_bug[camera_bug.UID()]") camera.c_tag = "Hidden Camera [index]" +/obj/machinery/camera/portable/camera_bug + non_chunking_camera = TRUE + /obj/item/paper/camera_bug name = "Camera Bug Guide" icon_state = "paper" diff --git a/code/modules/mob/living/silicon/ai/freelook/chunk.dm b/code/modules/mob/living/silicon/ai/freelook/chunk.dm index 2af0044d596..142072118e5 100644 --- a/code/modules/mob/living/silicon/ai/freelook/chunk.dm +++ b/code/modules/mob/living/silicon/ai/freelook/chunk.dm @@ -20,6 +20,8 @@ /datum/camerachunk/proc/add_camera(obj/machinery/camera/cam) if(active_cameras[cam] || inactive_cameras[cam]) return + if(cam.non_chunking_camera) + return // Register all even though it is active/inactive. Won't get called incorrectly RegisterSignal(cam, COMSIG_CAMERA_OFF, PROC_REF(deactivate_camera), TRUE) RegisterSignal(cam, COMSIG_CAMERA_ON, PROC_REF(activate_camera), TRUE)