From 3d477b3427453db0c27bbbb3f13d3cfedefa913a Mon Sep 17 00:00:00 2001 From: S34NW <12197162+S34NW@users.noreply.github.com> Date: Fri, 29 Oct 2021 20:44:11 +0100 Subject: [PATCH 1/4] leys you use id on spawners to pass them to windows --- code/game/objects/effects/spawners/windowspawner.dm | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/code/game/objects/effects/spawners/windowspawner.dm b/code/game/objects/effects/spawners/windowspawner.dm index 3a91c4d4cc1..bbe074965f1 100644 --- a/code/game/objects/effects/spawners/windowspawner.dm +++ b/code/game/objects/effects/spawners/windowspawner.dm @@ -7,6 +7,8 @@ var/window_to_spawn_regular = /obj/structure/window/basic var/window_to_spawn_full = /obj/structure/window/full/basic anchored = TRUE // No sliding out while you prime + /// Used to link electrochromic windows to buttons + var/id /obj/effect/spawner/window/Initialize(mapload) . = ..() @@ -25,8 +27,14 @@ continue var/obj/structure/window/WI = new window_to_spawn_regular(get_turf(src)) WI.dir = cdir + if(id) + var/obj/structure/window/reinforced/polarized/WIP = WI + WIP.id = id else - new window_to_spawn_full(get_turf(src)) + var/obj/structure/window/WI = new window_to_spawn_full(get_turf(src)) + if(id) + var/obj/structure/window/full/reinforced/polarized/WIP = WI + WIP.id = id if(useGrille) new /obj/structure/grille(get_turf(src)) From 991da9a09bf864479c40f1a302df8768b17cef27 Mon Sep 17 00:00:00 2001 From: S34NW <12197162+S34NW@users.noreply.github.com> Date: Mon, 1 Nov 2021 22:33:34 +0000 Subject: [PATCH 2/4] safeties --- code/game/objects/effects/spawners/windowspawner.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/game/objects/effects/spawners/windowspawner.dm b/code/game/objects/effects/spawners/windowspawner.dm index bbe074965f1..476b7be36f2 100644 --- a/code/game/objects/effects/spawners/windowspawner.dm +++ b/code/game/objects/effects/spawners/windowspawner.dm @@ -27,12 +27,12 @@ continue var/obj/structure/window/WI = new window_to_spawn_regular(get_turf(src)) WI.dir = cdir - if(id) + if(istype(src, /obj/effect/spawner/window/reinforced/polarized) && id) var/obj/structure/window/reinforced/polarized/WIP = WI WIP.id = id else var/obj/structure/window/WI = new window_to_spawn_full(get_turf(src)) - if(id) + if(istype(src, /obj/effect/spawner/window/reinforced/polarized) && id) var/obj/structure/window/full/reinforced/polarized/WIP = WI WIP.id = id From 84a027b2bea4a096c1b87c76cf1c6502d6d02a09 Mon Sep 17 00:00:00 2001 From: S34NW <12197162+S34NW@users.noreply.github.com> Date: Wed, 3 Nov 2021 13:13:48 +0000 Subject: [PATCH 3/4] crazylemon suggestion --- code/game/objects/effects/misc.dm | 8 ++++++ .../objects/effects/spawners/windowspawner.dm | 25 +++++++++++-------- 2 files changed, 22 insertions(+), 11 deletions(-) diff --git a/code/game/objects/effects/misc.dm b/code/game/objects/effects/misc.dm index a0006fd00d6..e0300d6436c 100644 --- a/code/game/objects/effects/misc.dm +++ b/code/game/objects/effects/misc.dm @@ -74,6 +74,14 @@ /obj/effect/spawner name = "object spawner" +/** + * Used when we want to pass vars from a spawner to a spawned object + * + * o - The spawned object we want to pass a var to + */ +/obj/effect/spawner/proc/synchronize_variables(atom/a) + return + /obj/effect/list_container name = "list container" diff --git a/code/game/objects/effects/spawners/windowspawner.dm b/code/game/objects/effects/spawners/windowspawner.dm index 476b7be36f2..3e02c4f95fa 100644 --- a/code/game/objects/effects/spawners/windowspawner.dm +++ b/code/game/objects/effects/spawners/windowspawner.dm @@ -7,12 +7,11 @@ var/window_to_spawn_regular = /obj/structure/window/basic var/window_to_spawn_full = /obj/structure/window/full/basic anchored = TRUE // No sliding out while you prime - /// Used to link electrochromic windows to buttons - var/id /obj/effect/spawner/window/Initialize(mapload) . = ..() var/turf/T = get_turf(src) + var/obj/structure/window/WI for(var/obj/structure/grille/G in get_turf(src)) // Complain noisily log_runtime(EXCEPTION("Extra grille on turf: ([T.x],[T.y],[T.z])"), src) @@ -25,16 +24,11 @@ break if(!cdir) continue - var/obj/structure/window/WI = new window_to_spawn_regular(get_turf(src)) + WI = new window_to_spawn_regular(get_turf(src)) WI.dir = cdir - if(istype(src, /obj/effect/spawner/window/reinforced/polarized) && id) - var/obj/structure/window/reinforced/polarized/WIP = WI - WIP.id = id else - var/obj/structure/window/WI = new window_to_spawn_full(get_turf(src)) - if(istype(src, /obj/effect/spawner/window/reinforced/polarized) && id) - var/obj/structure/window/full/reinforced/polarized/WIP = WI - WIP.id = id + WI = new window_to_spawn_full(get_turf(src)) + synchronize_variables(WI) if(useGrille) new /obj/structure/grille(get_turf(src)) @@ -42,7 +36,6 @@ air_update_turf(TRUE) //atmos can pass otherwise return INITIALIZE_HINT_QDEL - /obj/effect/spawner/window/reinforced name = "reinforced window spawner" icon_state = "rwindow_spawner" @@ -72,6 +65,16 @@ icon_state = "ewindow_spawner" window_to_spawn_regular = /obj/structure/window/reinforced/polarized window_to_spawn_full = /obj/structure/window/full/reinforced/polarized + /// Used to link electrochromic windows to buttons + var/id + +/obj/effect/spawner/window/reinforced/polarized/synchronize_variables(atom/a) + if(useFull) + var/obj/structure/window/full/reinforced/polarized/p = a + p.id = id + else + var/obj/structure/window/reinforced/polarized/p = a + p.id = id /obj/effect/spawner/window/shuttle name = "shuttle window spawner" From 53d8fe677d471219d86368723a649fd043dde07c Mon Sep 17 00:00:00 2001 From: S34N <12197162+S34NW@users.noreply.github.com> Date: Thu, 4 Nov 2021 17:50:44 +0000 Subject: [PATCH 4/4] Update code/game/objects/effects/misc.dm --- code/game/objects/effects/misc.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/objects/effects/misc.dm b/code/game/objects/effects/misc.dm index e0300d6436c..6820826e44b 100644 --- a/code/game/objects/effects/misc.dm +++ b/code/game/objects/effects/misc.dm @@ -77,7 +77,7 @@ /** * Used when we want to pass vars from a spawner to a spawned object * - * o - The spawned object we want to pass a var to + * a - The spawned object we want to pass a var to */ /obj/effect/spawner/proc/synchronize_variables(atom/a) return