From 6cbb382f4c87a89f49a68b473d2d01233c1aa2e1 Mon Sep 17 00:00:00 2001 From: Tastyfish Date: Sat, 4 Feb 2023 12:54:22 -0500 Subject: [PATCH] [MODULAR] Adds cryo to permabrig 2: Electric Grillaboo (#18556) * Adds prison-specific cryo * Fix cryo console icon * maps --- ...oon_underground_syndicate_base1_skyrat.dmm | 5 +--- ...avaland_surface_syndicate_base1_skyrat.dmm | 5 +--- .../SpaceRuins/skyrat/cargodiselost.dmm | 5 +--- .../SpaceRuins/skyrat/interdynefob.dmm | 10 ++----- .../SpaceRuins/skyrat/port_tarkon/defcon2.dmm | 5 +--- .../SpaceRuins/skyrat/port_tarkon/defcon3.dmm | 5 +--- .../SpaceRuins/skyrat/port_tarkon/defcon4.dmm | 5 +--- .../SpaceRuins/skyrat/port_tarkon/defcon5.dmm | 5 +--- .../SpaceRuins/spacehotel_skyrat.dmm | 4 +-- _maps/map_files/VoidRaptor/VoidRaptor.dmm | 10 ++----- _maps/map_files/generic/CentCom_skyrat_z2.dmm | 8 ++---- .../deltastation/deltastation_cryo.dmm | 5 +--- .../templates/icebox/icebox_cryo.dmm | 4 +-- .../kilostation/kilostation_cryo.dmm | 5 +--- .../metastation/metastation_cryo.dmm | 4 +-- .../tramstation/tramstation_cryo.dmm | 5 +--- .../automapper/code/area_spawn_entries.dm | 11 +++++++ .../modules/cryosleep/code/cryopod.dm | 27 ++++++++++++++++-- .../modules/cryosleep/icons/cryogenics.dmi | Bin 10148 -> 11831 bytes .../modules/mapping/code/mob_spawns.dm | 4 +++ .../Scripts_Skyrat/cryo_console_dirs.txt | 4 +++ 21 files changed, 63 insertions(+), 73 deletions(-) create mode 100644 tools/UpdatePaths/Scripts_Skyrat/cryo_console_dirs.txt diff --git a/_maps/RandomRuins/IceRuins/skyrat/icemoon_underground_syndicate_base1_skyrat.dmm b/_maps/RandomRuins/IceRuins/skyrat/icemoon_underground_syndicate_base1_skyrat.dmm index ced8864b7bc..6d661549b9e 100644 --- a/_maps/RandomRuins/IceRuins/skyrat/icemoon_underground_syndicate_base1_skyrat.dmm +++ b/_maps/RandomRuins/IceRuins/skyrat/icemoon_underground_syndicate_base1_skyrat.dmm @@ -2211,10 +2211,7 @@ /turf/open/floor/plating, /area/ruin/syndicate_lava_base/main) "tx" = ( -/obj/machinery/computer/cryopod/interdyne{ - dir = 4; - pixel_x = -24 - }, +/obj/machinery/computer/cryopod/interdyne/directional/west, /obj/machinery/cryopod{ dir = 4 }, diff --git a/_maps/RandomRuins/LavaRuins/skyrat/lavaland_surface_syndicate_base1_skyrat.dmm b/_maps/RandomRuins/LavaRuins/skyrat/lavaland_surface_syndicate_base1_skyrat.dmm index 2dddeb9a30a..e486361c620 100644 --- a/_maps/RandomRuins/LavaRuins/skyrat/lavaland_surface_syndicate_base1_skyrat.dmm +++ b/_maps/RandomRuins/LavaRuins/skyrat/lavaland_surface_syndicate_base1_skyrat.dmm @@ -4142,10 +4142,7 @@ /obj/machinery/cryopod{ dir = 4 }, -/obj/machinery/computer/cryopod/interdyne{ - dir = 4; - pixel_x = -24 - }, +/obj/machinery/computer/cryopod/interdyne/directional/west, /turf/open/floor/iron, /area/ruin/syndicate_lava_base/dormitories) "Qk" = ( diff --git a/_maps/RandomRuins/SpaceRuins/skyrat/cargodiselost.dmm b/_maps/RandomRuins/SpaceRuins/skyrat/cargodiselost.dmm index 8bd1fe4d7d0..69d96b50a70 100644 --- a/_maps/RandomRuins/SpaceRuins/skyrat/cargodiselost.dmm +++ b/_maps/RandomRuins/SpaceRuins/skyrat/cargodiselost.dmm @@ -996,10 +996,7 @@ /area/ruin/space/has_grav/cargodise_freighter/cargo) "re" = ( /obj/machinery/light/directional/west, -/obj/machinery/computer/cryopod{ - dir = 4; - pixel_x = -24 - }, +/obj/machinery/computer/cryopod/directional/west, /obj/effect/turf_decal/tile/green/half/contrasted{ dir = 8 }, diff --git a/_maps/RandomRuins/SpaceRuins/skyrat/interdynefob.dmm b/_maps/RandomRuins/SpaceRuins/skyrat/interdynefob.dmm index f8a26941cbf..d02564d8584 100644 --- a/_maps/RandomRuins/SpaceRuins/skyrat/interdynefob.dmm +++ b/_maps/RandomRuins/SpaceRuins/skyrat/interdynefob.dmm @@ -3695,10 +3695,7 @@ /turf/open/floor/engine, /area/ruin/space/has_grav/skyrat/interdynefob/engineering) "ps" = ( -/obj/machinery/computer/cryopod/interdyne{ - dir = 4; - pixel_x = -24 - }, +/obj/machinery/computer/cryopod/interdyne/directional/west, /obj/structure/table, /obj/effect/turf_decal/trimline/dark_green/filled/line{ dir = 8 @@ -9292,10 +9289,7 @@ color = "#00ff00"; name = "green" }, -/obj/machinery/computer/cryopod/interdyne{ - dir = 8; - pixel_x = 24 - }, +/obj/machinery/computer/cryopod/interdyne/directional/east, /turf/open/floor/mineral/plastitanium/red, /area/ruin/space/has_grav/skyrat/interdynefob/security/prison) "OU" = ( diff --git a/_maps/RandomRuins/SpaceRuins/skyrat/port_tarkon/defcon2.dmm b/_maps/RandomRuins/SpaceRuins/skyrat/port_tarkon/defcon2.dmm index 7ada6b20977..d7907be3596 100644 --- a/_maps/RandomRuins/SpaceRuins/skyrat/port_tarkon/defcon2.dmm +++ b/_maps/RandomRuins/SpaceRuins/skyrat/port_tarkon/defcon2.dmm @@ -8734,10 +8734,7 @@ /turf/open/floor/iron, /area/ruin/space/has_grav/port_tarkon/starboardhall) "Wn" = ( -/obj/machinery/computer/cryopod/tarkon{ - dir = 4; - pixel_x = -24 - }, +/obj/machinery/computer/cryopod/tarkon/directional/west, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/decal/cleanable/dirt/dust, diff --git a/_maps/RandomRuins/SpaceRuins/skyrat/port_tarkon/defcon3.dmm b/_maps/RandomRuins/SpaceRuins/skyrat/port_tarkon/defcon3.dmm index 6cfec6e3b80..cb6a73bd395 100644 --- a/_maps/RandomRuins/SpaceRuins/skyrat/port_tarkon/defcon3.dmm +++ b/_maps/RandomRuins/SpaceRuins/skyrat/port_tarkon/defcon3.dmm @@ -8318,10 +8318,7 @@ "Wn" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/obj/machinery/computer/cryopod/tarkon{ - dir = 4; - pixel_x = -24 - }, +/obj/machinery/computer/cryopod/tarkon/directional/west, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, diff --git a/_maps/RandomRuins/SpaceRuins/skyrat/port_tarkon/defcon4.dmm b/_maps/RandomRuins/SpaceRuins/skyrat/port_tarkon/defcon4.dmm index 3002f0d28e6..99c06c71608 100644 --- a/_maps/RandomRuins/SpaceRuins/skyrat/port_tarkon/defcon4.dmm +++ b/_maps/RandomRuins/SpaceRuins/skyrat/port_tarkon/defcon4.dmm @@ -7378,10 +7378,7 @@ /turf/open/floor/iron, /area/ruin/space/has_grav/port_tarkon/secoff) "Wn" = ( -/obj/machinery/computer/cryopod/tarkon{ - dir = 4; - pixel_x = -24 - }, +/obj/machinery/computer/cryopod/tarkon/directional/west, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/decal/cleanable/dirt/dust, diff --git a/_maps/RandomRuins/SpaceRuins/skyrat/port_tarkon/defcon5.dmm b/_maps/RandomRuins/SpaceRuins/skyrat/port_tarkon/defcon5.dmm index 5df8f47e976..3065c970a32 100644 --- a/_maps/RandomRuins/SpaceRuins/skyrat/port_tarkon/defcon5.dmm +++ b/_maps/RandomRuins/SpaceRuins/skyrat/port_tarkon/defcon5.dmm @@ -8118,10 +8118,7 @@ "Wn" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/computer/cryopod/tarkon{ - dir = 4; - pixel_x = -24 - }, +/obj/machinery/computer/cryopod/tarkon/directional/west, /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/iron, /area/ruin/space/has_grav/port_tarkon/centerhall) diff --git a/_maps/RandomRuins/SpaceRuins/spacehotel_skyrat.dmm b/_maps/RandomRuins/SpaceRuins/spacehotel_skyrat.dmm index a5814b7a4e4..4420e429314 100644 --- a/_maps/RandomRuins/SpaceRuins/spacehotel_skyrat.dmm +++ b/_maps/RandomRuins/SpaceRuins/spacehotel_skyrat.dmm @@ -4985,9 +4985,7 @@ /turf/open/floor/iron/white, /area/ruin/space/has_grav/hotel) "BT" = ( -/obj/machinery/computer/cryopod{ - pixel_y = 23 - }, +/obj/machinery/computer/cryopod/directional/north, /obj/effect/turf_decal/tile/dark/opposingcorners, /turf/open/floor/iron, /area/ruin/space/has_grav/hotel/bar) diff --git a/_maps/map_files/VoidRaptor/VoidRaptor.dmm b/_maps/map_files/VoidRaptor/VoidRaptor.dmm index ad7bbeda8f6..976ca4b0bb4 100644 --- a/_maps/map_files/VoidRaptor/VoidRaptor.dmm +++ b/_maps/map_files/VoidRaptor/VoidRaptor.dmm @@ -9984,10 +9984,7 @@ /turf/open/floor/catwalk_floor/iron_smooth, /area/station/maintenance/starboard/lesser) "cYZ" = ( -/obj/machinery/computer/cryopod{ - dir = 8; - pixel_x = 32 - }, +/obj/machinery/computer/cryopod/directional/east, /obj/machinery/light/warm/directional/east, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 8 @@ -44187,10 +44184,7 @@ /obj/machinery/cryopod{ dir = 4 }, -/obj/machinery/computer/cryopod{ - dir = 4; - pixel_x = -24 - }, +/obj/machinery/computer/cryopod/directional/west, /obj/effect/turf_decal/delivery/white{ color = "#00ff00" }, diff --git a/_maps/map_files/generic/CentCom_skyrat_z2.dmm b/_maps/map_files/generic/CentCom_skyrat_z2.dmm index cae7b71b1d0..c01f9b0d5e8 100644 --- a/_maps/map_files/generic/CentCom_skyrat_z2.dmm +++ b/_maps/map_files/generic/CentCom_skyrat_z2.dmm @@ -4874,9 +4874,7 @@ /turf/open/floor/iron, /area/centcom/interlink) "bNi" = ( -/obj/machinery/computer/cryopod{ - pixel_x = -32 - }, +/obj/machinery/computer/cryopod/directional/west, /obj/machinery/cryopod/quiet{ dir = 1 }, @@ -9301,9 +9299,7 @@ /turf/open/floor/iron, /area/centcom/interlink) "nqQ" = ( -/obj/machinery/computer/cryopod{ - pixel_y = 32 - }, +/obj/machinery/computer/cryopod/directional/north, /obj/effect/landmark/latejoin, /obj/effect/turf_decal/trimline/blue/filled/line{ dir = 1 diff --git a/_maps/skyrat/automapper/templates/deltastation/deltastation_cryo.dmm b/_maps/skyrat/automapper/templates/deltastation/deltastation_cryo.dmm index 841b4a8df4c..00478d5dbe6 100644 --- a/_maps/skyrat/automapper/templates/deltastation/deltastation_cryo.dmm +++ b/_maps/skyrat/automapper/templates/deltastation/deltastation_cryo.dmm @@ -3,10 +3,7 @@ /turf/closed/wall, /area/station/commons/fitness/recreation) "e" = ( -/obj/machinery/computer/cryopod{ - dir = 8; - pixel_x = 32 - }, +/obj/machinery/computer/cryopod/directional/east, /obj/machinery/light/directional/east, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 8 diff --git a/_maps/skyrat/automapper/templates/icebox/icebox_cryo.dmm b/_maps/skyrat/automapper/templates/icebox/icebox_cryo.dmm index e5476e58afd..7e5289b21a5 100644 --- a/_maps/skyrat/automapper/templates/icebox/icebox_cryo.dmm +++ b/_maps/skyrat/automapper/templates/icebox/icebox_cryo.dmm @@ -33,9 +33,7 @@ /turf/open/floor/iron/dark, /area/station/common/cryopods) "k" = ( -/obj/machinery/computer/cryopod{ - pixel_y = 32 - }, +/obj/machinery/computer/cryopod/directional/north, /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, diff --git a/_maps/skyrat/automapper/templates/kilostation/kilostation_cryo.dmm b/_maps/skyrat/automapper/templates/kilostation/kilostation_cryo.dmm index df731d4539a..18b8f1140b5 100644 --- a/_maps/skyrat/automapper/templates/kilostation/kilostation_cryo.dmm +++ b/_maps/skyrat/automapper/templates/kilostation/kilostation_cryo.dmm @@ -33,10 +33,7 @@ /turf/open/floor/iron, /area/station/common/cryopods) "j" = ( -/obj/machinery/computer/cryopod{ - dir = 8; - pixel_x = 32 - }, +/obj/machinery/computer/cryopod/directional/east, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/common/cryopods) diff --git a/_maps/skyrat/automapper/templates/metastation/metastation_cryo.dmm b/_maps/skyrat/automapper/templates/metastation/metastation_cryo.dmm index 86112ecd36e..77308b7d89d 100644 --- a/_maps/skyrat/automapper/templates/metastation/metastation_cryo.dmm +++ b/_maps/skyrat/automapper/templates/metastation/metastation_cryo.dmm @@ -23,9 +23,7 @@ /area/station/common/cryopods) "v" = ( /obj/structure/cable, -/obj/machinery/computer/cryopod{ - pixel_y = 32 - }, +/obj/machinery/computer/cryopod/directional/north, /obj/machinery/light/directional/north, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, diff --git a/_maps/skyrat/automapper/templates/tramstation/tramstation_cryo.dmm b/_maps/skyrat/automapper/templates/tramstation/tramstation_cryo.dmm index 975a87635e2..68f866996fa 100644 --- a/_maps/skyrat/automapper/templates/tramstation/tramstation_cryo.dmm +++ b/_maps/skyrat/automapper/templates/tramstation/tramstation_cryo.dmm @@ -294,10 +294,7 @@ /obj/machinery/cryopod{ dir = 4 }, -/obj/machinery/computer/cryopod{ - dir = 4; - pixel_x = -32 - }, +/obj/machinery/computer/cryopod/directional/west, /turf/open/floor/iron/dark, /area/station/common/cryopods) "O" = ( diff --git a/modular_skyrat/modules/automapper/code/area_spawn_entries.dm b/modular_skyrat/modules/automapper/code/area_spawn_entries.dm index a31811fc8bf..95332317e36 100644 --- a/modular_skyrat/modules/automapper/code/area_spawn_entries.dm +++ b/modular_skyrat/modules/automapper/code/area_spawn_entries.dm @@ -56,6 +56,17 @@ desired_atom = /obj/machinery/posialert mode = AREA_SPAWN_MODE_MOUNT_WALL +/datum/area_spawn/prison_cryo_console + // Keep to one area so it's in the same area as the pods, which is required. + target_areas = list(/area/station/security/prison) + desired_atom = /obj/machinery/computer/cryopod + mode = AREA_SPAWN_MODE_MOUNT_WALL + +/datum/area_spawn/prison_cryopod + target_areas = list(/area/station/security/prison) + desired_atom = /obj/machinery/cryopod/prison + mode = AREA_SPAWN_MODE_MOUNT_WALL + // Job spawners /datum/area_spawn/secmed_landmark target_areas = list(/area/station/security/medical, /area/station/security/brig) diff --git a/modular_skyrat/modules/cryosleep/code/cryopod.dm b/modular_skyrat/modules/cryosleep/code/cryopod.dm index 202fea304a9..697a358dd2e 100644 --- a/modular_skyrat/modules/cryosleep/code/cryopod.dm +++ b/modular_skyrat/modules/cryosleep/code/cryopod.dm @@ -40,6 +40,7 @@ GLOBAL_LIST_EMPTY(valid_cryopods) /// The channel to be broadcast on, valid values are the values of any of the "RADIO_CHANNEL_" defines. var/announcement_channel = null // RADIO_CHANNEL_COMMON doesn't work here. +MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/computer/cryopod, 32) /obj/machinery/computer/cryopod/Initialize(mapload) . = ..() @@ -134,11 +135,13 @@ GLOBAL_LIST_EMPTY(valid_cryopods) desc = "Suited for Cyborgs and Humanoids, the pod is a safe place for personnel affected by the Space Sleep Disorder to get some rest." icon = 'modular_skyrat/modules/cryosleep/icons/cryogenics.dmi' icon_state = "cryopod-open" + base_icon_state = "cryopod" use_power = FALSE density = TRUE anchored = TRUE state_open = TRUE + var/open_icon_state = "cryopod-open" var/on_store_message = "has entered long-term storage." var/on_store_name = "Cryogenic Oversight" /// Whether the cryopod respects the minimum time someone has to be disconnected before they can be put into cryo by another player @@ -209,11 +212,9 @@ GLOBAL_LIST_EMPTY(valid_cryopods) stored_ckey = mob_occupant.ckey COOLDOWN_START(src, despawn_world_time, time_till_despawn) - icon_state = "cryopod" /obj/machinery/cryopod/open_machine() ..() - icon_state = "cryopod-open" set_density(TRUE) name = initial(name) tucked = FALSE @@ -510,6 +511,28 @@ GLOBAL_LIST_EMPTY(valid_cryopods) user.add_mood_event("tucked", /datum/mood_event/tucked_in, occupant) tucked = TRUE +/obj/machinery/cryopod/update_icon_state() + icon_state = state_open ? open_icon_state : base_icon_state + return ..() + +/// Special wall mounted cryopod for the prison, making it easier to autospawn. +/obj/machinery/cryopod/prison + icon_state = "prisonpod" + base_icon_state = "prisonpod" + open_icon_state = "prisonpod" + density = FALSE + +MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/cryopod/prison, 18) + +/obj/machinery/cryopod/prison/set_density(new_value) + // Simple way to make it always non-dense. + return ..(FALSE) + +/obj/machinery/cryopod/prison/close_machine(atom/movable/target) + . = ..() + // Flick the pod for a second when user enters + flick("prisonpod-open", src) + // Wake-up notifications /obj/effect/mob_spawn/ghost_role diff --git a/modular_skyrat/modules/cryosleep/icons/cryogenics.dmi b/modular_skyrat/modules/cryosleep/icons/cryogenics.dmi index d76bec4de6a357126f515de433b9e86548aacdbc..9b7ff616aafd74b647ed8abe55d5fbb533a263fb 100644 GIT binary patch literal 11831 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 Ck7V)y literal 10148 zcmXYXcRX9~`+n@%+Iz&R+Pi9$pfrJRyRV79R zA>ZTk`~8t~@;d8zo_k!^eP8D!8t7@ty|?qz#yD_!H8_?m$s4?BdgN{0TKxtE6krPFBy zSRHYQf#OZex}sxRUHO@vJ;>=uOm#lE%fdQHWx z-Zmh&PGByu-0u2;{BPLt?dl+kPlvK?{WcO`ELMq;us(RKb(!-eS-qIF*AHG8>~vlB z8ge$;DSIs^9DH|K#`mE>R;&GuWyjn0TM9eUcd?PNBw76l?A8o|%EW{89HfdlUoKzh z^Ea2fv>mTC`c?;6CqTZy?!5>|)9}n`@O8Fkl&0d3`lH1qK|c)s@AZ1<3vRQ>H+;}~ zfhGQQ|Jx<)2H!d96_E$aKC4cb!}qR>esLiwBy837GSiHuCpt$3amf2PQQjP$H2;~C z3~-o5R&eq`XO4Tv$E4M$ZA4oZaG!J@ilDwBZ=Am+^xY;&6hWYzK{$9XnyDO>g>E

#P8ug@?qYU~W1mHT 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 diff --git a/modular_skyrat/modules/mapping/code/mob_spawns.dm b/modular_skyrat/modules/mapping/code/mob_spawns.dm index 4cabfbbd71f..1808d6297ca 100644 --- a/modular_skyrat/modules/mapping/code/mob_spawns.dm +++ b/modular_skyrat/modules/mapping/code/mob_spawns.dm @@ -693,7 +693,11 @@ announcement_channel = RADIO_CHANNEL_INTERDYNE req_one_access = list("syndicate_leader") +MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/computer/cryopod/interdyne, 32) + /obj/machinery/computer/cryopod/tarkon radio = /obj/item/radio/headset/tarkon announcement_channel = RADIO_CHANNEL_TARKON req_one_access = list("tarkon") + +MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/computer/cryopod/tarkon, 32) diff --git a/tools/UpdatePaths/Scripts_Skyrat/cryo_console_dirs.txt b/tools/UpdatePaths/Scripts_Skyrat/cryo_console_dirs.txt new file mode 100644 index 00000000000..61e6a384e73 --- /dev/null +++ b/tools/UpdatePaths/Scripts_Skyrat/cryo_console_dirs.txt @@ -0,0 +1,4 @@ +/obj/machinery/computer/cryopod{pixel_x = 32} : /obj/machinery/computer/cryopod/directional/east +/obj/machinery/computer/cryopod{pixel_x = -32} : /obj/machinery/computer/cryopod/directional/west +/obj/machinery/computer/cryopod{pixel_y = 32} : /obj/machinery/computer/cryopod/directional/north +/obj/machinery/computer/cryopod{pixel_y = -32} : /obj/machinery/computer/cryopod/directional/south