From 1d51b6a8c841ce14ff7f526b304e051b2205a374 Mon Sep 17 00:00:00 2001 From: Artur Date: Thu, 23 Apr 2020 15:08:24 +0300 Subject: [PATCH] Ports https://github.com/tgstation/tgstation/pull/45444/ --- code/game/machinery/buttons.dm | 11 ++++++++++- code/game/machinery/camera/camera.dm | 5 +++++ code/game/machinery/computer/camera_advanced.dm | 8 ++++++++ code/game/machinery/doors/airlock.dm | 4 ++++ code/game/machinery/doors/poddoor.dm | 3 +++ code/game/machinery/flasher.dm | 3 +++ code/game/machinery/igniter.dm | 3 +++ code/game/machinery/mass_driver.dm | 2 ++ code/game/objects/structures/morgue.dm | 10 +++++++++- 9 files changed, 47 insertions(+), 2 deletions(-) diff --git a/code/game/machinery/buttons.dm b/code/game/machinery/buttons.dm index ad3dd5d720..235da620d7 100644 --- a/code/game/machinery/buttons.dm +++ b/code/game/machinery/buttons.dm @@ -38,7 +38,11 @@ board.one_access = 1 board.accesses = req_one_access -/obj/machinery/button/update_icon_state() + setup_device() + + +/obj/machinery/button/update_icon() + cut_overlays() if(panel_open) icon_state = "button-open" else if(stat & (NOPOWER|BROKEN)) @@ -124,6 +128,11 @@ A.id = id initialized_button = 1 +/obj/machinery/button/connect_to_shuttle(obj/docking_port/mobile/port, obj/docking_port/stationary/dock, idnum, override=FALSE) + if(id && istype(device, /obj/item/assembly/control)) + var/obj/item/assembly/control/A = device + A.id = "[idnum][id]" + /obj/machinery/button/attack_hand(mob/user) . = ..() if(.) diff --git a/code/game/machinery/camera/camera.dm b/code/game/machinery/camera/camera.dm index e386674b9e..5a1547aae0 100644 --- a/code/game/machinery/camera/camera.dm +++ b/code/game/machinery/camera/camera.dm @@ -72,6 +72,11 @@ if(mapload && is_station_level(z) && prob(3) && !start_active) toggle_cam() +/obj/machinery/camera/connect_to_shuttle(obj/docking_port/mobile/port, obj/docking_port/stationary/dock, idnum, override=FALSE) + for(var/i in network) + network -= i + network += "[idnum][i]" + /obj/machinery/camera/Destroy() if(can_use()) toggle_cam(null, 0) //kick anyone viewing out and remove from the camera chunks diff --git a/code/game/machinery/computer/camera_advanced.dm b/code/game/machinery/computer/camera_advanced.dm index 5fe62ebb76..797a32c2db 100644 --- a/code/game/machinery/computer/camera_advanced.dm +++ b/code/game/machinery/computer/camera_advanced.dm @@ -29,9 +29,17 @@ if(lock_override & CAMERA_LOCK_REEBE) z_lock |= SSmapping.levels_by_trait(ZTRAIT_REEBE) +/obj/machinery/computer/camera_advanced/connect_to_shuttle(obj/docking_port/mobile/port, obj/docking_port/stationary/dock, idnum, override=FALSE) + for(var/i in networks) + networks -= i + networks += "[idnum][i]" + /obj/machinery/computer/camera_advanced/syndie icon_keyboard = "syndie_key" +/obj/machinery/computer/camera_advanced/syndie/connect_to_shuttle(obj/docking_port/mobile/port, obj/docking_port/stationary/dock, idnum, override=FALSE) + return //For syndie nuke shuttle, to spy for station. + /obj/machinery/computer/camera_advanced/proc/CreateEye() eyeobj = new() eyeobj.origin = src diff --git a/code/game/machinery/doors/airlock.dm b/code/game/machinery/doors/airlock.dm index 929de49293..cb53ea16e0 100644 --- a/code/game/machinery/doors/airlock.dm +++ b/code/game/machinery/doors/airlock.dm @@ -157,6 +157,10 @@ . = ..() AddComponent(/datum/component/ntnet_interface) +/obj/machinery/door/airlock/connect_to_shuttle(obj/docking_port/mobile/port, obj/docking_port/stationary/dock, idnum, override=FALSE) + if(id_tag) + id_tag = "[idnum][id_tag]" + /obj/machinery/door/airlock/proc/update_other_id() for(var/obj/machinery/door/airlock/A in GLOB.airlocks) if(A.closeOtherId == closeOtherId && A != src) diff --git a/code/game/machinery/doors/poddoor.dm b/code/game/machinery/doors/poddoor.dm index c032ded6b0..4226d8a439 100644 --- a/code/game/machinery/doors/poddoor.dm +++ b/code/game/machinery/doors/poddoor.dm @@ -16,6 +16,9 @@ damage_deflection = 70 poddoor = TRUE +/obj/machinery/door/poddoor/connect_to_shuttle(obj/docking_port/mobile/port, obj/docking_port/stationary/dock, idnum, override=FALSE) + id = "[idnum][id]" + /obj/machinery/door/poddoor/preopen icon_state = "open" density = FALSE diff --git a/code/game/machinery/flasher.dm b/code/game/machinery/flasher.dm index 7bef255aff..1d159e2633 100644 --- a/code/game/machinery/flasher.dm +++ b/code/game/machinery/flasher.dm @@ -34,6 +34,9 @@ else bulb = new(src) +/obj/machinery/flasher/connect_to_shuttle(obj/docking_port/mobile/port, obj/docking_port/stationary/dock, idnum, override=FALSE) + id = "[idnum][id]" + /obj/machinery/flasher/Destroy() QDEL_NULL(bulb) return ..() diff --git a/code/game/machinery/igniter.dm b/code/game/machinery/igniter.dm index 099b51db82..6d49ba88e7 100644 --- a/code/game/machinery/igniter.dm +++ b/code/game/machinery/igniter.dm @@ -53,6 +53,9 @@ else icon_state = "igniter0" +/obj/machinery/igniter/connect_to_shuttle(obj/docking_port/mobile/port, obj/docking_port/stationary/dock, idnum, override=FALSE) + id = "[idnum][id]" + // Wall mounted remote-control igniter. /obj/machinery/sparker diff --git a/code/game/machinery/mass_driver.dm b/code/game/machinery/mass_driver.dm index ab0a0534ab..a8fa31d5fb 100644 --- a/code/game/machinery/mass_driver.dm +++ b/code/game/machinery/mass_driver.dm @@ -11,6 +11,8 @@ var/id = 1 var/drive_range = 50 //this is mostly irrelevant since current mass drivers throw into space, but you could make a lower-range mass driver for interstation transport or something I guess. +/obj/machinery/mass_driver/connect_to_shuttle(obj/docking_port/mobile/port, obj/docking_port/stationary/dock, idnum, override=FALSE) + id = "[idnum][id]" /obj/machinery/mass_driver/proc/drive(amount) if(stat & (BROKEN|NOPOWER)) diff --git a/code/game/objects/structures/morgue.dm b/code/game/objects/structures/morgue.dm index 8cf5b1ee66..6d9e30b25f 100644 --- a/code/game/objects/structures/morgue.dm +++ b/code/game/objects/structures/morgue.dm @@ -225,7 +225,15 @@ GLOBAL_LIST_EMPTY(crematoriums) GLOB.crematoriums.Add(src) ..() -/obj/structure/bodycontainer/crematorium/update_icon_state() +/obj/structure/bodycontainer/crematorium/Initialize() + . = ..() + connected = new /obj/structure/tray/c_tray(src) + connected.connected = src + +/obj/structure/bodycontainer/crematorium/connect_to_shuttle(obj/docking_port/mobile/port, obj/docking_port/stationary/dock, idnum, override=FALSE) + id = "[idnum][id]" + +/obj/structure/bodycontainer/crematorium/update_icon() if(!connected || connected.loc != src) icon_state = "crema0" else