diff --git a/code/defines/procs/hud.dm b/code/defines/procs/hud.dm
index de72db153c7..02676e3878a 100644
--- a/code/defines/procs/hud.dm
+++ b/code/defines/procs/hud.dm
@@ -15,13 +15,6 @@ the HUD updates properly! */
if(ismob(loc))
owner = loc
-/image/hud_overlay/Destroy()
- if(owner)
- owner?.client?.images -= src
- owner = null
-
- . = ..()
-
//Medical HUD outputs. Called by the Life() proc of the mob using it, usually.
/proc/process_med_hud(var/mob/M, var/local_scanner, var/mob/Alt)
if(!can_process_hud(M))
diff --git a/code/game/objects/effects/landmarks.dm b/code/game/objects/effects/landmarks.dm
index b33611bde0b..0bc6686fb2b 100644
--- a/code/game/objects/effects/landmarks.dm
+++ b/code/game/objects/effects/landmarks.dm
@@ -257,6 +257,10 @@ INITIALIZE_IMMEDIATE(/obj/effect/landmark/lobby_mobs_location)
LAZYINITLIST(GLOB.force_spawnpoints)
LAZYADD(GLOB.force_spawnpoints[job_tag], loc)
+/obj/effect/landmark/force_spawnpoint/Destroy()
+ LAZYREMOVE(GLOB.force_spawnpoints[job_tag], loc)
+ . = ..()
+
var/list/ruin_landmarks = list()
/obj/effect/landmark/ruin
diff --git a/code/modules/admin/verbs/buildmode.dm b/code/modules/admin/verbs/buildmode.dm
new file mode 100644
index 00000000000..29bcfc84a22
--- /dev/null
+++ b/code/modules/admin/verbs/buildmode.dm
@@ -0,0 +1,355 @@
+/proc/togglebuildmode(mob/M as mob in GLOB.player_list)
+ set name = "Toggle Build Mode"
+ set category = "Special Verbs"
+ if(M.client)
+ if(M.client.buildmode)
+ log_admin("[key_name(usr)] has left build mode.",admin_key=key_name(usr))
+ M.client.buildmode = 0
+ M.client.show_popup_menus = 1
+ remove_verb(M, /verb/load_template_verb)
+ for(var/obj/effect/bmode/buildholder/H)
+ if(H.cl == M.client)
+ qdel(H)
+ else
+ log_admin("[key_name(usr)] has entered build mode.",admin_key=key_name(usr))
+ M.client.buildmode = 1
+ M.client.show_popup_menus = 0
+ add_verb(M, /verb/load_template_verb)
+ var/obj/effect/bmode/buildholder/H = new/obj/effect/bmode/buildholder()
+ var/obj/effect/bmode/builddir/A = new/obj/effect/bmode/builddir(H)
+ A.master = H
+ var/obj/effect/bmode/buildhelp/B = new/obj/effect/bmode/buildhelp(H)
+ B.master = H
+ var/obj/effect/bmode/buildmode/C = new/obj/effect/bmode/buildmode(H)
+ C.master = H
+ var/obj/effect/bmode/buildquit/D = new/obj/effect/bmode/buildquit(H)
+ D.master = H
+ var/obj/effect/bmode/template/E = new/obj/effect/bmode/template(H)
+ E.master = H
+
+ H.builddir = A
+ H.buildhelp = B
+ H.buildmode = C
+ H.buildquit = D
+ H.load_template = E
+ M.client.screen += A
+ M.client.screen += B
+ M.client.screen += C
+ M.client.screen += D
+ M.client.screen += E
+ H.cl = M.client
+
+/obj/effect/bmode//Cleaning up the tree a bit
+ density = 1
+ anchored = 1
+ layer = HUD_BASE_LAYER
+ dir = NORTH
+ icon = 'icons/misc/buildmode.dmi'
+ mouse_opacity = MOUSE_OPACITY_OPAQUE
+ var/obj/effect/bmode/buildholder/master
+
+/obj/effect/bmode/Destroy()
+ if(master && master.cl)
+ master.cl.screen -= src
+ master = null
+ return ..()
+
+/obj/effect/bmode/builddir
+ icon_state = "build"
+ screen_loc = "NORTH,WEST"
+
+/obj/effect/bmode/builddir/Click()
+ switch(dir)
+ if(NORTH)
+ set_dir(EAST)
+ if(EAST)
+ set_dir(SOUTH)
+ if(SOUTH)
+ set_dir(WEST)
+ if(WEST)
+ set_dir(NORTHWEST)
+ if(NORTHWEST)
+ set_dir(NORTH)
+ return 1
+
+/obj/effect/bmode/buildhelp
+ icon = 'icons/misc/buildmode.dmi'
+ icon_state = "buildhelp"
+ screen_loc = "NORTH,WEST+1"
+
+/obj/effect/bmode/buildhelp/Click()
+ switch(master.cl.buildmode)
+ if(1)
+ to_chat(usr, "***********************************************************")
+ to_chat(usr, "Left Mouse Button = Construct / Upgrade")
+ to_chat(usr, "Right Mouse Button = Deconstruct / Delete / Downgrade")
+ to_chat(usr, "Left Mouse Button + ctrl = R-Window")
+ to_chat(usr, "Left Mouse Button + alt = Airlock")
+ to_chat(usr, " ")
+ to_chat(usr, "Use the button in the upper left corner to")
+ to_chat(usr, "change the direction of built objects.")
+ to_chat(usr, "***********************************************************")
+ if(2)
+ to_chat(usr, "***********************************************************")
+ to_chat(usr, "Right Mouse Button on buildmode button = Set object type")
+ to_chat(usr, "Middle Mouse Button on buildmode button= On/Off object type saying")
+ to_chat(usr, "Middle Mouse Button on turf/obj = Capture object type")
+ to_chat(usr, "Left Mouse Button on turf/obj = Place objects")
+ to_chat(usr, "Right Mouse Button = Delete objects")
+ to_chat(usr, " ")
+ to_chat(usr, "Use the button in the upper left corner to")
+ to_chat(usr, "change the direction of built objects.")
+ to_chat(usr, "***********************************************************")
+ if(3)
+ to_chat(usr, "***********************************************************")
+ to_chat(usr, "Right Mouse Button on buildmode button = Select var(type) & value")
+ to_chat(usr, "Left Mouse Button on turf/obj/mob = Set var(type) & value")
+ to_chat(usr, "Right Mouse Button on turf/obj/mob = Reset var's value")
+ to_chat(usr, "***********************************************************")
+ if(4)
+ to_chat(usr, "***********************************************************")
+ to_chat(usr, "Left Mouse Button on turf/obj/mob = Select")
+ to_chat(usr, "Right Mouse Button on turf/obj/mob = Throw")
+ to_chat(usr, "***********************************************************")
+ return 1
+
+/obj/effect/bmode/buildquit
+ icon_state = "buildquit"
+ screen_loc = "NORTH,WEST+4"
+
+/obj/effect/bmode/buildquit/Click()
+ togglebuildmode(master.cl.mob)
+ return 1
+
+/obj/effect/bmode/buildholder
+ density = 0
+ anchored = 1
+ var/client/cl = null
+ var/obj/effect/bmode/builddir/builddir = null
+ var/obj/effect/bmode/buildhelp/buildhelp = null
+ var/obj/effect/bmode/buildmode/buildmode = null
+ var/obj/effect/bmode/buildquit/buildquit = null
+ var/obj/effect/bmode/template/load_template = null
+ var/atom/movable/throw_atom = null
+
+/obj/effect/bmode/buildholder/Destroy()
+ qdel(builddir)
+ builddir = null
+ qdel(buildhelp)
+ buildhelp = null
+ qdel(buildmode)
+ buildmode = null
+ qdel(buildquit)
+ buildquit = null
+ throw_atom = null
+ cl = null
+ return ..()
+
+/obj/effect/bmode/template
+ icon_state = "load_template"
+ screen_loc = "NORTH,WEST+2"
+
+/obj/effect/bmode/template/Click()
+ load_template(usr)
+ return 1
+
+/obj/effect/bmode/buildmode
+ icon_state = "buildmode1"
+ screen_loc = "NORTH,WEST+3"
+ var/varholder = "name"
+ var/valueholder = "derp"
+ var/objholder = /obj/structure/closet
+ var/objsay = 1
+
+/obj/effect/bmode/buildmode/Click(location, control, params)
+ var/list/pa = params2list(params)
+
+ if(pa.Find("middle"))
+ switch(master.cl.buildmode)
+ if(2)
+ objsay=!objsay
+
+
+ if(pa.Find("left"))
+ switch(master.cl.buildmode)
+ if(1)
+ master.cl.buildmode = 2
+ src.icon_state = "buildmode2"
+ if(2)
+ master.cl.buildmode = 3
+ src.icon_state = "buildmode3"
+ if(3)
+ master.cl.buildmode = 4
+ src.icon_state = "buildmode4"
+ if(4)
+ master.cl.buildmode = 1
+ src.icon_state = "buildmode1"
+
+ else if(pa.Find("right"))
+ switch(master.cl.buildmode)
+ if(1)
+ return 1
+ if(2)
+ objholder = text2path(input(usr,"Enter typepath:" ,"Typepath","/obj/structure/closet"))
+ if(!ispath(objholder))
+ objholder = /obj/structure/closet
+ alert("That path is not allowed.")
+ else
+ if(ispath(objholder,/mob) && !check_rights(R_DEBUG,0))
+ objholder = /obj/structure/closet
+ if(3)
+ var/list/locked = list("vars", "key", "ckey", "client", "firemut", "ishulk", "xray", "virus", "viruses", "cuffed", "ka", "last_eaten", "urine")
+
+ master.buildmode.varholder = input(usr,"Enter variable name:" ,"Name", "name")
+ if(master.buildmode.varholder in locked && !check_rights(R_DEBUG,0))
+ return 1
+ var/thetype = input(usr,"Select variable type:" ,"Type") in list("text","number","mob-reference","obj-reference","turf-reference")
+ if(!thetype) return 1
+ switch(thetype)
+ if("text")
+ master.buildmode.valueholder = input(usr,"Enter variable value:" ,"Value", "value") as text
+ if("number")
+ master.buildmode.valueholder = input(usr,"Enter variable value:" ,"Value", 123) as num
+ if("mob-reference")
+ master.buildmode.valueholder = input(usr,"Enter variable value:" ,"Value") as mob in GLOB.mob_list
+ if("obj-reference")
+ master.buildmode.valueholder = input(usr,"Enter variable value:" ,"Value") as obj in world
+ if("turf-reference")
+ master.buildmode.valueholder = input(usr,"Enter variable value:" ,"Value") as turf in world
+ return 1
+
+/proc/build_click(var/mob/user, buildmode, params, var/obj/object)
+ var/obj/effect/bmode/buildholder/holder = null
+ for(var/obj/effect/bmode/buildholder/H)
+ if(H.cl == user.client)
+ holder = H
+ break
+ if(!holder) return
+ var/list/pa = params2list(params)
+
+ switch(buildmode)
+ if(1)
+ if(istype(object,/turf) && pa.Find("left") && !pa.Find("alt") && !pa.Find("ctrl") )
+ if(istype(object,/turf/space))
+ var/turf/T = object
+ T.ChangeTurf(/turf/simulated/floor)
+ return
+ else if(istype(object,/turf/simulated/floor))
+ var/turf/T = object
+ T.ChangeTurf(/turf/simulated/wall)
+ return
+ else if(istype(object,/turf/simulated/wall))
+ var/turf/T = object
+ T.ChangeTurf(/turf/simulated/wall/r_wall)
+ return
+ else if(pa.Find("right"))
+ if(istype(object,/turf/simulated/wall))
+ var/turf/T = object
+ T.ChangeTurf(/turf/simulated/floor)
+ return
+ else if(istype(object,/turf/simulated/floor))
+ var/turf/T = object
+ T.ChangeTurf(/turf/space)
+ return
+ else if(istype(object,/turf/simulated/wall/r_wall))
+ var/turf/T = object
+ T.ChangeTurf(/turf/simulated/wall)
+ return
+ else if(istype(object,/obj))
+ qdel(object)
+ return
+ else if(istype(object,/turf) && pa.Find("alt") && pa.Find("left"))
+ new/obj/machinery/door/airlock(get_turf(object))
+ else if(istype(object,/turf) && pa.Find("ctrl") && pa.Find("left"))
+ switch(holder.builddir.dir)
+ if(NORTH)
+ var/obj/structure/window/reinforced/WIN = new/obj/structure/window/reinforced(get_turf(object))
+ WIN.set_dir(NORTH)
+ if(SOUTH)
+ var/obj/structure/window/reinforced/WIN = new/obj/structure/window/reinforced(get_turf(object))
+ WIN.set_dir(SOUTH)
+ if(EAST)
+ var/obj/structure/window/reinforced/WIN = new/obj/structure/window/reinforced(get_turf(object))
+ WIN.set_dir(EAST)
+ if(WEST)
+ var/obj/structure/window/reinforced/WIN = new/obj/structure/window/reinforced(get_turf(object))
+ WIN.set_dir(WEST)
+ if(NORTHWEST)
+ var/obj/structure/window/reinforced/WIN = new/obj/structure/window/reinforced(get_turf(object))
+ WIN.set_dir(NORTHWEST)
+ if(2)
+ if(pa.Find("left"))
+ if(ispath(holder.buildmode.objholder,/turf))
+ var/turf/T = get_turf(object)
+ T.ChangeTurf(holder.buildmode.objholder)
+ else
+ var/obj/A = new holder.buildmode.objholder (get_turf(object))
+ A.set_dir(holder.builddir.dir)
+ else if(pa.Find("right"))
+ if(isobj(object)) qdel(object)
+ if(pa.Find("middle"))
+ holder.buildmode.objholder = text2path("[object.type]")
+ if(holder.buildmode.objsay) to_chat(usr, "[object.type]")
+
+
+ if(3)
+ if(pa.Find("left")) //I cant believe this shit actually compiles.
+ if(object.vars.Find(holder.buildmode.varholder))
+ log_admin("[key_name(usr)] modified [object.name]'s [holder.buildmode.varholder] to [holder.buildmode.valueholder]",admin_key=key_name(usr))
+ object.vars[holder.buildmode.varholder] = holder.buildmode.valueholder
+ else
+ to_chat(usr, "[initial(object.name)] does not have a var called '[holder.buildmode.varholder]'")
+ if(pa.Find("right"))
+ if(object.vars.Find(holder.buildmode.varholder))
+ log_admin("[key_name(usr)] modified [object.name]'s [holder.buildmode.varholder] to [holder.buildmode.valueholder]",admin_key=key_name(usr))
+ object.vars[holder.buildmode.varholder] = initial(object.vars[holder.buildmode.varholder])
+ else
+ to_chat(usr, "[initial(object.name)] does not have a var called '[holder.buildmode.varholder]'")
+
+ if(4)
+ if(pa.Find("left"))
+ if(istype(object, /atom/movable))
+ holder.throw_atom = object
+ if(pa.Find("right"))
+ if(holder.throw_atom)
+ holder.throw_atom.throw_at(object, 10, 1)
+ log_admin("[key_name(usr)] threw [holder.throw_atom] at [object]",admin_key=key_name(usr))
+
+/verb/load_template_verb()
+ set name = "Load Template"
+ set category = "Special Verbs"
+ if(!usr)
+ return
+ load_template(usr)
+
+/proc/load_template(var/mob/user)
+ if(!user)
+ return
+
+ if(!check_rights(R_SPAWN))
+ return
+
+ var/list/templates
+ try
+ templates = json_decode(return_file_text("config/templates_list.json"))
+ catch(var/exception/ej)
+ LOG_DEBUG("Warning: Could not load the templates config as templates_list.json is missing - [ej]")
+ return
+
+ if(!templates || !templates["templates_list"] || templates["templates_folder"] == "")
+ return
+
+ var/turf/T = get_turf(user)
+ var/name = input(user, "Which template would you like to load?", "Load Template", null) as null|anything in templates["templates_list"]
+
+ if (!name || !T)
+ return
+
+ var/datum/map_template/maploader = new (templates["templates_folder"] + name, name)
+ if (!maploader)
+ LOG_DEBUG("Error, unable to load maploader in proc load_template!")
+ return
+
+ var/centered = input(user, "Do you want template to load as center or Edge?", "Load Template", null) as null|anything in list("Center", "Edge")
+ maploader.load(T, centered == "Center" ? TRUE : FALSE)
+ log_and_message_admins("[key_name_admin(user)] has loaded template [name].", user, T)
diff --git a/code/modules/client/preference_setup/preference_setup.dm b/code/modules/client/preference_setup/preference_setup.dm
index 8be5a8721e2..c3cf89ef4a9 100644
--- a/code/modules/client/preference_setup/preference_setup.dm
+++ b/code/modules/client/preference_setup/preference_setup.dm
@@ -322,9 +322,9 @@
var/datum/category_group/player_setup_category/cat = category
cat.modified = 1
if (. & TOPIC_REFRESH)
- user.client.prefs.ShowChoices(user)
+ user.client?.prefs?.ShowChoices(user)
if(. & TOPIC_UPDATE_PREVIEW)
- user.client.prefs.update_preview_icon()
+ user.client?.prefs?.update_preview_icon()
/datum/category_item/player_setup_item/CanUseTopic(var/mob/user)
return 1
diff --git a/code/modules/hydroponics/spreading/spreading.dm b/code/modules/hydroponics/spreading/spreading.dm
index 2736ed14492..0213651bca4 100644
--- a/code/modules/hydroponics/spreading/spreading.dm
+++ b/code/modules/hydroponics/spreading/spreading.dm
@@ -202,7 +202,6 @@
density = 0
/obj/effect/plant/proc/calc_dir()
- set background = 1
var/turf/T = get_turf(src)
if(!istype(T)) return
diff --git a/code/modules/mob/living/carbon/human/human_species.dm b/code/modules/mob/living/carbon/human/human_species.dm
index 62c87a52225..94c4971ea7e 100644
--- a/code/modules/mob/living/carbon/human/human_species.dm
+++ b/code/modules/mob/living/carbon/human/human_species.dm
@@ -8,6 +8,10 @@
INITIALIZE_IMMEDIATE(/mob/living/carbon/human/dummy/mannequin)
+/mob/living/carbon/human/dummy/mannequin/New(loc, ...)
+ . = ..()
+
+
/mob/living/carbon/human/dummy/mannequin/Initialize()
. = ..()
@@ -323,6 +327,9 @@ INITIALIZE_IMMEDIATE(/mob/living/carbon/human/dummy/mannequin)
/mob/living/carbon/human/phoron_golem/Initialize(mapload)
. = ..(mapload, SPECIES_GOLEM_PHORON)
+/mob/living/carbon/human/mhydrogen_golem/Destroy()
+ . = ..()
+
/mob/living/carbon/human/mhydrogen_golem/Initialize(mapload)
. = ..(mapload, SPECIES_GOLEM_HYDROGEN)
diff --git a/code/modules/mob/living/carbon/human/species/species.dm b/code/modules/mob/living/carbon/human/species/species.dm
index 41cf8a1d4dd..01f4144b693 100644
--- a/code/modules/mob/living/carbon/human/species/species.dm
+++ b/code/modules/mob/living/carbon/human/species/species.dm
@@ -483,9 +483,9 @@
H.eat_types = allowed_eat_types
if(!kpg)
if(islesserform(H))
- H.dna.SetSEState(MONKEYBLOCK,1)
+ H.dna?.SetSEState(MONKEYBLOCK,1)
else
- H.dna.SetSEState(MONKEYBLOCK,0)
+ H.dna?.SetSEState(MONKEYBLOCK,0)
if(!H.client || !H.client.prefs || !H.client.prefs.gender)
H.gender = pick(default_genders)
H.pronouns = H.gender
diff --git a/code/modules/organs/organ_icon.dm b/code/modules/organs/organ_icon.dm
index 9e9d3aecb2f..ce129e79870 100644
--- a/code/modules/organs/organ_icon.dm
+++ b/code/modules/organs/organ_icon.dm
@@ -259,8 +259,8 @@
keyparts += "norm"
keyparts += "[species.race_key]"
- keyparts += "[dna.GetUIState(DNA_UI_GENDER)]"
- keyparts += "[dna.GetUIValue(DNA_UI_SKIN_TONE)]"
+ keyparts += "[dna?.GetUIState(DNA_UI_GENDER)]"
+ keyparts += "[dna?.GetUIValue(DNA_UI_SKIN_TONE)]"
if (skin_color)
keyparts += "[skin_color]"
if (body_hair && hair_color)
diff --git a/html/changelogs/fluffyghost-attempt3mannequinharddelfix.yml b/html/changelogs/fluffyghost-attempt3mannequinharddelfix.yml
new file mode 100644
index 00000000000..39092ee29f4
--- /dev/null
+++ b/html/changelogs/fluffyghost-attempt3mannequinharddelfix.yml
@@ -0,0 +1,44 @@
+################################
+# Example Changelog File
+#
+# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb.
+#
+# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.)
+# When it is, any changes listed below will disappear.
+#
+# Valid Prefixes:
+# bugfix
+# wip (For works in progress)
+# tweak
+# soundadd
+# sounddel
+# rscadd (general adding of nice things)
+# rscdel (general deleting of nice things)
+# imageadd
+# imagedel
+# maptweak
+# spellcheck (typo fixes)
+# experiment
+# balance
+# admin
+# backend
+# security
+# refactor
+#################################
+
+# Your name.
+author: FluffyGhost
+
+# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again.
+delete-after: True
+
+# Any changes you've made. See valid prefix list above.
+# INDENT WITH TWO SPACES. NOT TABS. SPACES.
+# SCREW THIS UP AND IT WON'T WORK.
+# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries.
+# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog.
+changes:
+ - bugfix: "Yet another attempt to reduce mannequin harddels."
+ - bugfix: "Fixed various bugs found along the way."
+ - backend: "Updated the reftracker to the latest version from TG."
+ - backend: "Removed some unused vars."
diff --git a/maps/random_ruins/exoplanets/asteroid/digsite/digsite_unique.dmm b/maps/random_ruins/exoplanets/asteroid/digsite/digsite_unique.dmm
index 71ee03cd53c..5c23f726bc3 100644
--- a/maps/random_ruins/exoplanets/asteroid/digsite/digsite_unique.dmm
+++ b/maps/random_ruins/exoplanets/asteroid/digsite/digsite_unique.dmm
@@ -24,20 +24,20 @@
/obj/effect/floor_decal/industrial/warning{
dir = 10
},
-/turf/simulated/floor/airless/ceiling,
+/turf/simulated/floor/exoplanet/barren,
/area/template_noop)
"ad" = (
/obj/effect/floor_decal/industrial/hatch/yellow,
/obj/effect/floor_decal/industrial/warning{
dir = 8
},
-/turf/simulated/floor/airless/ceiling,
+/turf/simulated/floor/exoplanet/barren,
/area/template_noop)
"ae" = (
/obj/effect/floor_decal/industrial/warning{
dir = 10
},
-/turf/simulated/floor/airless/ceiling,
+/turf/simulated/floor/exoplanet/barren,
/area/template_noop)
"af" = (
/obj/machinery/atmospherics/unary/vent_pump{
@@ -52,55 +52,55 @@
/obj/effect/floor_decal/industrial/warning{
dir = 1
},
-/turf/simulated/floor/airless/ceiling,
+/turf/simulated/floor/exoplanet/barren,
/area/template_noop)
"ai" = (
/obj/machinery/floodlight,
/obj/effect/floor_decal/industrial/warning{
dir = 8
},
-/turf/simulated/floor/airless/ceiling,
+/turf/simulated/floor/exoplanet/barren,
/area/template_noop)
"aj" = (
/obj/machinery/artifact,
/obj/effect/floor_decal/industrial/hatch/yellow,
-/turf/simulated/floor/airless/ceiling,
+/turf/simulated/floor/exoplanet/barren,
/area/template_noop)
"ak" = (
-/turf/simulated/floor/airless/ceiling,
+/turf/simulated/floor/exoplanet/barren,
/area/template_noop)
"al" = (
/obj/effect/floor_decal/industrial/warning{
dir = 9
},
-/turf/simulated/floor/airless/ceiling,
+/turf/simulated/floor/exoplanet/barren,
/area/template_noop)
"am" = (
/obj/structure/inflatable/wall,
-/turf/simulated/floor/airless/ceiling,
+/turf/simulated/floor/exoplanet/barren,
/area/template_noop)
"an" = (
/obj/effect/floor_decal/industrial/warning{
dir = 5
},
-/turf/simulated/floor/airless/ceiling,
+/turf/simulated/floor/exoplanet/barren,
/area/template_noop)
"ao" = (
/obj/effect/floor_decal/industrial/warning{
dir = 6
},
-/turf/simulated/floor/airless/ceiling,
+/turf/simulated/floor/exoplanet/barren,
/area/template_noop)
"ap" = (
/obj/machinery/floodlight,
-/turf/simulated/floor/airless/ceiling,
+/turf/simulated/floor/exoplanet/barren,
/area/template_noop)
"aq" = (
/obj/machinery/floodlight,
/obj/effect/floor_decal/industrial/warning{
dir = 4
},
-/turf/simulated/floor/airless/ceiling,
+/turf/simulated/floor/exoplanet/barren,
/area/template_noop)
"ar" = (
/obj/effect/landmark/clear,
@@ -109,25 +109,25 @@
"as" = (
/obj/effect/floor_decal/industrial/hatch/yellow,
/obj/effect/floor_decal/industrial/warning,
-/turf/simulated/floor/airless/ceiling,
+/turf/simulated/floor/exoplanet/barren,
/area/template_noop)
"at" = (
/obj/effect/floor_decal/industrial/hatch/yellow,
/obj/effect/floor_decal/industrial/warning{
dir = 5
},
-/turf/simulated/floor/airless/ceiling,
+/turf/simulated/floor/exoplanet/barren,
/area/template_noop)
"au" = (
/obj/effect/floor_decal/industrial/hatch/yellow,
/obj/effect/floor_decal/industrial/warning{
dir = 6
},
-/turf/simulated/floor/airless/ceiling,
+/turf/simulated/floor/exoplanet/barren,
/area/template_noop)
"av" = (
/obj/effect/floor_decal/industrial/warning,
-/turf/simulated/floor/airless/ceiling,
+/turf/simulated/floor/exoplanet/barren,
/area/template_noop)
"aw" = (
/obj/machinery/embedded_controller/radio/airlock/airlock_controller{
@@ -151,7 +151,7 @@
/obj/effect/floor_decal/industrial/warning{
dir = 1
},
-/turf/simulated/floor/airless/ceiling,
+/turf/simulated/floor/exoplanet/barren,
/area/template_noop)
"az" = (
/turf/simulated/wall,
@@ -191,7 +191,7 @@
/obj/effect/floor_decal/industrial/warning{
dir = 9
},
-/turf/simulated/floor/airless/ceiling,
+/turf/simulated/floor/exoplanet/barren,
/area/template_noop)
"aE" = (
/obj/machinery/artifact_analyser,
@@ -345,7 +345,7 @@
/area/dungeon/anomaly_outpost)
"bb" = (
/obj/structure/inflatable/door,
-/turf/simulated/floor/airless/ceiling,
+/turf/simulated/floor/exoplanet/barren,
/area/template_noop)
"bc" = (
/obj/effect/landmark/clear,
@@ -411,7 +411,7 @@
/obj/effect/floor_decal/industrial/warning{
dir = 4
},
-/turf/simulated/floor/airless/ceiling,
+/turf/simulated/floor/exoplanet/barren,
/area/template_noop)
(1,1,1) = {"