From d82b6e23d69a552f50ffa548365deacf8cc4c0f8 Mon Sep 17 00:00:00 2001 From: ShizCalev Date: Wed, 31 Aug 2022 20:48:15 -0400 Subject: [PATCH] adds structure spawners for electrified grilles, adds greps for some fulltile window spawners (#69528) * adds structure spawner for electrified grilles * sdmm key cleanup --- ..._underground_abandoned_plasma_facility.dmm | 102 ++++++++---------- .../icemoon_underground_frozen_comms.dmm | 26 +++-- _maps/RandomRuins/SpaceRuins/clericden.dmm | 9 +- _maps/RandomRuins/SpaceRuins/deepstorage.dmm | 7 +- _maps/RandomZLevels/snowdin.dmm | 18 ++-- _maps/map_files/KiloStation/KiloStation.dmm | 24 ++--- _maps/map_files/tramstation/tramstation.dmm | 11 +- _maps/shuttles/emergency_monastery.dmm | 5 +- _maps/shuttles/emergency_raven.dmm | 4 +- _maps/shuttles/infiltrator_advanced.dmm | 9 +- _maps/shuttles/pirate_default.dmm | 3 +- _maps/shuttles/ruin_syndicate_dropship.dmm | 3 +- .../objects/effects/spawners/structure.dm | 6 ++ icons/obj/structures_spawners.dmi | Bin 49680 -> 50005 bytes tools/ci/check_grep.sh | 25 +++++ 15 files changed, 121 insertions(+), 131 deletions(-) diff --git a/_maps/RandomRuins/IceRuins/icemoon_underground_abandoned_plasma_facility.dmm b/_maps/RandomRuins/IceRuins/icemoon_underground_abandoned_plasma_facility.dmm index f6fa3e7593f..6fd1fabd3f9 100644 --- a/_maps/RandomRuins/IceRuins/icemoon_underground_abandoned_plasma_facility.dmm +++ b/_maps/RandomRuins/IceRuins/icemoon_underground_abandoned_plasma_facility.dmm @@ -982,8 +982,7 @@ /turf/open/floor/plating/snowed/icemoon, /area/icemoon/underground/explored) "oi" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/spawner, +/obj/effect/spawner/structure/window/hollow/reinforced/directional, /obj/effect/decal/cleanable/glass, /turf/open/floor/plating/icemoon, /area/ruin/plasma_facility/operations) @@ -1172,9 +1171,9 @@ /turf/open/floor/plating/icemoon, /area/ruin/plasma_facility/commons) "ri" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/spawner/east, -/obj/structure/window/reinforced/spawner/west, +/obj/effect/spawner/structure/window/hollow/reinforced/middle{ + dir = 4 + }, /obj/structure/curtain/bounty, /turf/open/floor/plating/icemoon, /area/ruin/plasma_facility/commons) @@ -1194,8 +1193,9 @@ /turf/open/lava/plasma/ice_moon, /area/icemoon/underground/explored) "rE" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/spawner/west, +/obj/effect/spawner/structure/window/hollow/reinforced/directional{ + dir = 8 + }, /obj/effect/decal/cleanable/glass, /obj/structure/window/reinforced/spawner, /turf/open/floor/plating/icemoon, @@ -1355,9 +1355,9 @@ /turf/open/lava/plasma/ice_moon, /area/icemoon/underground/explored) "ul" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/spawner/east, -/obj/structure/window/reinforced/spawner/west, +/obj/effect/spawner/structure/window/hollow/reinforced/middle{ + dir = 4 + }, /obj/effect/decal/cleanable/glass, /obj/structure/window/reinforced/spawner/north, /turf/open/floor/plating/icemoon, @@ -1392,8 +1392,9 @@ "ux" = ( /obj/structure/transit_tube/horizontal, /obj/effect/decal/cleanable/glass, -/obj/structure/grille, -/obj/structure/window/reinforced/spawner/east, +/obj/effect/spawner/structure/window/hollow/reinforced/directional{ + dir = 4 + }, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/plating/icemoon, @@ -1753,10 +1754,9 @@ /turf/open/lava/plasma/ice_moon, /area/icemoon/underground/explored) "Cm" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/spawner, -/obj/structure/window/reinforced/spawner/north, -/obj/structure/window/reinforced/spawner/east, +/obj/effect/spawner/structure/window/hollow/reinforced/end{ + dir = 4 + }, /turf/open/floor/plating, /area/ruin/plasma_facility/commons) "Co" = ( @@ -1789,8 +1789,9 @@ }, /area/ruin/plasma_facility/operations) "CU" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/spawner/east, +/obj/effect/spawner/structure/window/hollow/reinforced/directional{ + dir = 4 + }, /obj/item/shard, /turf/open/floor/plating/icemoon, /area/ruin/plasma_facility/operations) @@ -1855,8 +1856,9 @@ /turf/open/floor/plating/snowed/icemoon, /area/icemoon/underground/explored) "Ea" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/spawner/east, +/obj/effect/spawner/structure/window/hollow/reinforced/directional{ + dir = 4 + }, /obj/item/shard, /turf/open/floor/plating/icemoon, /area/ruin/plasma_facility/commons) @@ -1868,8 +1870,9 @@ /turf/open/lava/plasma/ice_moon, /area/icemoon/underground/explored) "Ef" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/spawner/east, +/obj/effect/spawner/structure/window/hollow/reinforced/directional{ + dir = 4 + }, /turf/open/floor/plating/icemoon, /area/ruin/plasma_facility/operations) "El" = ( @@ -2004,9 +2007,7 @@ /turf/open/floor/plating/snowed/icemoon, /area/ruin/plasma_facility/operations) "HK" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/spawner, -/obj/structure/window/reinforced/spawner/north, +/obj/effect/spawner/structure/window/hollow/reinforced/middle, /turf/open/floor/plating/snowed/icemoon, /area/ruin/plasma_facility/commons) "HS" = ( @@ -2017,8 +2018,9 @@ /turf/open/floor/plating/snowed/icemoon, /area/icemoon/underground/explored) "HX" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/spawner/north, +/obj/effect/spawner/structure/window/hollow/reinforced/directional{ + dir = 1 + }, /obj/item/shard, /turf/open/floor/plating/icemoon, /area/ruin/plasma_facility/operations) @@ -2111,8 +2113,9 @@ /turf/open/floor/iron/dark/textured_half, /area/ruin/plasma_facility/commons) "Ju" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/spawner/west, +/obj/effect/spawner/structure/window/hollow/reinforced/directional{ + dir = 8 + }, /obj/item/shard, /turf/open/floor/plating/icemoon, /area/ruin/plasma_facility/operations) @@ -2220,8 +2223,9 @@ /turf/open/floor/stone, /area/ruin/plasma_facility/commons) "Kx" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/spawner/east, +/obj/effect/spawner/structure/window/hollow/reinforced/directional{ + dir = 4 + }, /obj/item/shard, /obj/effect/decal/cleanable/glass, /turf/open/floor/plating/icemoon, @@ -2698,8 +2702,9 @@ /turf/open/floor/plating/icemoon, /area/ruin/plasma_facility/operations) "Rj" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/spawner/north, +/obj/effect/spawner/structure/window/hollow/reinforced/directional{ + dir = 1 + }, /obj/item/shard, /obj/structure/cable, /turf/open/floor/plating/icemoon, @@ -2735,13 +2740,6 @@ /obj/item/shard, /turf/open/floor/plating/icemoon, /area/icemoon/underground/explored) -"RX" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/spawner/west, -/obj/structure/window/reinforced/spawner/east, -/obj/structure/curtain/bounty, -/turf/open/floor/plating/icemoon, -/area/ruin/plasma_facility/commons) "Sd" = ( /obj/structure/railing{ dir = 8 @@ -2858,13 +2856,6 @@ /obj/item/chair/plastic, /turf/open/floor/plating/icemoon, /area/ruin/plasma_facility/operations) -"UT" = ( -/obj/structure/window/reinforced/spawner, -/obj/structure/grille, -/obj/structure/window/reinforced/spawner/north, -/obj/structure/window/reinforced/spawner/east, -/turf/open/floor/plating, -/area/ruin/plasma_facility/commons) "Ve" = ( /obj/structure/flora/tree/stump, /turf/open/misc/asteroid/snow/icemoon, @@ -2964,8 +2955,7 @@ }, /area/ruin/plasma_facility/operations) "Xj" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/spawner, +/obj/effect/spawner/structure/window/hollow/reinforced/directional, /obj/item/shard, /turf/open/floor/plating/icemoon, /area/ruin/plasma_facility/commons) @@ -3052,9 +3042,7 @@ /turf/open/misc/asteroid/snow/icemoon, /area/icemoon/underground/explored) "YP" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/spawner, -/obj/structure/window/reinforced/spawner/north, +/obj/effect/spawner/structure/window/hollow/reinforced/middle, /turf/open/floor/plating/icemoon, /area/ruin/plasma_facility/commons) "Zf" = ( @@ -3162,9 +3150,9 @@ /turf/open/floor/wood/large, /area/ruin/plasma_facility/commons) "ZN" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/spawner/east, -/obj/structure/window/reinforced/spawner/west, +/obj/effect/spawner/structure/window/hollow/reinforced/middle{ + dir = 4 + }, /turf/open/floor/plating/icemoon, /area/ruin/plasma_facility/operations) "ZR" = ( @@ -3570,7 +3558,7 @@ AG vY vY XI -RX +ri Ea qW ri @@ -3715,7 +3703,7 @@ BJ hK ZH wF -UT +Cm pn PB eC diff --git a/_maps/RandomRuins/IceRuins/icemoon_underground_frozen_comms.dmm b/_maps/RandomRuins/IceRuins/icemoon_underground_frozen_comms.dmm index 1d5c5cc71a7..0b0ebb5161f 100644 --- a/_maps/RandomRuins/IceRuins/icemoon_underground_frozen_comms.dmm +++ b/_maps/RandomRuins/IceRuins/icemoon_underground_frozen_comms.dmm @@ -114,8 +114,9 @@ }, /area/ruin/powered/shuttle) "sM" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/spawner/east, +/obj/effect/spawner/structure/window/hollow/reinforced/directional{ + dir = 4 + }, /obj/item/shard, /obj/effect/decal/cleanable/glass, /turf/open/floor/plating/icemoon, @@ -227,8 +228,9 @@ /area/icemoon/underground/explored) "CH" = ( /obj/structure/window/reinforced/spawner, -/obj/structure/grille, -/obj/structure/window/reinforced/spawner/north, +/obj/effect/spawner/structure/window/hollow/reinforced/directional{ + dir = 1 + }, /obj/effect/decal/cleanable/glass, /turf/open/floor/plating/icemoon, /area/ruin/powered/shuttle) @@ -252,9 +254,9 @@ /turf/open/floor/plating/snowed/smoothed/icemoon, /area/ruin/powered/shuttle) "FP" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/spawner/west, -/obj/structure/window/reinforced/spawner/east, +/obj/effect/spawner/structure/window/hollow/reinforced/middle{ + dir = 4 + }, /obj/effect/decal/cleanable/glass, /turf/open/floor/plating/icemoon, /area/ruin/powered/shuttle) @@ -267,8 +269,9 @@ }, /area/ruin/powered/shuttle) "GH" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/spawner/north, +/obj/effect/spawner/structure/window/hollow/reinforced/directional{ + dir = 1 + }, /obj/item/shard, /obj/effect/decal/cleanable/glass, /turf/open/floor/plating/icemoon, @@ -296,8 +299,9 @@ /turf/open/misc/asteroid/snow/icemoon, /area/icemoon/underground/explored) "Jt" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/spawner/east, +/obj/effect/spawner/structure/window/hollow/reinforced/directional{ + dir = 4 + }, /obj/effect/decal/cleanable/glass, /turf/open/floor/plating/icemoon, /area/ruin/powered/shuttle) diff --git a/_maps/RandomRuins/SpaceRuins/clericden.dmm b/_maps/RandomRuins/SpaceRuins/clericden.dmm index 9dd18cf73e7..04160fea855 100644 --- a/_maps/RandomRuins/SpaceRuins/clericden.dmm +++ b/_maps/RandomRuins/SpaceRuins/clericden.dmm @@ -22,8 +22,7 @@ /turf/open/misc/asteroid/airless, /area/ruin/unpowered/no_grav) "g" = ( -/obj/structure/grille, -/obj/structure/window/fulltile, +/obj/effect/spawner/structure/window, /turf/open/floor/plating, /area/ruin/unpowered/no_grav) "h" = ( @@ -159,8 +158,7 @@ /turf/open/floor/iron/dark/airless, /area/ruin/unpowered/no_grav) "K" = ( -/obj/structure/grille, -/obj/structure/window/fulltile, +/obj/effect/spawner/structure/window, /turf/open/floor/plating/airless, /area/ruin/unpowered/no_grav) "L" = ( @@ -177,8 +175,7 @@ /turf/open/misc/asteroid/airless, /area/ruin/unpowered/no_grav) "O" = ( -/obj/structure/grille, -/obj/structure/window/fulltile, +/obj/effect/spawner/structure/window, /obj/structure/barricade/wooden/crude, /turf/open/floor/plating/airless, /area/ruin/unpowered/no_grav) diff --git a/_maps/RandomRuins/SpaceRuins/deepstorage.dmm b/_maps/RandomRuins/SpaceRuins/deepstorage.dmm index afd2e019f9b..9d02bc3f1b5 100644 --- a/_maps/RandomRuins/SpaceRuins/deepstorage.dmm +++ b/_maps/RandomRuins/SpaceRuins/deepstorage.dmm @@ -2106,7 +2106,7 @@ "fJ" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/computer/atmos_control/noreconnect{ - atmos_chambers = list("deepo2" = "Oxygen Supply"); + atmos_chambers = list("deepo2"="Oxygen Supply"); dir = 8 }, /turf/open/floor/iron, @@ -2426,7 +2426,7 @@ "gC" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/computer/atmos_control/noreconnect{ - atmos_chambers = list("deepn2" = "Nitrogen Supply"); + atmos_chambers = list("deepn2"="Nitrogen Supply"); dir = 8 }, /turf/open/floor/iron, @@ -2505,8 +2505,7 @@ /turf/open/floor/plating, /area/ruin/space/has_grav/deepstorage) "gR" = ( -/obj/structure/grille, -/obj/structure/cable, +/obj/effect/spawner/structure/electrified_grille, /turf/open/floor/plating, /area/ruin/space/has_grav/deepstorage/power) "gT" = ( diff --git a/_maps/RandomZLevels/snowdin.dmm b/_maps/RandomZLevels/snowdin.dmm index b7565abd75e..8022b7c88ec 100644 --- a/_maps/RandomZLevels/snowdin.dmm +++ b/_maps/RandomZLevels/snowdin.dmm @@ -6310,9 +6310,8 @@ /area/awaymission/snowdin/cave/cavern) "rx" = ( /obj/machinery/door/firedoor, -/obj/structure/grille, /obj/structure/window/reinforced/fulltile/ice, -/obj/structure/cable, +/obj/effect/spawner/structure/electrified_grille, /turf/open/floor/plating, /area/awaymission/snowdin/post/cavern2) "ry" = ( @@ -6965,9 +6964,8 @@ /area/awaymission/snowdin/post/cavern1) "uO" = ( /obj/machinery/door/firedoor, -/obj/structure/grille, /obj/structure/window/reinforced/fulltile/ice, -/obj/structure/cable, +/obj/effect/spawner/structure/electrified_grille, /turf/open/floor/plating, /area/awaymission/snowdin/post/cavern1) "uS" = ( @@ -8144,9 +8142,8 @@ /area/awaymission/snowdin/igloo) "zR" = ( /obj/machinery/door/firedoor, -/obj/structure/grille, /obj/structure/window/reinforced/fulltile/ice, -/obj/structure/cable, +/obj/effect/spawner/structure/electrified_grille, /turf/open/floor/plating, /area/awaymission/snowdin/post/mining_dock) "zS" = ( @@ -9511,8 +9508,7 @@ /turf/closed/wall/ice, /area/awaymission/snowdin/post/mining_main) "Ga" = ( -/obj/structure/window/reinforced/fulltile/ice, -/obj/structure/grille, +/obj/effect/spawner/structure/window/ice, /turf/open/floor/plating, /area/awaymission/snowdin/post/mining_main) "Gb" = ( @@ -9525,8 +9521,7 @@ /area/awaymission/snowdin/post/mining_main/robotics) "Ge" = ( /obj/machinery/door/firedoor, -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile/ice, +/obj/effect/spawner/structure/window/ice, /turf/open/floor/plating, /area/awaymission/snowdin/post/mining_main/robotics) "Gf" = ( @@ -9811,8 +9806,7 @@ /area/awaymission/snowdin/post/mining_main/mechbay) "Hj" = ( /obj/machinery/door/firedoor, -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile/ice, +/obj/effect/spawner/structure/window/ice, /turf/open/floor/plating, /area/awaymission/snowdin/post/mining_main/mechbay) "Hk" = ( diff --git a/_maps/map_files/KiloStation/KiloStation.dmm b/_maps/map_files/KiloStation/KiloStation.dmm index ac04c9f89ec..c73debfaa08 100644 --- a/_maps/map_files/KiloStation/KiloStation.dmm +++ b/_maps/map_files/KiloStation/KiloStation.dmm @@ -10166,10 +10166,9 @@ /area/station/service/hydroponics) "dcJ" = ( /obj/effect/decal/cleanable/dirt, -/obj/structure/grille, /obj/structure/sign/warning/electric_shock/directional/west, -/obj/structure/cable, /obj/effect/mapping_helpers/burnt_floor, +/obj/effect/spawner/structure/electrified_grille, /turf/open/floor/plating, /area/station/maintenance/port/fore) "ddb" = ( @@ -11762,9 +11761,8 @@ /area/station/science/xenobiology) "dxz" = ( /obj/effect/decal/cleanable/dirt, -/obj/structure/grille, -/obj/structure/cable, /obj/effect/mapping_helpers/broken_floor, +/obj/effect/spawner/structure/electrified_grille, /turf/open/floor/plating, /area/station/maintenance/port/fore) "dxB" = ( @@ -57415,11 +57413,7 @@ /obj/structure/transit_tube/horizontal{ dir = 1 }, -/obj/structure/grille, -/obj/structure/window/reinforced, -/obj/structure/window/reinforced{ - dir = 1 - }, +/obj/effect/spawner/structure/window/hollow/reinforced/middle, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/structure/cable, @@ -60514,14 +60508,13 @@ }, /area/station/ai_monitored/turret_protected/ai) "rph" = ( -/obj/structure/grille, /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/stripes/line{ dir = 1 }, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, /obj/effect/mapping_helpers/burnt_floor, +/obj/effect/spawner/structure/electrified_grille, /turf/open/floor/plating, /area/station/maintenance/port/greater) "rpl" = ( @@ -67742,12 +67735,11 @@ /turf/open/floor/plating, /area/station/maintenance/disposal) "tmU" = ( -/obj/structure/grille, /obj/structure/barricade/wooden, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/door/airlock/maintenance, /obj/effect/mapping_helpers/airlock/abandoned, -/obj/structure/cable, +/obj/effect/spawner/structure/electrified_grille, /obj/effect/mapping_helpers/airlock/access/any/security/maintenance, /turf/open/floor/iron/dark, /area/station/maintenance/port/aft) @@ -75120,16 +75112,15 @@ /turf/open/floor/iron, /area/station/security/brig) "vtl" = ( -/obj/structure/grille, /obj/structure/barricade/wooden, /obj/machinery/door/airlock/maintenance, /obj/effect/mapping_helpers/airlock/abandoned, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, /obj/effect/mapping_helpers/airlock/unres{ dir = 1 }, /obj/effect/mapping_helpers/airlock/access/all/security/general, +/obj/effect/spawner/structure/electrified_grille, /turf/open/floor/iron/dark, /area/station/maintenance/fore) "vto" = ( @@ -85258,8 +85249,7 @@ /turf/open/floor/iron/dark, /area/station/hallway/primary/central/fore) "yfP" = ( -/obj/structure/grille, -/obj/structure/cable, +/obj/effect/spawner/structure/electrified_grille, /turf/open/floor/plating/rust, /area/station/security/prison) "yfS" = ( diff --git a/_maps/map_files/tramstation/tramstation.dmm b/_maps/map_files/tramstation/tramstation.dmm index d3959326d7b..692f6916011 100644 --- a/_maps/map_files/tramstation/tramstation.dmm +++ b/_maps/map_files/tramstation/tramstation.dmm @@ -45383,9 +45383,7 @@ /turf/open/floor/engine, /area/station/maintenance/disposal/incinerator) "pDW" = ( -/obj/structure/sign/warning/radiation/rad_area/directional/north{ - dir = 1 - }, +/obj/structure/sign/warning/radiation/rad_area/directional/north, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/trimline/neutral/filled/line{ dir = 1 @@ -61307,8 +61305,7 @@ /turf/open/floor/plating, /area/station/engineering/engine_smes) "vfU" = ( -/obj/structure/cable, -/obj/structure/grille, +/obj/effect/spawner/structure/electrified_grille, /obj/effect/turf_decal/sand/plating, /turf/open/floor/plating/airless, /area/mine/explored) @@ -64572,9 +64569,7 @@ /turf/open/floor/iron, /area/station/security/checkpoint/engineering) "wpo" = ( -/obj/structure/sign/warning/radiation/rad_area/directional/north{ - dir = 1 - }, +/obj/structure/sign/warning/radiation/rad_area/directional/north, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/turf_decal/trimline/neutral/filled/line{ diff --git a/_maps/shuttles/emergency_monastery.dmm b/_maps/shuttles/emergency_monastery.dmm index ea520109323..b91d493e4e5 100644 --- a/_maps/shuttles/emergency_monastery.dmm +++ b/_maps/shuttles/emergency_monastery.dmm @@ -970,8 +970,7 @@ /turf/open/floor/iron/dark, /area/shuttle/escape) "nK" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/tinted/fulltile, +/obj/effect/spawner/structure/window/reinforced/tinted, /turf/open/floor/iron/dark, /area/shuttle/escape) "nQ" = ( @@ -2633,7 +2632,7 @@ /obj/docking_port/mobile/emergency{ dwidth = 40; height = 43; - movement_force = list("KNOCKDOWN" = 3, "THROW" = 6); + movement_force = list("KNOCKDOWN"=3,"THROW"=6); name = "\proper a monastery with engines strapped to it"; port_direction = 1; width = 80 diff --git a/_maps/shuttles/emergency_raven.dmm b/_maps/shuttles/emergency_raven.dmm index d0ba8d2b694..003535bca3b 100644 --- a/_maps/shuttles/emergency_raven.dmm +++ b/_maps/shuttles/emergency_raven.dmm @@ -3,8 +3,7 @@ /turf/template_noop, /area/template_noop) "ab" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/plasma/plastitanium, +/obj/effect/spawner/structure/window/reinforced/plasma/plastitanium, /obj/machinery/door/poddoor/preopen{ id = "escape_cockpit_windows"; name = "Cockpit Blast Door" @@ -2076,7 +2075,6 @@ lethal = 1; pixel_x = 5; pixel_y = 32; - req_access = null; req_access = list("command") }, /turf/open/floor/iron/dark, diff --git a/_maps/shuttles/infiltrator_advanced.dmm b/_maps/shuttles/infiltrator_advanced.dmm index 9936f1fdf28..d628e665074 100644 --- a/_maps/shuttles/infiltrator_advanced.dmm +++ b/_maps/shuttles/infiltrator_advanced.dmm @@ -1184,8 +1184,7 @@ /turf/open/floor/pod/dark, /area/shuttle/syndicate/medical) "cx" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/plasma/plastitanium, +/obj/effect/spawner/structure/window/reinforced/plasma/plastitanium, /obj/structure/shuttle/engine/heater, /turf/open/floor/plating, /area/shuttle/syndicate/medical) @@ -1244,8 +1243,7 @@ /turf/closed/wall/r_wall/syndicate, /area/shuttle/syndicate/armory) "cH" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/plasma/plastitanium, +/obj/effect/spawner/structure/window/reinforced/plasma/plastitanium, /obj/structure/shuttle/engine/heater, /turf/open/floor/plating, /area/shuttle/syndicate/armory) @@ -1275,8 +1273,7 @@ /turf/closed/wall/r_wall/syndicate, /area/shuttle/syndicate/hallway) "cN" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/plasma/plastitanium, +/obj/effect/spawner/structure/window/reinforced/plasma/plastitanium, /obj/structure/shuttle/engine/heater, /turf/open/floor/plating, /area/shuttle/syndicate/hallway) diff --git a/_maps/shuttles/pirate_default.dmm b/_maps/shuttles/pirate_default.dmm index 5a999d43860..5a1abdae1fa 100644 --- a/_maps/shuttles/pirate_default.dmm +++ b/_maps/shuttles/pirate_default.dmm @@ -872,8 +872,7 @@ /obj/machinery/door/poddoor/shutters/preopen{ id = "piratebridge" }, -/obj/structure/grille, -/obj/structure/window/reinforced/plasma/plastitanium, +/obj/effect/spawner/structure/window/reinforced/plasma/plastitanium, /turf/open/floor/plating, /area/shuttle/pirate) "ez" = ( diff --git a/_maps/shuttles/ruin_syndicate_dropship.dmm b/_maps/shuttles/ruin_syndicate_dropship.dmm index 0a5d1544221..d43cf4eeb08 100644 --- a/_maps/shuttles/ruin_syndicate_dropship.dmm +++ b/_maps/shuttles/ruin_syndicate_dropship.dmm @@ -156,8 +156,7 @@ /turf/open/floor/iron/dark, /area/shuttle/caravan/syndicate3) "rU" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/plasma/plastitanium, +/obj/effect/spawner/structure/window/reinforced/plasma/plastitanium, /obj/machinery/door/poddoor{ id = "caravansyndicate3_bridge" }, diff --git a/code/game/objects/effects/spawners/structure.dm b/code/game/objects/effects/spawners/structure.dm index 40edbf913f0..e2066c6c5f2 100644 --- a/code/game/objects/effects/spawners/structure.dm +++ b/code/game/objects/effects/spawners/structure.dm @@ -369,3 +369,9 @@ again. if(NORTHWEST) spawn_list = list(/obj/structure/grille, /obj/structure/window/reinforced/plasma/spawner/north, /obj/structure/window/reinforced/plasma/spawner/west) . = ..() + +/obj/effect/spawner/structure/electrified_grille + name = "electrified grill spawner" + icon = 'icons/obj/structures_spawners.dmi' + icon_state = "electrified_grille" + spawn_list = list(/obj/structure/grille, /obj/structure/cable) diff --git a/icons/obj/structures_spawners.dmi b/icons/obj/structures_spawners.dmi index 48bf32e9330845c44cd127dc6c989ee95eebf5d2..8f699f4d711b1639e5831d81fd0522dadc3f441c 100644 GIT binary patch delta 16808 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 delta 16493 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 bHyCWlvIx>)RFD{)29~_6%BwON(+~d-sIBVq diff --git a/tools/ci/check_grep.sh b/tools/ci/check_grep.sh index c8abd410af1..31140fa33b5 100644 --- a/tools/ci/check_grep.sh +++ b/tools/ci/check_grep.sh @@ -157,6 +157,31 @@ if grep -Pzo '"\w+" = \(\n[^)]*?/obj/structure/stairs[/\w]*?,\n[^)]*?/turf/open/ echo -e "${RED}ERROR: Found a staircase on top of a gen_turf. Please replace the gen_turf with a proper turf.${NC}" st=1 fi; +if grep -Pzo '"\w+" = \(\n[^)]*?/obj/structure/grille,\n[^)]*?/obj/structure/cable,\n[^)]*?/area/.+\)' _maps/**/*.dmm; then + echo + echo -e "${RED}ERROR: Found a grille above a cable. Please replace with the proper structure spawner.${NC}" + st=1 +fi; +if grep -Pzo '"\w+" = \(\n[^)]*?/obj/structure/cable,\n[^)]*?/obj/structure/grille,\n[^)]*?/area/.+\)' _maps/**/*.dmm; then + echo + echo -e "${RED}ERROR: Found a grille above a cable. Please replace with the proper structure spawner.${NC}" + st=1 +fi; +if grep -Pzo '"\w+" = \(\n[^)]*?/obj/structure/grille,\n[^)]*?/obj/structure/window/reinforced/fulltile/ice,\n[^)]*?/area/.+\)' _maps/**/*.dmm; then + echo + echo -e "${RED}ERROR: Found grille above a fulltile ice window. Please replace it with the proper structure spawner.${NC}" + st=1 +fi; +if grep -Pzo '"\w+" = \(\n[^)]*?/obj/structure/grille,\n[^)]*?/obj/structure/window[/\w]*?fulltile,\n[^)]*?/area/.+\)' _maps/**/*.dmm; then + echo + echo -e "${RED}ERROR: Found grille above a fulltile window. Please replace it with the proper structure spawner.${NC}" + st=1 +fi; +if grep -Pzo '"\w+" = \(\n[^)]*?/obj/structure/grille,\n[^)]*?/obj/structure/window/reinforced/plasma/plastitanium,\n[^)]*?/area/.+\)' _maps/**/*.dmm; then + echo + echo -e "${RED}ERROR: Found grille above a fulltile plastitanium window. Please replace it with the proper structure spawner.${NC}" + st=1 +fi; if grep -Pzo '/obj/machinery/conveyor/inverted[/\w]*?\{\n[^}]*?dir = [1248];[^}]*?\},?\n' _maps/**/*.dmm; then echo echo -e "${RED}ERROR: Found an inverted conveyor belt with a cardinal dir. Please replace it with a normal conveyor belt.${NC}"