diff --git a/code/_helpers/sorts/comparators.dm b/code/_helpers/sorts/comparators.dm
index a9ca5748b77..f4a8c575c98 100644
--- a/code/_helpers/sorts/comparators.dm
+++ b/code/_helpers/sorts/comparators.dm
@@ -56,3 +56,9 @@
. = B[STAT_ENTRY_TIME] - A[STAT_ENTRY_TIME]
if (!.)
. = B[STAT_ENTRY_COUNT] - A[STAT_ENTRY_COUNT]
+
+// Compares complexity of recipes for use in cooking, etc. This is for telling which recipe to make, not for showing things to the player.
+/proc/cmp_recipe_complexity_dsc(datum/recipe/A, datum/recipe/B)
+ var/a_score = LAZYLEN(A.items) + LAZYLEN(A.reagents) + LAZYLEN(A.fruit)
+ var/b_score = LAZYLEN(B.items) + LAZYLEN(B.reagents) + LAZYLEN(B.fruit)
+ return b_score - a_score
\ No newline at end of file
diff --git a/code/game/gamemodes/cult/cultify/obj.dm b/code/game/gamemodes/cult/cultify/obj.dm
index d7c0cff5ece..3ac41e00471 100644
--- a/code/game/gamemodes/cult/cultify/obj.dm
+++ b/code/game/gamemodes/cult/cultify/obj.dm
@@ -50,7 +50,7 @@
src.invisibility = INVISIBILITY_MAXIMUM
density = 0
-/obj/machinery/cooker/cultify()
+/obj/machinery/appliance/cooker/cultify()
new /obj/structure/cult/talisman(loc)
qdel(src)
diff --git a/code/game/objects/stumble_into_vr.dm b/code/game/objects/stumble_into_vr.dm
index 1493323af1b..2a747ae5636 100644
--- a/code/game/objects/stumble_into_vr.dm
+++ b/code/game/objects/stumble_into_vr.dm
@@ -89,7 +89,7 @@
..()
bumpopen(M)
-/obj/machinery/cooker/fryer/stumble_into(mob/living/M)
+/obj/machinery/appliance/cooker/fryer/stumble_into(mob/living/M)
visible_message("[M] [pick("ran", "slammed")] into \the [src]!")
M.apply_damage(15, BURN)
M.Weaken(5)
diff --git a/code/modules/food/food/condiment.dm b/code/modules/food/food/condiment.dm
index 657946d0192..618fed08951 100644
--- a/code/modules/food/food/condiment.dm
+++ b/code/modules/food/food/condiment.dm
@@ -115,6 +115,17 @@
desc = "This is what you use to make bread fluffy."
icon_state = "yeast"
center_of_mass = list("x"=16, "y"=6)
+ if("spacespice")
+ name = "bottle of space spice"
+ desc = "An exotic blend of spices for cooking. Definitely not worms."
+ icon = 'modular_citadel/icons/obj/food_syn.dmi'
+ icon_state = "spacespicebottle"
+ center_of_mass = list("x"=16, "y"=6)
+ if("barbecue")
+ name = "barbecue sauce"
+ desc = "Barbecue sauce, it's labeled 'sweet and spicy'."
+ icon_state = "barbecue"
+ center_of_mass = list("x"=16, "y"=6)
else
name = "Misc Condiment Bottle"
if (reagents.reagent_list.len==1)
@@ -408,6 +419,7 @@
desc = "A big bag of flour. Good for baking!"
icon = 'icons/obj/food.dmi'
icon_state = "flour"
+ volume = 220
center_of_mass = list("x"=16, "y"=8)
/obj/item/weapon/reagent_containers/food/condiment/flour/on_reagent_change()
@@ -415,5 +427,20 @@
/obj/item/weapon/reagent_containers/food/condiment/flour/Initialize()
. = ..()
- reagents.add_reagent("flour", 30)
- randpixel_xy()
\ No newline at end of file
+ reagents.add_reagent("flour", 200)
+ randpixel_xy()
+
+/obj/item/weapon/reagent_containers/food/condiment/spacespice
+ name = "space spices"
+ desc = "An exotic blend of spices for cooking. Definitely not worms."
+ icon_state = "spacespicebottle"
+ possible_transfer_amounts = list(1,40) //for clown turning the lid off
+ amount_per_transfer_from_this = 1
+ volume = 40
+
+/obj/item/weapon/reagent_containers/food/condiment/spacespice/on_reagent_change()
+ return
+
+/obj/item/weapon/reagent_containers/food/condiment/spacespice/initialize()
+ ..()
+ reagents.add_reagent("spacespice", 40)
\ No newline at end of file
diff --git a/code/modules/food/food/snacks.dm b/code/modules/food/food/snacks.dm
index 72ac7787ce2..e420dc4c0c5 100644
--- a/code/modules/food/food/snacks.dm
+++ b/code/modules/food/food/snacks.dm
@@ -14,6 +14,12 @@
var/survivalfood = FALSE
var/nutriment_amt = 0
var/list/nutriment_desc = list("food" = 1)
+ var/datum/reagent/nutriment/coating/coating = null
+ var/icon/flat_icon = null //Used to cache a flat icon generated from dipping in batter. This is used again to make the cooked-batter-overlay
+ var/do_coating_prefix = 1 //If 0, we wont do "battered thing" or similar prefixes. Mainly for recipes that include batter but have a special name
+ var/cooked_icon = null //Used for foods that are "cooked" without being made into a specific recipe or combination.
+ //Generally applied during modification cooking with oven/fryer
+ //Used to stop deepfried meat from looking like slightly tanned raw meat, and make it actually look cooked
center_of_mass = list("x"=16, "y"=16)
w_class = ITEMSIZE_SMALL
force = 0
@@ -150,6 +156,8 @@
/obj/item/weapon/reagent_containers/food/snacks/examine(mob/user)
. = ..()
if(Adjacent(user))
+ if(coating)
+ to_chat(user, "It's coated in [coating.name]!")
if(bitecount==0)
return .
else if (bitecount==1)
@@ -161,7 +169,7 @@
/obj/item/weapon/reagent_containers/food/snacks/attackby(obj/item/weapon/W as obj, mob/user as mob)
if(istype(W,/obj/item/weapon/storage))
- ..() // -> item/attackby()
+ . = ..() // -> item/attackby()
return
// Eating with forks
@@ -273,7 +281,7 @@
// name = "Xenoburger" //Name that displays in the UI.
// desc = "Smells caustic. Tastes like heresy." //Duh
// icon_state = "xburger" //Refers to an icon in food.dmi
-// New() //Don't mess with this.
+// Initialize() //Don't mess with this. (We use Initialize now instead of New())
// ..() //Same here.
// reagents.add_reagent("xenomicrobes", 10) //This is what is in the food item. you may copy/paste
// reagents.add_reagent("nutriment", 2) // this line of code for all the contents.
@@ -349,7 +357,7 @@
nutriment_desc = list("candy corn" = 4)
/obj/item/weapon/reagent_containers/food/snacks/candy_corn/Initialize()
- ..()
+ . = ..()
reagents.add_reagent("sugar", 2)
bitesize = 2
@@ -589,7 +597,7 @@
/obj/item/weapon/reagent_containers/food/snacks/egg/afterattack(obj/O as obj, mob/user as mob, proximity)
if(istype(O,/obj/machinery/microwave))
- return ..()
+ return . = ..()
if(!(proximity && O.is_open_container()))
return
to_chat(user, "You crack \the [src] into \the [O].")
@@ -598,7 +606,7 @@
qdel(src)
/obj/item/weapon/reagent_containers/food/snacks/egg/throw_impact(atom/hit_atom)
- ..()
+ . = ..()
new/obj/effect/decal/cleanable/egg_smudge(src.loc)
src.reagents.splash(hit_atom, reagents.total_volume)
src.visible_message("[src.name] has been squashed.","You hear a smack.")
@@ -616,7 +624,7 @@
to_chat(usr, "You color \the [src] [clr]")
icon_state = "egg-[clr]"
else
- ..()
+ . = ..()
/obj/item/weapon/reagent_containers/food/snacks/egg/blue
icon_state = "egg-blue"
@@ -1116,7 +1124,7 @@
bitesize = 3
/obj/item/weapon/reagent_containers/food/snacks/pie/throw_impact(atom/hit_atom)
- ..()
+ . = ..()
new/obj/effect/decal/cleanable/pie_smudge(src.loc)
src.visible_message("\The [src.name] splats.","You hear a splat.")
qdel(src)
@@ -1234,7 +1242,7 @@
nutriment_desc = list("sweetness" = 3, "mushroom" = 3, "pie" = 2)
/obj/item/weapon/reagent_containers/food/snacks/amanita_pie/Initialize()
- ..()
+ . = ..()
reagents.add_reagent("amatoxin", 3)
reagents.add_reagent("psilocybin", 1)
bitesize = 3
@@ -1249,7 +1257,7 @@
nutriment_desc = list("heartiness" = 2, "mushroom" = 3, "pie" = 3)
/obj/item/weapon/reagent_containers/food/snacks/plump_pie/Initialize()
- ..()
+ . = ..()
if(prob(10))
name = "exceptional plump pie"
desc = "Microwave is taken by a fey mood! It has cooked an exceptional plump pie!"
@@ -1363,7 +1371,7 @@
if(prob(unpopped)) //lol ...what's the point?
to_chat(usr, "You bite down on an un-popped kernel!")
unpopped = max(0, unpopped-1)
- ..()
+ . = ..()
/obj/item/weapon/reagent_containers/food/snacks/sosjerky
name = "Scaredy's Private Reserve Beef Jerky"
@@ -1374,7 +1382,7 @@
center_of_mass = list("x"=15, "y"=9)
/obj/item/weapon/reagent_containers/food/snacks/sosjerky/Initialize()
- ..()
+ . = ..()
reagents.add_reagent("protein", 4)
bitesize = 2
@@ -1389,7 +1397,7 @@
nutriment_desc = list("dried raisins" = 6)
/obj/item/weapon/reagent_containers/food/snacks/no_raisin/Initialize()
- ..()
+ . = ..()
reagents.add_reagent("nutriment", 6)
/obj/item/weapon/reagent_containers/food/snacks/spacetwinkie
@@ -1663,7 +1671,7 @@
/obj/item/weapon/reagent_containers/food/snacks/slimesoup
name = "slime soup"
desc = "If no water is available, you may substitute tears."
- icon_state = "rorosoup" //nonexistant? - 3/1/2020 FIXED. roro's live on.
+ icon_state = "slimesoup" //nonexistant? - 3/1/2020 FIXED. roro's live on. - 7/14/2020 - The fuck are you smoking, roro's is stupid, name it slimesoup so it's clear wtf it is.
filling_color = "#C4DBA0"
/obj/item/weapon/reagent_containers/food/snacks/slimesoup/Initialize()
@@ -2404,9 +2412,9 @@
reagents.add_reagent("peanutbutter", 5)
/obj/item/weapon/reagent_containers/food/snacks/boiledslimecore
- name = "Boiled slime Core"
+ name = "Boiled Slime Core"
desc = "A boiled red thing."
- icon_state = "boiledslimecore" //nonexistant?
+ icon_state = "boiledslimecore"
/obj/item/weapon/reagent_containers/food/snacks/boiledslimecore/Initialize()
. = ..()
@@ -3869,7 +3877,7 @@
/obj/item/weapon/reagent_containers/food/snacks/sashimi
name = "carp sashimi"
- desc = "Expertly prepared. Hopefully toxin got removed though."
+ desc = "Expertly prepared. Hopefully the toxins got removed."
filling_color = "#FFDEFE"
icon_state = "sashimi"
nutriment_amt = 6
@@ -3922,7 +3930,7 @@
filling_color = "#E0CF9B"
center_of_mass = list("x"=17, "y"=4)
nutriment_amt = 6
- nutriment_desc = list("sweetness" = 2, "muffin" = 2)
+ nutriment_desc = list("sweetness" = 2, "muffin" = 2, "berries" = 2)
/obj/item/weapon/reagent_containers/food/snacks/berrymuffin/Initialize()
. = ..()
@@ -4341,3 +4349,1687 @@
if(pixel_x || pixel_y)
A.pixel_x = pixel_x
A.pixel_y = pixel_y
+
+/obj/item/weapon/reagent_containers/food/snacks/macncheese
+ name = "macaroni and cheese"
+ desc = "The perfect combination of noodles and dairy."
+ icon = 'modular_citadel/icons/obj/food_cit.dmi'
+ icon_state = "macncheese"
+ trash = /obj/item/trash/snack_bowl
+ center_of_mass = list("x"=16, "y"=16)
+ nutriment_amt = 9
+ nutriment_desc = list("Cheese" = 5, "pasta" = 4, "happiness" = 1)
+
+/obj/item/weapon/reagent_containers/food/snacks/macncheese/Initialize()
+ . = ..()
+ bitesize = 3
+
+//Code for dipping food in batter
+/obj/item/weapon/reagent_containers/food/snacks/afterattack(obj/O as obj, mob/user as mob, proximity)
+ if(O.is_open_container() && O.reagents && !(istype(O, /obj/item/weapon/reagent_containers/food)))
+ for (var/r in O.reagents.reagent_list)
+
+ var/datum/reagent/R = r
+ if (istype(R, /datum/reagent/nutriment/coating))
+ if (apply_coating(R, user))
+ return 1
+
+ return . = ..()
+
+//This proc handles drawing coatings out of a container when this food is dipped into it
+/obj/item/weapon/reagent_containers/food/snacks/proc/apply_coating(var/datum/reagent/nutriment/coating/C, var/mob/user)
+ if (coating)
+ user << "The [src] is already coated in [coating.name]!"
+ return 0
+
+ //Calculate the reagents of the coating needed
+ var/req = 0
+ for (var/r in reagents.reagent_list)
+ var/datum/reagent/R = r
+ if (istype(R, /datum/reagent/nutriment))
+ req += R.volume * 0.2
+ else
+ req += R.volume * 0.1
+
+ req += w_class*0.5
+
+ if (!req)
+ //the food has no reagents left, its probably getting deleted soon
+ return 0
+
+ if (C.volume < req)
+ user << span("warning", "There's not enough [C.name] to coat the [src]!")
+ return 0
+
+ var/id = C.id
+
+ //First make sure there's space for our batter
+ if (reagents.get_free_space() < req+5)
+ var/extra = req+5 - reagents.get_free_space()
+ reagents.maximum_volume += extra
+
+ //Suck the coating out of the holder
+ C.holder.trans_to_holder(reagents, req)
+
+ //We're done with C now, repurpose the var to hold a reference to our local instance of it
+ C = reagents.get_reagent(id)
+ if (!C)
+ return
+
+ coating = C
+ //Now we have to do the witchcraft with masking images
+ //var/icon/I = new /icon(icon, icon_state)
+
+ if (!flat_icon)
+ flat_icon = getFlatIcon(src)
+ var/icon/I = flat_icon
+ color = "#FFFFFF" //Some fruits use the color var. Reset this so it doesnt tint the batter
+ I.Blend(new /icon('icons/obj/food_custom.dmi', rgb(255,255,255)),ICON_ADD)
+ I.Blend(new /icon('icons/obj/food_custom.dmi', coating.icon_raw),ICON_MULTIPLY)
+ var/image/J = image(I)
+ J.alpha = 200
+ J.blend_mode = BLEND_OVERLAY
+ J.tag = "coating"
+ overlays += J
+
+ if (user)
+ user.visible_message(span("notice", "[user] dips \the [src] into \the [coating.name]"), span("notice", "You dip \the [src] into \the [coating.name]"))
+
+ return 1
+
+
+//Called by cooking machines. This is mainly intended to set properties on the food that differ between raw/cooked
+/obj/item/weapon/reagent_containers/food/snacks/proc/cook()
+ if (coating)
+ var/list/temp = overlays.Copy()
+ for (var/i in temp)
+ if (istype(i, /image))
+ var/image/I = i
+ if (I.tag == "coating")
+ temp.Remove(I)
+ break
+
+ overlays = temp
+ //Carefully removing the old raw-batter overlay
+
+ if (!flat_icon)
+ flat_icon = getFlatIcon(src)
+ var/icon/I = flat_icon
+ color = "#FFFFFF" //Some fruits use the color var
+ I.Blend(new /icon('icons/obj/food_custom.dmi', rgb(255,255,255)),ICON_ADD)
+ I.Blend(new /icon('icons/obj/food_custom.dmi', coating.icon_cooked),ICON_MULTIPLY)
+ var/image/J = image(I)
+ J.alpha = 200
+ J.tag = "coating"
+ overlays += J
+
+
+ if (do_coating_prefix == 1)
+ name = "[coating.coated_adj] [name]"
+
+ for (var/r in reagents.reagent_list)
+ var/datum/reagent/R = r
+ if (istype(R, /datum/reagent/nutriment/coating))
+ var/datum/reagent/nutriment/coating/C = R
+ C.data["cooked"] = 1
+ C.name = C.cooked_name
+
+/obj/item/weapon/reagent_containers/food/snacks/proc/on_consume(var/mob/eater, var/mob/feeder = null)
+ if(!reagents.total_volume)
+ eater.visible_message("[eater] finishes eating \the [src].","You finish eating \the [src].")
+
+ if (!feeder)
+ feeder = eater
+
+ feeder.drop_from_inventory(src) //so icons update :[ //what the fuck is this????
+
+ if(trash)
+ if(ispath(trash,/obj/item))
+ var/obj/item/TrashItem = new trash(feeder)
+ feeder.put_in_hands(TrashItem)
+ else if(istype(trash,/obj/item))
+ feeder.put_in_hands(trash)
+ qdel(src)
+ return
+////////////////////////////////////////////////////////////////////////////////
+/// FOOD END
+////////////////////////////////////////////////////////////////////////////////
+
+/mob/living
+ var/composition_reagent
+ var/composition_reagent_quantity
+
+/mob/living/simple_animal/adultslime
+ composition_reagent = "slimejelly"
+
+/mob/living/carbon/slime
+ composition_reagent = "slimejelly"
+
+/mob/living/carbon/alien/diona
+ composition_reagent = "nutriment"//Dionae are plants, so eating them doesn't give animal protein
+
+/mob/living/simple_animal/slime
+ composition_reagent = "slimejelly"
+
+/mob/living/simple_animal
+ var/kitchen_tag = "animal" //Used for cooking with animals
+
+/mob/living/simple_animal/mouse
+ kitchen_tag = "rodent"
+
+/obj/item/weapon/reagent_containers/food/snacks/sliceable/cheesewheel
+ slices_num = 8
+
+/obj/item/weapon/reagent_containers/food/snacks/sausage/battered
+ name = "battered sausage"
+ desc = "A piece of mixed, long meat, battered and then deepfried."
+ icon = 'icons/obj/food_syn.dmi'
+ icon_state = "batteredsausage"
+ filling_color = "#DB0000"
+ center_of_mass = list("x"=16, "y"=16)
+ do_coating_prefix = 0
+ New()
+ . = ..()
+ reagents.add_reagent("protein", 6)
+ reagents.add_reagent("batter", 1.7)
+ reagents.add_reagent("oil", 1.5)
+ bitesize = 2
+
+/obj/item/weapon/reagent_containers/food/snacks/jalapeno_poppers
+ name = "jalapeno popper"
+ desc = "A battered, deep-fried chilli pepper."
+ icon = 'icons/obj/food_syn.dmi'
+ icon_state = "popper"
+ filling_color = "#00AA00"
+ center_of_mass = list("x"=10, "y"=6)
+ do_coating_prefix = 0
+ nutriment_amt = 2
+ nutriment_desc = list("chilli pepper" = 2)
+ bitesize = 1
+
+/obj/item/weapon/reagent_containers/food/snacks/jalapeno_poppers/Initialize()
+ . = . = ..()
+ reagents.add_reagent("batter", 2)
+ reagents.add_reagent("oil", 2)
+
+/obj/item/weapon/reagent_containers/food/snacks/mouseburger
+ name = "mouse burger"
+ desc = "Squeaky and a little furry."
+ icon = 'icons/obj/food_syn.dmi'
+ icon_state = "ratburger"
+ center_of_mass = list("x"=16, "y"=11)
+ New()
+ . = ..()
+ reagents.add_reagent("protein", 4)
+ bitesize = 2
+
+/obj/item/weapon/reagent_containers/food/snacks/chickenkatsu
+ name = "chicken katsu"
+ desc = "A Terran delicacy consisting of chicken fried in a light beer batter."
+ icon = 'icons/obj/food_syn.dmi'
+ icon_state = "katsu"
+ trash = /obj/item/trash/plate
+ filling_color = "#E9ADFF"
+ center_of_mass = list("x"=16, "y"=16)
+ do_coating_prefix = 0
+
+/obj/item/weapon/reagent_containers/food/snacks/chickenkatsu/Initialize()
+ . = ..()
+ reagents.add_reagent("protein", 6)
+ reagents.add_reagent("beerbatter", 2)
+ reagents.add_reagent("oil", 1)
+ bitesize = 1.5
+
+/obj/item/weapon/reagent_containers/food/snacks/fries
+ nutriment_amt = 4
+ nutriment_desc = list("fries" = 4)
+
+/obj/item/weapon/reagent_containers/food/snacks/fries/Initialize()
+ . = ..()
+ reagents.add_reagent("oil", 1.2)//This is mainly for the benefit of adminspawning
+ bitesize = 2
+
+/obj/item/weapon/reagent_containers/food/snacks/microchips
+ name = "micro chips"
+ desc = "Soft and rubbery, should have fried them. Good for smaller crewmembers, maybe?"
+ icon = 'icons/obj/food_syn.dmi'
+ icon_state = "microchips"
+ trash = /obj/item/trash/plate
+ filling_color = "#EDDD00"
+ nutriment_amt = 4
+ nutriment_desc = list("soggy fries" = 4)
+ center_of_mass = list("x"=16, "y"=11)
+
+/obj/item/weapon/reagent_containers/food/snacks/microchips/Initialize()
+ . = ..()
+ bitesize = 2
+
+/obj/item/weapon/reagent_containers/food/snacks/ovenchips
+ name = "oven chips"
+ desc = "Dark and crispy, but a bit dry."
+ icon = 'icons/obj/food_syn.dmi'
+ icon_state = "ovenchips"
+ trash = /obj/item/trash/plate
+ filling_color = "#EDDD00"
+ nutriment_amt = 4
+ nutriment_desc = list("crisp, dry fries" = 4)
+ center_of_mass = list("x"=16, "y"=11)
+
+/obj/item/weapon/reagent_containers/food/snacks/ovenchips/Initialize()
+ . = ..()
+ bitesize = 2
+
+/obj/item/weapon/reagent_containers/food/snacks/meatsteak/Initialize()
+ . = ..()
+ reagents.add_reagent("protein", 6)
+ reagents.add_reagent("triglyceride", 2)
+ reagents.add_reagent("sodiumchloride", 1)
+ reagents.add_reagent("blackpepper", 1)
+ bitesize = 2
+
+/obj/item/weapon/reagent_containers/food/snacks/sliceable/pizza/crunch
+ name = "pizza crunch"
+ desc = "This was once a normal pizza, but it has been coated in batter and deep-fried. Whatever toppings it once had are a mystery, but they're still under there, somewhere..."
+ icon = 'icons/obj/food_syn.dmi'
+ icon_state = "pizzacrunch"
+ slice_path = /obj/item/weapon/reagent_containers/food/snacks/pizzacrunchslice
+ slices_num = 6
+ nutriment_amt = 25
+ nutriment_desc = list("fried pizza" = 25)
+ center_of_mass = list("x"=16, "y"=11)
+
+ New()
+ . = ..()
+ reagents.add_reagent("batter", 6.5)
+ coating = reagents.get_reagent("batter")
+ reagents.add_reagent("oil", 4)
+ bitesize = 2
+
+/obj/item/weapon/reagent_containers/food/snacks/pizzacrunchslice
+ name = "pizza crunch"
+ desc = "A little piece of a heart attack. It's toppings are a mystery, hidden under batter"
+ icon = 'icons/obj/food_syn.dmi'
+ icon_state = "pizzacrunchslice"
+ filling_color = "#BAA14C"
+ bitesize = 2
+ center_of_mass = list("x"=18, "y"=13)
+
+/obj/item/weapon/reagent_containers/food/snacks/funnelcake
+ name = "funnel cake"
+ desc = "Funnel cakes rule!"
+ icon = 'icons/obj/food_syn.dmi'
+ icon_state = "funnelcake"
+ filling_color = "#Ef1479"
+ center_of_mass = list("x"=16, "y"=12)
+ do_coating_prefix = 0
+
+/obj/item/weapon/reagent_containers/food/snacks/funnelcake/Initialize()
+ . = ..()
+ reagents.add_reagent("batter", 10)
+ reagents.add_reagent("sugar", 5)
+ bitesize = 2
+
+/obj/item/weapon/reagent_containers/food/snacks/spreads
+ name = "nutri-spread"
+ desc = "A stick of plant-based nutriments in a semi-solid form. I can't believe it's not margarine!"
+ icon = 'icons/obj/food_syn.dmi'
+ icon_state = "marge"
+ bitesize = 2
+ center_of_mass = list("x"=16, "y"=16)
+ nutriment_desc = list("margarine" = 1)
+ nutriment_amt = 20
+
+/obj/item/weapon/reagent_containers/food/snacks/spreads/butter
+ name = "butter"
+ desc = "A stick of pure butterfat made from milk products."
+ icon = 'icons/obj/food_syn.dmi'
+ icon_state = "butter"
+ bitesize = 2
+ center_of_mass = list("x"=16, "y"=16)
+ nutriment_desc = list("butter" = 1)
+ nutriment_amt = 0
+
+/obj/item/weapon/reagent_containers/food/snacks/spreads/Initialize()
+ . = . = ..()
+ reagents.add_reagent("triglyceride", 20)
+ reagents.add_reagent("sodiumchloride",1)
+
+/obj/item/weapon/reagent_containers/food/snacks/rawcutlet/attackby(obj/item/weapon/W as obj, mob/user as mob)
+ if(istype(W,/obj/item/weapon/material/knife))
+ new /obj/item/weapon/reagent_containers/food/snacks/rawbacon(src)
+ new /obj/item/weapon/reagent_containers/food/snacks/rawbacon(src)
+ to_chat(user, "You slice the cutlet into thin strips of bacon.")
+ qdel(src)
+ else
+ . = ..()
+
+/obj/item/weapon/reagent_containers/food/snacks/rawbacon
+ name = "raw bacon"
+ desc = "A very thin piece of raw meat, cut from beef."
+ icon = 'icons/obj/food_syn.dmi'
+ icon_state = "rawbacon"
+ bitesize = 1
+ center_of_mass = list("x"=16, "y"=16)
+
+/obj/item/weapon/reagent_containers/food/snacks/rawbacon/Initialize()
+ . = . = ..()
+ reagents.add_reagent("protein", 0.33)
+
+/obj/item/weapon/reagent_containers/food/snacks/bacon
+ name = "bacon"
+ desc = "A tasty meat slice. You don't see any pigs on this station, do you?"
+ icon = 'icons/obj/food_syn.dmi'
+ icon_state = "bacon"
+ bitesize = 2
+ center_of_mass = list("x"=16, "y"=16)
+
+/obj/item/weapon/reagent_containers/food/snacks/bacon/microwave
+ name = "microwaved bacon"
+ desc = "A tasty meat slice. You don't see any pigs on this station, do you?"
+ icon = 'icons/obj/food_syn.dmi'
+ icon_state = "bacon"
+ bitesize = 2
+ center_of_mass = list("x"=16, "y"=16)
+
+/obj/item/weapon/reagent_containers/food/snacks/bacon/oven
+ name = "oven-cooked bacon"
+ desc = "A tasty meat slice. You don't see any pigs on this station, do you?"
+ icon = 'icons/obj/food_syn.dmi'
+ icon_state = "bacon"
+ bitesize = 2
+ center_of_mass = list("x"=16, "y"=16)
+
+/obj/item/weapon/reagent_containers/food/snacks/bacon/Initialize()
+ . = . = ..()
+ reagents.add_reagent("protein", 0.33)
+ reagents.add_reagent("triglyceride", 1)
+
+/obj/item/weapon/reagent_containers/food/snacks/bacon_stick
+ name = "eggpop"
+ desc = "A bacon wrapped boiled egg, conviently skewered on a wooden stick."
+ icon = 'icons/obj/food_syn.dmi'
+ icon_state = "bacon_stick"
+
+/obj/item/weapon/reagent_containers/food/snacks/bacon_stick/Initialize()
+ . = . = ..()
+ reagents.add_reagent("protein", 3)
+ reagents.add_reagent("egg", 1)
+
+/obj/item/weapon/reagent_containers/food/snacks/chilied_eggs
+ name = "chilied eggs"
+ desc = "Three deviled eggs floating in a bowl of meat chili. A popular lunchtime meal for Unathi in Ouerea."
+ icon_state = "chilied_eggs"
+ trash = /obj/item/trash/snack_bowl
+
+/obj/item/weapon/reagent_containers/food/snacks/chilied_eggs/Initialize()
+ . = . = ..()
+ reagents.add_reagent("egg", 6)
+ reagents.add_reagent("protein", 2)
+
+
+/obj/item/weapon/reagent_containers/food/snacks/cheese_cracker
+ name = "supreme cheese toast"
+ desc = "A piece of toast lathered with butter, cheese, spices, and herbs."
+ icon = 'icons/obj/food_syn.dmi'
+ icon_state = "cheese_cracker"
+ nutriment_desc = list("cheese toast" = 8)
+ nutriment_amt = 8
+
+/obj/item/weapon/reagent_containers/food/snacks/bacon_and_eggs
+ name = "bacon and eggs"
+ desc = "A piece of bacon and two fried eggs."
+ icon = 'icons/obj/food_syn.dmi'
+ icon_state = "bacon_and_eggs"
+ trash = /obj/item/trash/plate
+
+/obj/item/weapon/reagent_containers/food/snacks/bacon_and_eggs/Initialize()
+ . = . = ..()
+ reagents.add_reagent("protein", 3)
+ reagents.add_reagent("egg", 1)
+
+/obj/item/weapon/reagent_containers/food/snacks/sweet_and_sour
+ name = "sweet and sour pork"
+ desc = "A traditional ancient sol recipe with a few liberties taken with meat selection."
+ icon = 'icons/obj/food_syn.dmi'
+ icon_state = "sweet_and_sour"
+ nutriment_desc = list("sweet and sour" = 6)
+ nutriment_amt = 6
+ trash = /obj/item/trash/plate
+
+/obj/item/weapon/reagent_containers/food/snacks/sweet_and_sour/Initialize()
+ . = . = ..()
+ reagents.add_reagent("protein", 3)
+
+/obj/item/weapon/reagent_containers/food/snacks/corn_dog
+ name = "corn dog"
+ desc = "A cornbread covered sausage deepfried in oil."
+ icon = 'icons/obj/food_syn.dmi'
+ icon_state = "corndog"
+ nutriment_desc = list("corn batter" = 4)
+ nutriment_amt = 4
+
+/obj/item/weapon/reagent_containers/food/snacks/corn_dog/Initialize()
+ . = . = ..()
+ reagents.add_reagent("protein", 3)
+
+/obj/item/weapon/reagent_containers/food/snacks/truffle
+ name = "chocolate truffle"
+ desc = "Rich bite-sized chocolate."
+ icon = 'icons/obj/food_syn.dmi'
+ icon_state = "truffle"
+ nutriment_amt = 0
+ bitesize = 4
+
+/obj/item/weapon/reagent_containers/food/snacks/truffle/Initialize()
+ . = . = ..()
+ reagents.add_reagent("coco", 6)
+
+/obj/item/weapon/reagent_containers/food/snacks/truffle/random
+ name = "mystery chocolate truffle"
+ desc = "Rich bite-sized chocolate with a mystery filling!"
+
+/obj/item/weapon/reagent_containers/food/snacks/truffle/random/Initialize()
+ . = . = ..()
+ var/reagent_string = pick(list("cream","cherryjelly","mint","frostoil","capsaicin","cream","coffee","milkshake"))
+ reagents.add_reagent(reagent_string, 4)
+
+/obj/item/weapon/reagent_containers/food/snacks/bacon_flatbread
+ name = "bacon cheese flatbread"
+ desc = "Not a pizza."
+ icon_state = "bacon_pizza"
+ icon = 'icons/obj/food_syn.dmi'
+ nutriment_desc = list("flatbread" = 5)
+ nutriment_amt = 5
+
+/obj/item/weapon/reagent_containers/food/snacks/bacon_flatbread/Initialize()
+ . = . = ..()
+ reagents.add_reagent("protein", 5)
+
+/obj/item/weapon/reagent_containers/food/snacks/meat_pocket
+ name = "meat pocket"
+ desc = "Meat and cheese stuffed in a flatbread pocket, grilled to perfection."
+ icon = 'icons/obj/food_syn.dmi'
+ icon_state = "meat_pocket"
+ nutriment_desc = list("flatbread" = 3)
+ nutriment_amt = 3
+
+/obj/item/weapon/reagent_containers/food/snacks/meat_pocket/Initialize()
+ . = . = ..()
+ reagents.add_reagent("protein", 3)
+
+/obj/item/weapon/reagent_containers/food/snacks/fish_taco
+ name = "carp taco"
+ desc = "A questionably cooked fish taco decorated with herbs, spices, and special sauce."
+ icon = 'icons/obj/food_syn.dmi'
+ icon_state = "fish_taco"
+ nutriment_desc = list("flatbread" = 3)
+ nutriment_amt = 3
+
+/obj/item/weapon/reagent_containers/food/snacks/fish_taco/Initialize()
+ . = . = ..()
+ reagents.add_reagent("seafood",3)
+
+/obj/item/weapon/reagent_containers/food/snacks/nt_muffin
+ name = "\improper NtMuffin"
+ desc = "A NanoTrasen sponsered biscuit with egg, cheese, and sausage."
+ icon = 'icons/obj/food_syn.dmi'
+ icon_state = "nt_muffin"
+ nutriment_desc = list("biscuit" = 3)
+ nutriment_amt = 3
+
+/obj/item/weapon/reagent_containers/food/snacks/nt_muffin/Initialize()
+ . = . = ..()
+ reagents.add_reagent("protein",5)
+
+/obj/item/weapon/reagent_containers/food/snacks/pineapple_ring
+ name = "pineapple ring"
+ desc = "What the hell is this?"
+ icon = 'icons/obj/food_syn.dmi'
+ icon_state = "pineapple_ring"
+ nutriment_desc = list("sweetness" = 2)
+ nutriment_amt = 2
+
+/obj/item/weapon/reagent_containers/food/snacks/pineapple_ring/Initialize()
+ . = . = ..()
+ reagents.add_reagent("pineapplejuice",3)
+
+/obj/item/weapon/reagent_containers/food/snacks/sliceable/pizza/pineapple
+ name = "ham & pineapple pizza"
+ desc = "One of the most debated pizzas in existence."
+ icon = 'icons/obj/food_syn.dmi'
+ icon_state = "pineapple_pizza"
+ slice_path = /obj/item/weapon/reagent_containers/food/snacks/pineappleslice
+ slices_num = 6
+ center_of_mass = list("x"=16, "y"=11)
+ nutriment_desc = list("pizza crust" = 10, "tomato" = 10, "ham" = 10)
+ nutriment_amt = 30
+ bitesize = 2
+
+/obj/item/weapon/reagent_containers/food/snacks/sliceable/pizza/pineapple/Initialize()
+ . = . = ..()
+ reagents.add_reagent("protein", 4)
+ reagents.add_reagent("cheese", 5)
+ reagents.add_reagent("tomatojuice", 6)
+
+/obj/item/weapon/reagent_containers/food/snacks/pineappleslice
+ name = "ham & pineapple pizza slice"
+ desc = "A slice of contraband."
+ icon = 'icons/obj/food_syn.dmi'
+ icon_state = "pineapple_pizza_slice"
+ filling_color = "#BAA14C"
+ bitesize = 2
+ center_of_mass = list("x"=18, "y"=13)
+
+/obj/item/weapon/reagent_containers/food/snacks/pineappleslice/filled
+ nutriment_desc = list("pizza crust" = 5, "tomato" = 5)
+ nutriment_amt = 5
+
+/obj/item/weapon/reagent_containers/food/snacks/burger/bacon
+ name = "bacon burger"
+ desc = "The cornerstone of every nutritious breakfast, now with bacon!"
+ icon = 'icons/obj/food_syn.dmi'
+ icon_state = "baconburger"
+ filling_color = "#D63C3C"
+ center_of_mass = list("x"=16, "y"=11)
+ nutriment_desc = list("bun" = 2)
+ nutriment_amt = 3
+ bitesize = 2
+
+/obj/item/weapon/reagent_containers/food/snacks/burger/bacon/Initialize()
+ . = . = ..()
+ reagents.add_reagent("protein", 4)
+
+/obj/item/weapon/reagent_containers/food/snacks/blt
+ name = "BLT"
+ desc = "Bacon, lettuce, tomatoes. The perfect lunch."
+ icon = 'icons/obj/food_syn.dmi'
+ icon_state = "blt"
+ filling_color = "#D63C3C"
+ center_of_mass = list("x"=16, "y"=16)
+ nutriment_desc = list("bread" = 4)
+ nutriment_amt = 4
+ bitesize = 2
+
+/obj/item/weapon/reagent_containers/food/snacks/blt/Initialize()
+ . = . = ..()
+ reagents.add_reagent("protein", 4)
+
+/obj/item/weapon/reagent_containers/food/snacks/onionrings
+ name = "onion rings"
+ desc = "Like circular fries but better."
+ icon = 'icons/obj/food_syn.dmi'
+ icon_state = "onionrings"
+ trash = /obj/item/trash/plate
+ filling_color = "#eddd00"
+ center_of_mass = list("x"=16,"y"=11)
+ nutriment_desc = list("fried onions" = 5)
+ nutriment_amt = 5
+ bitesize = 2
+
+/obj/item/weapon/reagent_containers/food/snacks/berrymuffin
+ name = "berry muffin"
+ desc = "A delicious and spongy little cake, with berries."
+ icon = 'icons/obj/food_syn.dmi'
+ icon_state = "berrymuffin"
+ filling_color = "#E0CF9B"
+ center_of_mass = list("x"=17, "y"=4)
+ nutriment_amt = 5
+ nutriment_desc = list("sweetness" = 1, "muffin" = 2, "berries" = 2)
+ bitesize = 2
+
+/obj/item/weapon/reagent_containers/food/snacks/soup/onion
+ name = "onion soup"
+ desc = "A soup with layers."
+ icon = 'icons/obj/food_syn.dmi'
+ icon_state = "onionsoup"
+ trash = /obj/item/trash/snack_bowl
+ filling_color = "#E0C367"
+ center_of_mass = list("x"=16, "y"=7)
+ nutriment_amt = 5
+ nutriment_desc = list("onion" = 2, "soup" = 2)
+ bitesize = 3
+
+/obj/item/weapon/reagent_containers/food/snacks/porkbowl
+ name = "pork bowl"
+ desc = "A bowl of fried rice with cuts of meat."
+ icon = 'icons/obj/food_syn.dmi'
+ icon_state = "porkbowl"
+ trash = /obj/item/trash/snack_bowl
+ filling_color = "#FFFBDB"
+ bitesize = 2
+
+/obj/item/weapon/reagent_containers/food/snacks/porkbowl/Initialize()
+ . = ..()
+ reagents.add_reagent("rice", 6)
+ reagents.add_reagent("protein", 4)
+
+/obj/item/weapon/reagent_containers/food/snacks/mashedpotato
+ name = "mashed potato"
+ desc = "Pillowy mounds of mashed potato."
+ icon = 'icons/obj/food_syn.dmi'
+ icon_state = "mashedpotato"
+ trash = /obj/item/trash/plate
+ filling_color = "#EDDD00"
+ center_of_mass = list("x"=16, "y"=11)
+ nutriment_amt = 4
+ nutriment_desc = list("mashed potatoes" = 4)
+ bitesize = 2
+
+/obj/item/weapon/reagent_containers/food/snacks/croissant
+ name = "croissant"
+ desc = "True french cuisine."
+ icon = 'icons/obj/food_syn.dmi'
+ filling_color = "#E3D796"
+ icon_state = "croissant"
+ nutriment_amt = 4
+ nutriment_desc = list("french bread" = 4)
+ bitesize = 2
+
+/obj/item/weapon/reagent_containers/food/snacks/crabmeat
+ name = "crab legs"
+ desc = "... Coffee? Is that you?"
+ icon = 'icons/obj/food_syn.dmi'
+ icon_state = "crabmeat"
+ bitesize = 1
+
+/obj/item/weapon/reagent_containers/food/snacks/crabmeat/Initialize()
+ . = . = ..()
+ reagents.add_reagent("seafood", 2)
+
+/obj/item/weapon/reagent_containers/food/snacks/crab_legs
+ name = "steamed crab legs"
+ desc = "Crab legs steamed and buttered to perfection. One day when the boss gets hungry..."
+ icon = 'icons/obj/food_syn.dmi'
+ icon_state = "crablegs"
+ nutriment_amt = 2
+ nutriment_desc = list("savory butter" = 2)
+ bitesize = 2
+ trash = /obj/item/trash/plate
+
+/obj/item/weapon/reagent_containers/food/snacks/crab_legs/Initialize()
+ . = . = ..()
+ reagents.add_reagent("seafood", 6)
+ reagents.add_reagent("sodiumchloride", 1)
+
+/obj/item/weapon/reagent_containers/food/snacks/pancakes
+ name = "pancakes"
+ desc = "Pancakes with berries, delicious."
+ icon = 'icons/obj/food_syn.dmi'
+ icon_state = "pancakes"
+ trash = /obj/item/trash/plate
+ center_of_mass = list("x"=15, "y"=11)
+ nutriment_desc = list("pancake" = 8)
+ nutriment_amt = 8
+ bitesize = 2
+
+/obj/item/weapon/reagent_containers/food/snacks/nugget
+ name = "chicken nugget"
+ icon = 'icons/obj/food_syn.dmi'
+ icon_state = "nugget_lump"
+ bitesize = 3
+
+/obj/item/weapon/reagent_containers/food/snacks/nugget/Initialize()
+ . = . = ..()
+ var/shape = pick("lump", "star", "lizard", "corgi")
+ desc = "A chicken nugget vaguely shaped like a [shape]."
+ icon_state = "nugget_[shape]"
+ reagents.add_reagent("protein", 4)
+
+/obj/item/weapon/reagent_containers/food/snacks/icecreamsandwich
+ name = "ice cream sandwich"
+ desc = "Portable ice cream in its own packaging."
+ icon = 'icons/obj/food_syn.dmi'
+ icon_state = "icecreamsandwich"
+ filling_color = "#343834"
+ center_of_mass = list("x"=15, "y"=4)
+ nutriment_desc = list("ice cream" = 4)
+ nutriment_amt = 4
+
+/obj/item/weapon/reagent_containers/food/snacks/honeybun
+ name = "honey bun"
+ desc = "A sticky pastry bun glazed with honey."
+ icon = 'icons/obj/food_syn.dmi'
+ icon_state = "honeybun"
+ nutriment_desc = list("pastry" = 1)
+ nutriment_amt = 3
+ bitesize = 3
+
+/obj/item/weapon/reagent_containers/food/snacks/honeybun/Initialize()
+ . = . = ..()
+ reagents.add_reagent("honey", 3)
+
+// Moved /bun/attackby() from /code/modules/food/food/snacks.dm
+/obj/item/weapon/reagent_containers/food/snacks/bun/attackby(obj/item/weapon/W as obj, mob/user as mob)
+ var/obj/item/weapon/reagent_containers/food/snacks/result = null
+ // Bun + meatball = burger
+ if(istype(W,/obj/item/weapon/reagent_containers/food/snacks/meatball))
+ result = new /obj/item/weapon/reagent_containers/food/snacks/monkeyburger(src)
+ to_chat(user, "You make a burger.")
+ qdel(W)
+ qdel(src)
+
+ // Bun + cutlet = hamburger
+ else if(istype(W,/obj/item/weapon/reagent_containers/food/snacks/cutlet))
+ result = new /obj/item/weapon/reagent_containers/food/snacks/monkeyburger(src)
+ to_chat(user, "You make a burger.")
+ qdel(W)
+ qdel(src)
+
+ // Bun + sausage = hotdog
+ else if(istype(W,/obj/item/weapon/reagent_containers/food/snacks/sausage))
+ result = new /obj/item/weapon/reagent_containers/food/snacks/hotdog(src)
+ to_chat(user, "You make a hotdog.")
+ qdel(W)
+ qdel(src)
+
+ // Bun + mouse = mouseburger
+ else if(istype(W,/obj/item/weapon/reagent_containers/food/snacks/variable/mob))
+ var/obj/item/weapon/reagent_containers/food/snacks/variable/mob/MF = W
+
+ switch (MF.kitchen_tag)
+ if ("rodent")
+ result = new /obj/item/weapon/reagent_containers/food/snacks/mouseburger(src)
+ to_chat(user, "You make a mouseburger!")
+
+ if (result)
+ if (W.reagents)
+ //Reagents of reuslt objects will be the sum total of both. Except in special cases where nonfood items are used
+ //Eg robot head
+ result.reagents.clear_reagents()
+ W.reagents.trans_to(result, W.reagents.total_volume)
+ reagents.trans_to(result, reagents.total_volume)
+
+ //If the bun was in your hands, the result will be too
+ if (loc == user)
+ user.drop_from_inventory(src)
+ user.put_in_hands(result)
+
+// Chip update.
+/obj/item/weapon/reagent_containers/food/snacks/tortilla
+ name = "tortilla"
+ desc = "A thin, flour-based tortilla that can be used in a variety of dishes, or can be served as is."
+ icon = 'icons/obj/food_syn.dmi'
+ icon_state = "tortilla"
+ bitesize = 3
+ nutriment_desc = list("tortilla" = 1)
+ center_of_mass = list("x"=16, "y"=16)
+ nutriment_amt = 6
+
+//chips
+/obj/item/weapon/reagent_containers/food/snacks/chip
+ name = "chip"
+ desc = "A portion sized chip good for dipping."
+ icon = 'icons/obj/food_syn.dmi'
+ icon_state = "chip"
+ var/bitten_state = "chip_half"
+ bitesize = 1
+ center_of_mass = list("x"=16, "y"=16)
+ nutriment_desc = list("nacho chips" = 1)
+ nutriment_amt = 2
+
+/obj/item/weapon/reagent_containers/food/snacks/chip/on_consume(mob/M as mob)
+ if(reagents && reagents.total_volume)
+ icon_state = bitten_state
+ . = . = ..()
+
+/obj/item/weapon/reagent_containers/food/snacks/chip/salsa
+ name = "salsa chip"
+ desc = "A portion sized chip good for dipping. This one has salsa on it."
+ icon_state = "chip_salsa"
+ bitten_state = "chip_half"
+
+/obj/item/weapon/reagent_containers/food/snacks/chip/guac
+ name = "guac chip"
+ desc = "A portion sized chip good for dipping. This one has guac on it."
+ icon_state = "chip_guac"
+ bitten_state = "chip_half"
+
+/obj/item/weapon/reagent_containers/food/snacks/chip/cheese
+ name = "cheese chip"
+ desc = "A portion sized chip good for dipping. This one has cheese sauce on it."
+ icon_state = "chip_cheese"
+ bitten_state = "chip_half"
+
+/obj/item/weapon/reagent_containers/food/snacks/chip/nacho
+ name = "nacho chip"
+ desc = "A nacho ship stray from a plate of cheesy nachos."
+ icon_state = "chip_nacho"
+ bitten_state = "chip_half"
+
+/obj/item/weapon/reagent_containers/food/snacks/chip/nacho/salsa
+ name = "nacho chip"
+ desc = "A nacho ship stray from a plate of cheesy nachos. This one has salsa on it."
+ icon_state = "chip_nacho_salsa"
+ bitten_state = "chip_half"
+
+/obj/item/weapon/reagent_containers/food/snacks/chip/nacho/guac
+ name = "nacho chip"
+ desc = "A nacho ship stray from a plate of cheesy nachos. This one has guac on it."
+ icon_state = "chip_nacho_guac"
+ bitten_state = "chip_half"
+
+/obj/item/weapon/reagent_containers/food/snacks/chip/nacho/cheese
+ name = "nacho chip"
+ desc = "A nacho ship stray from a plate of cheesy nachos. This one has extra cheese on it."
+ icon_state = "chip_nacho_cheese"
+ bitten_state = "chip_half"
+
+// chip plates
+/obj/item/weapon/reagent_containers/food/snacks/chipplate
+ name = "basket of chips"
+ desc = "A plate of chips intended for dipping."
+ icon = 'icons/obj/food_syn.dmi'
+ icon_state = "chip_basket"
+ trash = /obj/item/trash/chipbasket
+ var/vendingobject = /obj/item/weapon/reagent_containers/food/snacks/chip
+ nutriment_desc = list("tortilla chips" = 10)
+ bitesize = 1
+ nutriment_amt = 10
+
+/obj/item/weapon/reagent_containers/food/snacks/chipplate/attack_hand(mob/user as mob)
+ var/obj/item/weapon/reagent_containers/food/snacks/returningitem = new vendingobject(loc)
+ returningitem.reagents.clear_reagents()
+ reagents.trans_to(returningitem, bitesize)
+ returningitem.bitesize = bitesize/2
+ user.put_in_hands(returningitem)
+ if (reagents && reagents.total_volume)
+ to_chat(user, "You take a chip from the plate.")
+ else
+ to_chat(user, "You take the last chip from the plate.")
+ var/obj/waste = new trash(loc)
+ if (loc == user)
+ user.put_in_hands(waste)
+ qdel(src)
+
+/obj/item/weapon/reagent_containers/food/snacks/chipplate/MouseDrop(mob/user) //Dropping the chip onto the user
+ if(istype(user) && user == usr)
+ user.put_in_active_hand(src)
+ src.pickup(user)
+ return
+ . = . = ..()
+
+/obj/item/weapon/reagent_containers/food/snacks/chipplate/nachos
+ name = "plate of nachos"
+ desc = "A very cheesy nacho plate."
+ icon_state = "nachos"
+ trash = /obj/item/trash/plate
+ vendingobject = /obj/item/weapon/reagent_containers/food/snacks/chip/nacho
+ nutriment_desc = list("tortilla chips" = 10)
+ bitesize = 1
+ nutriment_amt = 10
+
+//dips
+/obj/item/weapon/reagent_containers/food/snacks/dip
+ name = "queso dip"
+ desc = "A simple, cheesy dip consisting of tomatos, cheese, and spices."
+ var/nachotrans = /obj/item/weapon/reagent_containers/food/snacks/chip/nacho/cheese
+ var/chiptrans = /obj/item/weapon/reagent_containers/food/snacks/chip/cheese
+ icon = 'icons/obj/food_syn.dmi'
+ icon_state = "dip_cheese"
+ trash = /obj/item/trash/dipbowl
+ bitesize = 1
+ nutriment_desc = list("queso" = 20)
+ center_of_mass = list("x"=16, "y"=16)
+ nutriment_amt = 20
+
+/obj/item/weapon/reagent_containers/food/snacks/dip/attackby(obj/item/weapon/reagent_containers/food/snacks/item as obj, mob/user as mob)
+ . = . = ..()
+ var/obj/item/weapon/reagent_containers/food/snacks/returningitem
+ if(istype(item,/obj/item/weapon/reagent_containers/food/snacks/chip/nacho) && item.icon_state == "chip_nacho")
+ returningitem = new nachotrans(src)
+ else if (istype(item,/obj/item/weapon/reagent_containers/food/snacks/chip) && (item.icon_state == "chip" || item.icon_state == "chip_half"))
+ returningitem = new chiptrans(src)
+ if(returningitem)
+ returningitem.reagents.clear_reagents() //Clear the new chip
+ var/memed = 0
+ item.reagents.trans_to(returningitem, item.reagents.total_volume) //Old chip to new chip
+ if(item.icon_state == "chip_half")
+ returningitem.icon_state = "[returningitem.icon_state]_half"
+ returningitem.bitesize = Clamp(returningitem.reagents.total_volume,1,10)
+ else if(prob(1))
+ memed = 1
+ user << "You scoop up some dip with the chip, but mid-scop, the chip breaks off into the dreadful abyss of dip, never to be seen again..."
+ returningitem.icon_state = "[returningitem.icon_state]_half"
+ returningitem.bitesize = Clamp(returningitem.reagents.total_volume,1,10)
+ else
+ returningitem.bitesize = Clamp(returningitem.reagents.total_volume*0.5,1,10)
+ qdel(item)
+ reagents.trans_to(returningitem, bitesize) //Dip to new chip
+ user.put_in_hands(returningitem)
+
+ if (reagents && reagents.total_volume)
+ if(!memed)
+ user << "You scoop up some dip with the chip."
+ else
+ if(!memed)
+ user << "You scoop up the remaining dip with the chip."
+ var/obj/waste = new trash(loc)
+ if (loc == user)
+ user.put_in_hands(waste)
+ qdel(src)
+
+/obj/item/weapon/reagent_containers/food/snacks/dip/salsa
+ name = "salsa dip"
+ desc = "Traditional Sol chunky salsa dip containing tomatos, peppers, and spices."
+ nachotrans = /obj/item/weapon/reagent_containers/food/snacks/chip/nacho/salsa
+ chiptrans = /obj/item/weapon/reagent_containers/food/snacks/chip/salsa
+ icon_state = "dip_salsa"
+ nutriment_desc = list("salsa" = 20)
+ nutriment_amt = 20
+
+/obj/item/weapon/reagent_containers/food/snacks/dip/guac
+ name = "guac dip"
+ desc = "A recreation of the ancient Sol 'Guacamole' dip using tofu, limes, and spices. This recreation obviously leaves out mole meat."
+ nachotrans = /obj/item/weapon/reagent_containers/food/snacks/chip/nacho/guac
+ chiptrans = /obj/item/weapon/reagent_containers/food/snacks/chip/guac
+ icon_state = "dip_guac"
+ nutriment_desc = list("guacmole" = 20)
+ nutriment_amt = 20
+
+//burritos
+/obj/item/weapon/reagent_containers/food/snacks/burrito
+ name = "meat burrito"
+ desc = "Meat wrapped in a flour tortilla. It's a burrito by definition."
+ icon = 'icons/obj/food_syn.dmi'
+ icon_state = "burrito"
+ bitesize = 4
+ center_of_mass = list("x"=16, "y"=16)
+ nutriment_desc = list("tortilla" = 6)
+ nutriment_amt = 6
+
+/obj/item/weapon/reagent_containers/food/snacks/burrito/Initialize()
+ . = . = ..()
+ reagents.add_reagent("protein", 4)
+
+
+/obj/item/weapon/reagent_containers/food/snacks/burrito_vegan
+ name = "vegan burrito"
+ desc = "Tofu wrapped in a flour tortilla. Those seen with this food object are Valid."
+ icon = 'icons/obj/food_syn.dmi'
+ icon_state = "burrito_vegan"
+ bitesize = 4
+ center_of_mass = list("x"=16, "y"=16)
+ nutriment_desc = list("tortilla" = 6)
+ nutriment_amt = 6
+
+/obj/item/weapon/reagent_containers/food/snacks/burrito_vegan/Initialize()
+ . = . = ..()
+ reagents.add_reagent("tofu", 6)
+
+/obj/item/weapon/reagent_containers/food/snacks/burrito_spicy
+ name = "spicy meat burrito"
+ desc = "Meat and chilis wrapped in a flour tortilla."
+ icon = 'icons/obj/food_syn.dmi'
+ icon_state = "burrito_spicy"
+ bitesize = 4
+ center_of_mass = list("x"=16, "y"=16)
+ nutriment_desc = list("tortilla" = 6)
+ nutriment_amt = 6
+
+/obj/item/weapon/reagent_containers/food/snacks/burrito_spicy/Initialize()
+ . = . = ..()
+ reagents.add_reagent("protein", 6)
+
+/obj/item/weapon/reagent_containers/food/snacks/burrito_cheese
+ name = "meat cheese burrito"
+ desc = "Meat and melted cheese wrapped in a flour tortilla."
+ icon = 'icons/obj/food_syn.dmi'
+ icon_state = "burrito_cheese"
+ bitesize = 4
+ center_of_mass = list("x"=16, "y"=16)
+ nutriment_desc = list("tortilla" = 6)
+ nutriment_amt = 6
+
+/obj/item/weapon/reagent_containers/food/snacks/burrito_cheese/Initialize()
+ . = . = ..()
+ reagents.add_reagent("protein", 6)
+
+/obj/item/weapon/reagent_containers/food/snacks/burrito_cheese_spicy
+ name = "spicy cheese meat burrito"
+ desc = "Meat, melted cheese, and chilis wrapped in a flour tortilla."
+ icon_state = "burrito_cheese_spicy"
+ bitesize = 4
+ center_of_mass = list("x"=16, "y"=16)
+ nutriment_desc = list("tortilla" = 6)
+ nutriment_amt = 6
+
+/obj/item/weapon/reagent_containers/food/snacks/burrito_cheese_spicy/Initialize()
+ . = . = ..()
+ reagents.add_reagent("protein", 6)
+
+/obj/item/weapon/reagent_containers/food/snacks/burrito_hell
+ name = "el diablo"
+ desc = "Meat and an insane amount of chilis packed in a flour tortilla. The Chaplain will see you now."
+ icon = 'icons/obj/food_syn.dmi'
+ icon_state = "burrito_hell"
+ bitesize = 4
+ center_of_mass = list("x"=16, "y"=16)
+ nutriment_desc = list("hellfire" = 6)
+ nutriment_amt = 24// 10 Chilis is a lot.
+
+/obj/item/weapon/reagent_containers/food/snacks/breakfast_wrap
+ name = "breakfast wrap"
+ desc = "Bacon, eggs, cheese, and tortilla grilled to perfection."
+ icon = 'icons/obj/food_syn.dmi'
+ icon_state = "breakfast_wrap"
+ bitesize = 4
+ center_of_mass = list("x"=16, "y"=16)
+ nutriment_desc = list("tortilla" = 6)
+ nutriment_amt = 6
+
+/obj/item/weapon/reagent_containers/food/snacks/burrito_hell/Initialize()
+ . = . = ..()
+ reagents.add_reagent("protein", 9)
+ reagents.add_reagent("condensedcapsaicin", 20) //what could possibly go wrong
+
+/obj/item/weapon/reagent_containers/food/snacks/burrito_mystery
+ name = "mystery meat burrito"
+ desc = "The mystery is, why aren't you BSAing it?"
+ icon = 'icons/obj/food_syn.dmi'
+ icon_state = "burrito_mystery"
+ bitesize = 5
+ center_of_mass = list("x"=16, "y"=16)
+ nutriment_desc = list("regret" = 6)
+ nutriment_amt = 6
+
+/obj/item/weapon/reagent_containers/food/snacks/hatchling_suprise
+ name = "hatchling suprise"
+ desc = "A poached egg on top of three slices of bacon. A typical breakfast for hungry Unathi children."
+ icon = 'icons/obj/food_syn.dmi'
+ icon_state = "hatchling_suprise"
+ trash = /obj/item/trash/snack_bowl
+
+/obj/item/weapon/reagent_containers/food/snacks/hatchling_suprise/Initialize()
+ . = . = ..()
+ reagents.add_reagent("egg", 2)
+ reagents.add_reagent("protein", 4)
+
+/obj/item/weapon/reagent_containers/food/snacks/red_sun_special
+ name = "red sun special"
+ desc = "One lousy piece of sausage sitting on melted cheese curds. A cheap meal for the Unathi peasants of Moghes."
+ icon = 'icons/obj/food_syn.dmi'
+ icon_state = "red_sun_special"
+ trash = /obj/item/trash/plate
+
+/obj/item/weapon/reagent_containers/food/snacks/red_sun_special/Initialize()
+ . = . = ..()
+ reagents.add_reagent("protein", 2)
+
+/obj/item/weapon/reagent_containers/food/snacks/riztizkzi_sea
+ name = "moghesian sea delight"
+ desc = "Three raw eggs floating in a sea of blood. An authentic replication of an ancient Unathi delicacy."
+ icon = 'icons/obj/food_syn.dmi'
+ icon_state = "riztizkzi_sea"
+ trash = /obj/item/trash/snack_bowl
+
+/obj/item/weapon/reagent_containers/food/snacks/riztizkzi_sea/Initialize()
+ . = . = ..()
+ reagents.add_reagent("egg", 4)
+
+/obj/item/weapon/reagent_containers/food/snacks/father_breakfast
+ name = "breakfast of champions"
+ desc = "A sausage and an omelette on top of a grilled steak."
+ icon = 'icons/obj/food_syn.dmi'
+ icon_state = "father_breakfast"
+ trash = /obj/item/trash/plate
+
+/obj/item/weapon/reagent_containers/food/snacks/father_breakfast/Initialize()
+ . = . = ..()
+ reagents.add_reagent("egg", 4)
+ reagents.add_reagent("protein", 6)
+
+/obj/item/weapon/reagent_containers/food/snacks/stuffed_meatball
+ name = "stuffed meatball" //YES
+ desc = "A meatball loaded with cheese."
+ icon = 'icons/obj/food_syn.dmi'
+ icon_state = "stuffed_meatball"
+
+/obj/item/weapon/reagent_containers/food/snacks/stuffed_meatball/Initialize()
+ . = . = ..()
+ reagents.add_reagent("protein", 4)
+
+/obj/item/weapon/reagent_containers/food/snacks/egg_pancake
+ name = "meat pancake"
+ desc = "An omelette baked on top of a giant meat patty. This monstrousity is typically shared between four people during a dinnertime meal."
+ icon = 'icons/obj/food_syn.dmi'
+ icon_state = "egg_pancake"
+ trash = /obj/item/trash/plate
+
+/obj/item/weapon/reagent_containers/food/snacks/egg_pancake/Initialize()
+ . = . = ..()
+ reagents.add_reagent("protein", 6)
+ reagents.add_reagent("egg", 2)
+
+/obj/item/weapon/reagent_containers/food/snacks/sliceable/grilled_carp
+ name = "korlaaskak"
+ desc = "A well-dressed carp, seared to perfection and adorned with herbs and spices. Can be sliced into proper serving sizes."
+ icon = 'icons/obj/food_syn.dmi'
+ icon_state = "grilled_carp"
+ slice_path = /obj/item/weapon/reagent_containers/food/snacks/grilled_carp_slice
+ slices_num = 6
+ trash = /obj/item/trash/snacktray
+
+/obj/item/weapon/reagent_containers/food/snacks/sliceable/grilled_carp/Initialize()
+ . = . = ..()
+ reagents.add_reagent("seafood", 12)
+
+/obj/item/weapon/reagent_containers/food/snacks/grilled_carp_slice
+ name = "korlaaskak slice"
+ desc = "A well-dressed fillet of carp, seared to perfection and adorned with herbs and spices."
+ icon = 'icons/obj/food_syn.dmi'
+ icon_state = "grilled_carp_slice"
+ trash = /obj/item/trash/plate
+
+
+// SYNNONO MEME FOODS EXPANSION - Credit to Synnono from Aurorastation. Come play here sometime :(
+
+/obj/item/weapon/reagent_containers/food/snacks/redcurry
+ name = "red curry"
+ gender = PLURAL
+ desc = "A bowl of creamy red curry with meat and rice. This one looks savory."
+ icon = 'icons/obj/food_syn.dmi'
+ icon_state = "redcurry"
+ trash = /obj/item/trash/snack_bowl
+ filling_color = "#f73333"
+ nutriment_amt = 8
+ nutriment_desc = list("savory meat and rice" = 8)
+ center_of_mass = list("x"=16, "y"=8)
+
+/obj/item/weapon/reagent_containers/food/snacks/redcurry/Initialize()
+ . = ..()
+ reagents.add_reagent("protein", 7)
+ bitesize = 3
+
+/obj/item/weapon/reagent_containers/food/snacks/greencurry
+ name = "green curry"
+ gender = PLURAL
+ desc = "A bowl of creamy green curry with tofu, hot peppers and rice. This one looks spicy!"
+ icon = 'icons/obj/food_syn.dmi'
+ icon_state = "greencurry"
+ trash = /obj/item/trash/snack_bowl
+ filling_color = "#58b76c"
+ nutriment_amt = 12
+ nutriment_desc = list("tofu and rice" = 12)
+ center_of_mass = list("x"=16, "y"=8)
+
+/obj/item/weapon/reagent_containers/food/snacks/greencurry/Initialize()
+ . = ..()
+ reagents.add_reagent("protein", 1)
+ reagents.add_reagent("capsaicin", 2)
+ bitesize = 3
+
+/obj/item/weapon/reagent_containers/food/snacks/yellowcurry
+ name = "yellow curry"
+ gender = PLURAL
+ desc = "A bowl of creamy yellow curry with potatoes, peanuts and rice. This one looks mild."
+ icon = 'icons/obj/food_syn.dmi'
+ icon_state = "yellowcurry"
+ trash = /obj/item/trash/snack_bowl
+ filling_color = "#bc9509"
+ nutriment_amt = 13
+ nutriment_desc = list("rice and potatoes" = 13)
+ center_of_mass = list("x"=16, "y"=8)
+
+/obj/item/weapon/reagent_containers/food/snacks/yellowcurry/Initialize()
+ . = ..()
+ reagents.add_reagent("protein", 2)
+ bitesize = 3
+
+/obj/item/weapon/reagent_containers/food/snacks/bearburger
+ name = "bearburger"
+ desc = "The solution to your unbearable hunger."
+ icon = 'icons/obj/food_syn.dmi'
+ icon_state = "bearburger"
+ filling_color = "#5d5260"
+ center_of_mass = list("x"=15, "y"=11)
+
+/obj/item/weapon/reagent_containers/food/snacks/bearburger/Initialize()
+ . = ..()
+ reagents.add_reagent("protein", 4) //So spawned burgers will not be empty I guess?
+ bitesize = 5
+
+/obj/item/weapon/reagent_containers/food/snacks/bearchili
+ name = "bear chili"
+ gender = PLURAL
+ desc = "A dark, hearty chili. Can you bear the heat?"
+ icon = 'icons/obj/food_syn.dmi'
+ icon_state = "bearchili"
+ trash = /obj/item/trash/snack_bowl
+ filling_color = "#702708"
+ nutriment_amt = 3
+ nutriment_desc = list("dark, hearty chili" = 3)
+ center_of_mass = list("x"=15, "y"=9)
+
+/obj/item/weapon/reagent_containers/food/snacks/bearchili/Initialize()
+ . = ..()
+ reagents.add_reagent("protein", 3)
+ reagents.add_reagent("capsaicin", 3)
+ reagents.add_reagent("tomatojuice", 2)
+ reagents.add_reagent("hyperzine", 5)
+ bitesize = 6
+
+/obj/item/weapon/reagent_containers/food/snacks/bearstew
+ name = "bear stew"
+ gender = PLURAL
+ desc = "A thick, dark stew of bear meat and vegetables."
+ icon = 'icons/obj/food_syn.dmi'
+ icon_state = "bearstew"
+ filling_color = "#9E673A"
+ nutriment_amt = 6
+ nutriment_desc = list("hearty stew" = 6)
+ center_of_mass = list("x"=16, "y"=5)
+
+/obj/item/weapon/reagent_containers/food/snacks/bearstew/Initialize()
+ . = ..()
+ reagents.add_reagent("protein", 4)
+ reagents.add_reagent("hyperzine", 5)
+ reagents.add_reagent("tomatojuice", 5)
+ reagents.add_reagent("imidazoline", 5)
+ reagents.add_reagent("water", 5)
+ bitesize = 6
+
+/obj/item/weapon/reagent_containers/food/snacks/bibimbap
+ name = "bibimbap bowl"
+ desc = "A traditional Korean meal of meat and mixed vegetables. It's served on a bed of rice, and topped with a fried egg."
+ icon = 'icons/obj/food_syn.dmi'
+ icon_state = "bibimbap"
+ trash = /obj/item/trash/snack_bowl
+ filling_color = "#4f2100"
+ nutriment_amt = 10
+ nutriment_desc = list("egg" = 5, "vegetables" = 5)
+ center_of_mass = list("x"=15, "y"=9)
+
+/obj/item/weapon/reagent_containers/food/snacks/bibimbap/Initialize()
+ . = ..()
+ reagents.add_reagent("protein", 10)
+ bitesize = 4
+
+/obj/item/weapon/reagent_containers/food/snacks/lomein
+ name = "lo mein"
+ gender = PLURAL
+ desc = "A popular Chinese noodle dish. Chopsticks optional."
+ icon = 'icons/obj/food_syn.dmi'
+ icon_state = "lomein"
+ trash = /obj/item/trash/plate
+ filling_color = "#FCEE81"
+ nutriment_amt = 8
+ nutriment_desc = list("noodles" = 6, "sesame sauce" = 2)
+ center_of_mass = list("x"=16, "y"=10)
+
+/obj/item/weapon/reagent_containers/food/snacks/lomein/Initialize()
+ . = ..()
+ reagents.add_reagent("protein", 2)
+ bitesize = 2
+
+/obj/item/weapon/reagent_containers/food/snacks/friedrice
+ name = "fried rice"
+ gender = PLURAL
+ desc = "A less-boring dish of less-boring rice!"
+ icon = 'icons/obj/food_syn.dmi'
+ icon_state = "friedrice"
+ trash = /obj/item/trash/snack_bowl
+ filling_color = "#FFFBDB"
+ nutriment_amt = 7
+ nutriment_desc = list("rice" = 7)
+ center_of_mass = list("x"=17, "y"=11)
+
+/obj/item/weapon/reagent_containers/food/snacks/friedrice/Initialize()
+ . = ..()
+ bitesize = 2
+
+/obj/item/weapon/reagent_containers/food/snacks/chickenfillet
+ name = "chicken fillet sandwich"
+ desc = "Fried chicken, in sandwich format. Beauty is simplicity."
+ icon = 'icons/obj/food_syn.dmi'
+ icon_state = "chickenfillet"
+ filling_color = "#E9ADFF"
+ nutriment_amt = 4
+ nutriment_desc = list("breading" = 4)
+ center_of_mass = list("x"=16, "y"=16)
+
+/obj/item/weapon/reagent_containers/food/snacks/chickenfillet/Initialize()
+ . = ..()
+ reagents.add_reagent("protein", 8)
+ bitesize = 3
+
+/obj/item/weapon/reagent_containers/food/snacks/chilicheesefries
+ name = "chili cheese fries"
+ gender = PLURAL
+ desc = "A mighty plate of fries, drowned in hot chili and cheese sauce. Because your arteries are overrated."
+ icon = 'icons/obj/food_syn.dmi'
+ icon_state = "chilicheesefries"
+ trash = /obj/item/trash/plate
+ filling_color = "#EDDD00"
+ nutriment_amt = 8
+ nutriment_desc = list("hearty, cheesy fries" = 8)
+ center_of_mass = list("x"=16, "y"=11)
+
+/obj/item/weapon/reagent_containers/food/snacks/chilicheesefries/Initialize()
+ . = ..()
+ reagents.add_reagent("protein", 2)
+ reagents.add_reagent("capsaicin", 2)
+ bitesize = 4
+
+/obj/item/weapon/reagent_containers/food/snacks/friedmushroom
+ name = "fried mushroom"
+ desc = "A tender, beer-battered plump helmet, fried to crispy perfection."
+ icon = 'icons/obj/food_syn.dmi'
+ icon_state = "friedmushroom"
+ filling_color = "#EDDD00"
+ nutriment_amt = 4
+ nutriment_desc = list("alcoholic mushrooms" = 4)
+ center_of_mass = list("x"=16, "y"=11)
+
+/obj/item/weapon/reagent_containers/food/snacks/friedmushroom/Initialize()
+ . = ..()
+ reagents.add_reagent("protein", 2)
+ bitesize = 5
+
+/obj/item/weapon/reagent_containers/food/snacks/pisanggoreng
+ name = "pisang goreng"
+ gender = PLURAL
+ desc = "Crispy, starchy, sweet banana fritters. Popular street food in parts of Sol."
+ icon = 'icons/obj/food_syn.dmi'
+ icon_state = "pisanggoreng"
+ trash = /obj/item/trash/plate
+ filling_color = "#301301"
+ nutriment_amt = 8
+ nutriment_desc = list("sweet bananas" = 8)
+ center_of_mass = list("x"=16, "y"=11)
+
+/obj/item/weapon/reagent_containers/food/snacks/pisanggoreng/Initialize()
+ . = ..()
+ reagents.add_reagent("protein", 1)
+ bitesize = 3
+
+/obj/item/weapon/reagent_containers/food/snacks/meatbun
+ name = "meat bun"
+ desc = "A soft, fluffy flour bun also known as baozi. This one is filled with a spiced meat filling."
+ icon = 'icons/obj/food_syn.dmi'
+ icon_state = "meatbun"
+ filling_color = "#edd7d7"
+ nutriment_amt = 5
+ nutriment_desc = list("spice" = 5)
+ center_of_mass = list("x"=16, "y"=11)
+
+/obj/item/weapon/reagent_containers/food/snacks/meatbun/Initialize()
+ . = ..()
+ reagents.add_reagent("protein", 3)
+ bitesize = 5
+
+/obj/item/weapon/reagent_containers/food/snacks/custardbun
+ name = "custard bun"
+ desc = "A soft, fluffy flour bun also known as baozi. This one is filled with an egg custard."
+ icon = 'icons/obj/food_syn.dmi'
+ icon_state = "meatbun"
+ nutriment_amt = 6
+ nutriment_desc = list("egg custard" = 6)
+ filling_color = "#ebedc2"
+ center_of_mass = list("x"=16, "y"=11)
+
+/obj/item/weapon/reagent_containers/food/snacks/custardbun/Initialize()
+ . = ..()
+ reagents.add_reagent("protein", 2)
+ bitesize = 6
+
+/obj/item/weapon/reagent_containers/food/snacks/chickenmomo
+ name = "chicken momo"
+ gender = PLURAL
+ desc = "A plate of spiced and steamed chicken dumplings. The style originates from south Asia."
+ icon = 'icons/obj/food_syn.dmi'
+ icon_state = "momo"
+ trash = /obj/item/trash/snacktray
+ filling_color = "#edd7d7"
+ nutriment_amt = 9
+ nutriment_desc = list("spiced chicken" = 9)
+ center_of_mass = list("x"=15, "y"=9)
+
+/obj/item/weapon/reagent_containers/food/snacks/chickenmomo/Initialize()
+ . = ..()
+ reagents.add_reagent("protein", 6)
+ bitesize = 3
+
+/obj/item/weapon/reagent_containers/food/snacks/veggiemomo
+ name = "veggie momo"
+ gender = PLURAL
+ desc = "A plate of spiced and steamed vegetable dumplings. The style originates from south Asia."
+ icon = 'icons/obj/food_syn.dmi'
+ icon_state = "momo"
+ trash = /obj/item/trash/snacktray
+ filling_color = "#edd7d7"
+ nutriment_amt = 13
+ nutriment_desc = list("spiced vegetables" = 13)
+ center_of_mass = list("x"=15, "y"=9)
+
+/obj/item/weapon/reagent_containers/food/snacks/veggiemomo/Initialize()
+ . = ..()
+ reagents.add_reagent("protein", 2)
+ bitesize = 3
+
+/obj/item/weapon/reagent_containers/food/snacks/risotto
+ name = "risotto"
+ gender = PLURAL
+ desc = "A creamy, savory rice dish from southern Europe, typically cooked slowly with wine and broth. This one has bits of mushroom."
+ icon = 'icons/obj/food_syn.dmi'
+ icon_state = "risotto"
+ trash = /obj/item/trash/snack_bowl
+ filling_color = "#edd7d7"
+ nutriment_amt = 9
+ nutriment_desc = list("savory rice" = 6, "cream" = 3)
+ center_of_mass = list("x"=15, "y"=9)
+
+/obj/item/weapon/reagent_containers/food/snacks/risotto/Initialize()
+ . = ..()
+ reagents.add_reagent("protein", 1)
+ bitesize = 2
+
+/obj/item/weapon/reagent_containers/food/snacks/risottoballs
+ name = "risotto balls"
+ gender = PLURAL
+ desc = "Mushroom risotto that has been battered and deep fried. The best use of leftovers!"
+ icon = 'icons/obj/food_syn.dmi'
+ icon_state = "risottoballs"
+ trash = /obj/item/trash/snack_bowl
+ filling_color = "#edd7d7"
+ nutriment_amt = 1
+ nutriment_desc = list("batter" = 1)
+ center_of_mass = list("x"=15, "y"=9)
+
+/obj/item/weapon/reagent_containers/food/snacks/risottoballs/Initialize()
+ . = ..()
+ bitesize = 3
+
+/obj/item/weapon/reagent_containers/food/snacks/honeytoast
+ name = "piece of honeyed toast"
+ desc = "For those who like their breakfast sweet."
+ icon = 'icons/obj/food_syn.dmi'
+ icon_state = "honeytoast"
+ trash = /obj/item/trash/plate
+ filling_color = "#EDE5AD"
+ nutriment_amt = 1
+ nutriment_desc = list("sweet, crunchy bread" = 1)
+ center_of_mass = list("x"=16, "y"=9)
+
+/obj/item/weapon/reagent_containers/food/snacks/honeytoast/Initialize()
+ . = ..()
+ bitesize = 4
+
+/obj/item/weapon/reagent_containers/food/snacks/poachedegg
+ name = "poached egg"
+ desc = "A delicately poached egg with a runny yolk. Healthier than its fried counterpart."
+ icon = 'icons/obj/food_syn.dmi'
+ icon_state = "poachedegg"
+ trash = /obj/item/trash/plate
+ filling_color = "#FFDF78"
+ nutriment_amt = 1
+ nutriment_desc = list("egg" = 1)
+ center_of_mass = list("x"=16, "y"=14)
+
+/obj/item/weapon/reagent_containers/food/snacks/poachedegg/Initialize()
+ . = ..()
+ reagents.add_reagent("protein", 3)
+ reagents.add_reagent("blackpepper", 1)
+ bitesize = 2
+
+/obj/item/weapon/reagent_containers/food/snacks/ribplate
+ name = "plate of ribs"
+ desc = "A half-rack of ribs, brushed with some sort of honey-glaze. Why are there no napkins on board?"
+ icon = 'icons/obj/food_syn.dmi'
+ icon_state = "ribplate"
+ trash = /obj/item/trash/plate
+ filling_color = "#7A3D11"
+ nutriment_amt = 6
+ nutriment_desc = list("barbecue" = 6)
+ center_of_mass = list("x"=16, "y"=13)
+
+/obj/item/weapon/reagent_containers/food/snacks/ribplate/Initialize()
+ . = ..()
+ reagents.add_reagent("protein", 6)
+ reagents.add_reagent("triglyceride", 2)
+ reagents.add_reagent("blackpepper", 1)
+ reagents.add_reagent("honey", 5)
+ bitesize = 4
+
+// SLICEABLE FOODS - SYNNONO MEME FOOD EXPANSION - Credit to Synnono from Aurorastation (again)
+
+/obj/item/weapon/reagent_containers/food/snacks/sliceable/keylimepie
+ name = "key lime pie"
+ desc = "A tart, sweet dessert. What's a key lime, anyway?"
+ icon = 'icons/obj/food_syn.dmi'
+ icon_state = "keylimepie"
+ slice_path = /obj/item/weapon/reagent_containers/food/snacks/keylimepieslice
+ slices_num = 5
+ filling_color = "#F5B951"
+ nutriment_amt = 16
+ nutriment_desc = list("lime" = 12, "graham crackers" = 4)
+ center_of_mass = list("x"=16, "y"=10)
+
+/obj/item/weapon/reagent_containers/food/snacks/sliceable/keylimepie/Initialize()
+ . = ..()
+ reagents.add_reagent("protein", 4)
+
+/obj/item/weapon/reagent_containers/food/snacks/keylimepieslice
+ name = "slice of key lime pie"
+ desc = "A slice of tart pie, with whipped cream on top."
+ icon = 'icons/obj/food_syn.dmi'
+ icon_state = "keylimepieslice"
+ trash = /obj/item/trash/plate
+ filling_color = "#F5B951"
+ bitesize = 3
+ nutriment_desc = list("lime" = 1)
+ center_of_mass = list("x"=16, "y"=12)
+
+/obj/item/weapon/reagent_containers/food/snacks/keylimepieslice/filled
+ nutriment_amt = 1
+
+/obj/item/weapon/reagent_containers/food/snacks/sliceable/quiche
+ name = "quiche"
+ desc = "Real men eat this, contrary to popular belief."
+ icon = 'icons/obj/food_syn.dmi'
+ icon_state = "quiche"
+ slice_path = /obj/item/weapon/reagent_containers/food/snacks/quicheslice
+ slices_num = 5
+ filling_color = "#F5B951"
+ nutriment_amt = 10
+ nutriment_desc = list("cheese" = 5, "egg" = 5)
+ center_of_mass = list("x"=16, "y"=10)
+
+/obj/item/weapon/reagent_containers/food/snacks/sliceable/quiche/Initialize()
+ . = ..()
+ reagents.add_reagent("protein", 10)
+
+/obj/item/weapon/reagent_containers/food/snacks/quicheslice
+ name = "slice of quiche"
+ desc = "A slice of delicious quiche. Eggy, cheesy goodness."
+ icon = 'icons/obj/food_syn.dmi'
+ icon_state = "quicheslice"
+ trash = /obj/item/trash/plate
+ filling_color = "#F5B951"
+ bitesize = 3
+ nutriment_desc = list("cheesy eggs" = 1)
+ center_of_mass = list("x"=16, "y"=12)
+
+/obj/item/weapon/reagent_containers/food/snacks/quicheslice/filled
+ nutriment_amt = 1
+
+/obj/item/weapon/reagent_containers/food/snacks/quicheslice/filled/Initialize()
+ . = ..()
+ reagents.add_reagent("protein", 1)
+
+/obj/item/weapon/reagent_containers/food/snacks/sliceable/brownies
+ name = "brownies"
+ gender = PLURAL
+ desc = "Halfway to fudge, or halfway to cake? Who cares!"
+ icon = 'icons/obj/food_syn.dmi'
+ icon_state = "brownies"
+ slice_path = /obj/item/weapon/reagent_containers/food/snacks/browniesslice
+ slices_num = 4
+ trash = /obj/item/trash/brownies
+ filling_color = "#301301"
+ nutriment_amt = 8
+ nutriment_desc = list("fudge" = 8)
+ center_of_mass = list("x"=15, "y"=9)
+
+/obj/item/weapon/reagent_containers/food/snacks/sliceable/brownies/Initialize()
+ . = ..()
+ reagents.add_reagent("protein", 2)
+ bitesize = 2
+
+/obj/item/weapon/reagent_containers/food/snacks/browniesslice
+ name = "brownie"
+ desc = "a dense, decadent chocolate brownie."
+ icon = 'icons/obj/food_syn.dmi'
+ icon_state = "browniesslice"
+ trash = /obj/item/trash/plate
+ filling_color = "#F5B951"
+ bitesize = 2
+ nutriment_desc = list("fudge" = 1)
+ center_of_mass = list("x"=16, "y"=12)
+
+/obj/item/weapon/reagent_containers/food/snacks/browniesslice/filled
+ nutriment_amt = 1
+
+/obj/item/weapon/reagent_containers/food/snacks/browniesslice/filled/Initialize()
+ . = ..()
+ reagents.add_reagent("protein", 1)
+
+/obj/item/weapon/reagent_containers/food/snacks/sliceable/cosmicbrownies
+ name = "cosmic brownies"
+ gender = PLURAL
+ desc = "Like, ultra-trippy. Brownies HAVE no gender, man." //Except I had to add one!
+ icon = 'icons/obj/food_syn.dmi'
+ icon_state = "cosmicbrownies"
+ slice_path = /obj/item/weapon/reagent_containers/food/snacks/cosmicbrowniesslice
+ slices_num = 4
+ trash = /obj/item/trash/brownies
+ filling_color = "#301301"
+ nutriment_amt = 8
+ nutriment_desc = list("fudge" = 8)
+ center_of_mass = list("x"=15, "y"=9)
+
+/obj/item/weapon/reagent_containers/food/snacks/sliceable/cosmicbrownies/Initialize()
+ . = ..()
+ reagents.add_reagent("protein", 2)
+ reagents.add_reagent("space_drugs", 2)
+ reagents.add_reagent("bicaridine", 1)
+ reagents.add_reagent("kelotane", 1)
+ reagents.add_reagent("toxin", 1)
+ bitesize = 3
+
+/obj/item/weapon/reagent_containers/food/snacks/cosmicbrowniesslice
+ name = "cosmic brownie"
+ desc = "a dense, decadent and fun-looking chocolate brownie."
+ icon = 'icons/obj/food_syn.dmi'
+ icon_state = "cosmicbrowniesslice"
+ trash = /obj/item/trash/plate
+ filling_color = "#F5B951"
+ bitesize = 3
+ nutriment_desc = list("fudge" = 1)
+ center_of_mass = list("x"=16, "y"=12)
+
+/obj/item/weapon/reagent_containers/food/snacks/cosmicbrowniesslice/filled
+ nutriment_amt = 1
+
+/obj/item/weapon/reagent_containers/food/snacks/cosmicbrowniesslice/filled/Initialize()
+ . = ..()
+ reagents.add_reagent("protein", 1)
\ No newline at end of file
diff --git a/code/modules/food/food/snacks/meat.dm b/code/modules/food/food/snacks/meat.dm
index c2c5753edaa..8911477b1f4 100644
--- a/code/modules/food/food/snacks/meat.dm
+++ b/code/modules/food/food/snacks/meat.dm
@@ -8,8 +8,19 @@
/obj/item/weapon/reagent_containers/food/snacks/meat/Initialize()
. = ..()
- reagents.add_reagent("protein", 9)
- src.bitesize = 3
+ reagents.add_reagent("protein", 6)
+ reagents.add_reagent("triglyceride", 2)
+ src.bitesize = 1.5
+
+/obj/item/weapon/reagent_containers/food/snacks/meat/cook()
+
+ if (!isnull(cooked_icon))
+ icon_state = cooked_icon
+ flat_icon = null //Force regenating the flat icon for coatings, since we've changed the icon of the thing being coated
+ ..()
+
+ if (name == initial(name))
+ name = "cooked [name]"
/obj/item/weapon/reagent_containers/food/snacks/meat/attackby(obj/item/weapon/W as obj, mob/user as mob)
if(istype(W,/obj/item/weapon/material/knife))
@@ -34,4 +45,16 @@
/obj/item/weapon/reagent_containers/food/snacks/meat/corgi
name = "Corgi meat"
- desc = "Tastes like... well, you know."
\ No newline at end of file
+ desc = "Tastes like... well, you know."
+
+/obj/item/weapon/reagent_containers/food/snacks/meat/chicken
+ name = "chicken"
+ icon = 'icons/obj/food_syn.dmi'
+ icon_state = "chickenbreast"
+ cooked_icon = "chickenbreast_cooked"
+ filling_color = "#BBBBAA"
+
+/obj/item/weapon/reagent_containers/food/snacks/meat/chicken/initialize()
+ ..()
+ reagents.remove_reagent("triglyceride", INFINITY)
+ //Chicken is low fat. Less total calories than other meats
\ No newline at end of file
diff --git a/code/modules/food/kitchen/cooking_machines/_appliance.dm b/code/modules/food/kitchen/cooking_machines/_appliance.dm
new file mode 100644
index 00000000000..fd4f757ce47
--- /dev/null
+++ b/code/modules/food/kitchen/cooking_machines/_appliance.dm
@@ -0,0 +1,728 @@
+// This folder contains code that was originally ported from Apollo Station and then refactored/optimized/changed.
+
+// Tracks precooked food to stop deep fried baked grilled grilled grilled diona nymph cereal.
+/obj/item/weapon/reagent_containers/food/snacks
+ var/tmp/list/cooked = list()
+
+// Root type for cooking machines. See following files for specific implementations.
+/obj/machinery/appliance
+ name = "cooker"
+ desc = "You shouldn't be seeing this!"
+ icon = 'icons/obj/cooking_machines.dmi'
+ var/appliancetype = 0
+ density = 1
+ anchored = 1
+
+ use_power = USE_POWER_IDLE
+ idle_power_usage = 5 // Power used when turned on, but not processing anything
+ active_power_usage = 1000 // Power used when turned on and actively cooking something
+ var/initial_active_power_usage = 1000
+
+ var/cooking_power = 1
+ var/initial_cooking_power = 1
+ var/max_contents = 1 // Maximum number of things this appliance can simultaneously cook
+ var/on_icon // Icon state used when cooking.
+ var/off_icon // Icon state used when not cooking.
+ var/cooking // Whether or not the machine is currently operating.
+ var/cook_type // A string value used to track what kind of food this machine makes.
+ var/can_cook_mobs // Whether or not this machine accepts grabbed mobs.
+ var/mobdamagetype = BRUTE // Burn damage for cooking appliances, brute for cereal/candy
+ var/food_color // Colour of resulting food item.
+ var/cooked_sound = 'sound/machines/ding.ogg' // Sound played when cooking completes.
+ var/can_burn_food // Can the object burn food that is left inside?
+ var/burn_chance = 10 // How likely is the food to burn?
+ var/list/cooking_objs = list() // List of things being cooked
+
+ // If the machine has multiple output modes, define them here.
+ var/selected_option
+ var/list/output_options = list()
+ var/list/datum/recipe/available_recipes
+
+ var/container_type = null
+
+ var/combine_first = 0//If 1, this appliance will do combinaiton cooking before checking recipes
+
+/obj/machinery/appliance/Initialize()
+ . = ..()
+ component_parts = list()
+ component_parts += /obj/item/weapon/circuitboard/cooking
+ component_parts += /obj/item/weapon/stock_parts/capacitor
+ component_parts += /obj/item/weapon/stock_parts/capacitor
+ component_parts += /obj/item/weapon/stock_parts/capacitor
+ component_parts += /obj/item/weapon/stock_parts/scanning_module
+ component_parts += /obj/item/weapon/stock_parts/matter_bin
+ component_parts += /obj/item/weapon/stock_parts/matter_bin
+ if(output_options.len)
+ verbs += /obj/machinery/appliance/proc/choose_output
+
+ if (!available_recipes)
+ available_recipes = new
+
+ for (var/type in subtypesof(/datum/recipe))
+ var/datum/recipe/test = new type
+ if ((appliancetype & test.appliance))
+ available_recipes += test
+ else
+ qdel(test)
+
+/obj/machinery/appliance/Destroy()
+ for (var/a in cooking_objs)
+ var/datum/cooking_item/CI = a
+ qdel(CI.container)//Food is fragile, it probably doesnt survive the destruction of the machine
+ cooking_objs -= CI
+ qdel(CI)
+ return ..()
+
+/obj/machinery/appliance/examine(var/mob/user)
+ ..()
+ if(Adjacent(usr))
+ list_contents(user)
+ return 1
+
+/obj/machinery/appliance/proc/list_contents(var/mob/user)
+ if (cooking_objs.len)
+ var/string = "Contains..."
+ for (var/a in cooking_objs)
+ var/datum/cooking_item/CI = a
+ string += "-\a [CI.container.label(null, CI.combine_target)], [report_progress(CI)]"
+ usr << string
+ else
+ usr << span("notice","It is empty.")
+
+/obj/machinery/appliance/proc/report_progress(var/datum/cooking_item/CI)
+ if (!CI || !CI.max_cookwork)
+ return null
+
+ if (!CI.cookwork)
+ return "It is cold."
+ var/progress = CI.cookwork / CI.max_cookwork
+
+ if (progress < 0.25)
+ return "It's barely started cooking."
+ if (progress < 0.75)
+ return span("notice","It's cooking away nicely.")
+ if (progress < 1)
+ return span("notice", "It's almost ready!")
+
+ var/half_overcook = (CI.overcook_mult - 1)*0.5
+ if (progress < 1+half_overcook)
+ return span("soghun","It is done !")
+ if (progress < CI.overcook_mult)
+ return span("warning","It looks overcooked, get it out!")
+ else
+ return span("danger","It is burning!!")
+
+/obj/machinery/appliance/update_icon()
+ if (!stat && cooking_objs.len)
+ icon_state = on_icon
+
+ else
+ icon_state = off_icon
+
+/obj/machinery/appliance/verb/toggle_power()
+ set name = "Toggle Power"
+ set category = "Object"
+ set src in view()
+
+ attempt_toggle_power(usr)
+
+/obj/machinery/appliance/proc/attempt_toggle_power(mob/user)
+ if (!isliving(user))
+ return
+
+ if (!user.IsAdvancedToolUser())
+ user << "You lack the dexterity to do that!"
+ return
+
+ if (user.stat || user.restrained() || user.incapacitated())
+ return
+
+ if (!Adjacent(user) && !issilicon(user))
+ user << "You can't reach [src] from here."
+ return
+
+ if (stat & POWEROFF)//Its turned off
+ stat &= ~POWEROFF
+ use_power = 1
+ user.visible_message("[user] turns [src] on.", "You turn on [src].")
+
+ else //Its on, turn it off
+ stat |= POWEROFF
+ use_power = 0
+ user.visible_message("[user] turns [src] off.", "You turn off [src].")
+
+ playsound(src, 'sound/machines/click.ogg', 40, 1)
+ update_icon()
+
+/obj/machinery/appliance/AICtrlClick(mob/user)
+ attempt_toggle_power(user)
+
+/obj/machinery/appliance/proc/choose_output()
+ set src in view()
+ set name = "Choose output"
+ set category = "Object"
+
+ if (!isliving(usr))
+ return
+
+ if (!usr.IsAdvancedToolUser())
+ usr << "You lack the dexterity to do that!"
+ return
+
+ if (usr.stat || usr.restrained() || usr.incapacitated())
+ return
+
+ if (!Adjacent(usr) && !issilicon(usr))
+ usr << "You can't adjust the [src] from this distance, get closer!"
+ return
+
+ if(output_options.len)
+ var/choice = input("What specific food do you wish to make with \the [src]?") as null|anything in output_options+"Default"
+ if(!choice)
+ return
+ if(choice == "Default")
+ selected_option = null
+ usr << "You decide not to make anything specific with \the [src]."
+ else
+ selected_option = choice
+ usr << "You prepare \the [src] to make \a [selected_option] with the next thing you put in. Try putting several ingredients in a container!"
+
+//Handles all validity checking and error messages for inserting things
+/obj/machinery/appliance/proc/can_insert(var/obj/item/I, var/mob/user)
+ if (istype(I.loc, /mob/living/silicon))
+ return 0
+ else if (istype(I.loc, /obj/item/rig_module))
+ return 0
+
+ // We are trying to cook a grabbed mob.
+ var/obj/item/weapon/grab/G = I
+ if(istype(G))
+
+ if(!can_cook_mobs)
+ user << "That's not going to fit."
+ return 0
+
+ if(!isliving(G.affecting))
+ user << "You can't cook that."
+ return 0
+
+ return 2
+
+
+ if (!has_space(I))
+ user << "There's no room in [src] for that!"
+ return 0
+
+
+ if (container_type && istype(I, container_type))
+ return 1
+
+ // We're trying to cook something else. Check if it's valid.
+ var/obj/item/weapon/reagent_containers/food/snacks/check = I
+ if(istype(check) && islist(check.cooked) && (cook_type in check.cooked))
+ user << "\The [check] has already been [cook_type]."
+ return 0
+ else if(istype(check, /obj/item/weapon/reagent_containers/glass))
+ user << "That would probably break [src]."
+ return 0
+ else if(istype(check, /obj/item/weapon/disk/nuclear))
+ user << "You can't cook that."
+ return 0
+ else if(!istype(check) && !istype(check, /obj/item/weapon/holder))
+ user << "That's not edible."
+ return 0
+
+ return 1
+
+
+//This function is overridden by cookers that do stuff with containers
+/obj/machinery/appliance/proc/has_space(var/obj/item/I)
+ if (cooking_objs.len >= max_contents)
+ return 0
+
+ else return 1
+
+/obj/machinery/appliance/attackby(var/obj/item/I, var/mob/user)
+ if(!cook_type || (stat & (BROKEN)))
+ user << "\The [src] is not working."
+ return
+
+ var/result = can_insert(I, user)
+ if(!result)
+ if(default_deconstruction_screwdriver(user, I))
+ return
+ else if(default_part_replacement(user, I))
+ return
+ else
+ return
+
+ if(result == 2)
+ var/obj/item/weapon/grab/G = I
+ if (G && istype(G) && G.affecting)
+ cook_mob(G.affecting, user)
+ return
+
+ //From here we can start cooking food
+ add_content(I, user)
+ update_icon()
+
+//Override for container mechanics
+/obj/machinery/appliance/proc/add_content(var/obj/item/I, var/mob/user)
+ if(!user.unEquip(I))
+ return
+
+ var/datum/cooking_item/CI = has_space(I)
+ if (istype(I, /obj/item/weapon/reagent_containers/cooking_container) && CI == 1)
+ var/obj/item/weapon/reagent_containers/cooking_container/CC = I
+ CI = new /datum/cooking_item/(CC)
+ I.forceMove(src)
+ cooking_objs.Add(CI)
+ user.visible_message("\The [user] puts \the [I] into \the [src].")
+ if (CC.check_contents() == 0)//If we're just putting an empty container in, then dont start any processing.
+ return
+ else
+ if (CI && istype(CI))
+ I.forceMove(CI.container)
+
+ else //Something went wrong
+ return
+
+ if (selected_option)
+ CI.combine_target = selected_option
+
+ // We can actually start cooking now.
+ user.visible_message("\The [user] puts \the [I] into \the [src].")
+
+ get_cooking_work(CI)
+ cooking = 1
+ return CI
+
+/obj/machinery/appliance/proc/get_cooking_work(var/datum/cooking_item/CI)
+ for (var/obj/item/J in CI.container)
+ oilwork(J, CI)
+
+ for (var/r in CI.container.reagents.reagent_list)
+ var/datum/reagent/R = r
+ if (istype(R, /datum/reagent/nutriment))
+ CI.max_cookwork += R.volume *2//Added reagents contribute less than those in food items due to granular form
+
+ //Nonfat reagents will soak oil
+ if (!istype(R, /datum/reagent/nutriment/triglyceride))
+ CI.max_oil += R.volume * 0.25
+ else
+ CI.max_cookwork += R.volume
+ CI.max_oil += R.volume * 0.10
+
+ //Rescaling cooking work to avoid insanely long times for large things
+ var/buffer = CI.max_cookwork
+ CI.max_cookwork = 0
+ var/multiplier = 1
+ var/step = 4
+ while (buffer > step)
+ buffer -= step
+ CI.max_cookwork += step*multiplier
+ multiplier *= 0.95
+
+ CI.max_cookwork += buffer*multiplier
+
+//Just a helper to save code duplication in the above
+/obj/machinery/appliance/proc/oilwork(var/obj/item/I, var/datum/cooking_item/CI)
+ var/obj/item/weapon/reagent_containers/food/snacks/S = I
+ var/work = 0
+ if (istype(S))
+ if (S.reagents)
+ for (var/r in S.reagents.reagent_list)
+ var/datum/reagent/R = r
+ if (istype(R, /datum/reagent/nutriment))
+ work += R.volume *3//Core nutrients contribute much more than peripheral chemicals
+
+ //Nonfat reagents will soak oil
+ if (!istype(R, /datum/reagent/nutriment/triglyceride))
+ CI.max_oil += R.volume * 0.35
+ else
+ work += R.volume
+ CI.max_oil += R.volume * 0.15
+
+
+ else if(istype(I, /obj/item/weapon/holder))
+ var/obj/item/weapon/holder/H = I
+ if (H.held_mob)
+ work += (H.held_mob.mob_size * H.held_mob.mob_size * 2)+2
+
+ CI.max_cookwork += work
+
+//Called every tick while we're cooking something
+/obj/machinery/appliance/proc/do_cooking_tick(var/datum/cooking_item/CI)
+ if (!istype(CI) || !CI.max_cookwork)
+ return 0
+
+ var/was_done = 0
+ if (CI.cookwork >= CI.max_cookwork)
+ was_done = 1
+
+ CI.cookwork += cooking_power
+
+ if (!was_done && CI.cookwork >= CI.max_cookwork)
+ //If cookwork has gone from above to below 0, then this item finished cooking
+ finish_cooking(CI)
+
+ else if (!CI.burned && CI.cookwork > CI.max_cookwork * CI.overcook_mult)
+ burn_food(CI)
+
+ // Gotta hurt.
+ for(var/obj/item/weapon/holder/H in CI.container.contents)
+ var/mob/living/M = H.held_mob
+ if (M)
+ M.apply_damage(rand(1,3), mobdamagetype, "chest")
+
+ return 1
+
+/obj/machinery/appliance/process()
+ if (cooking_power > 0 && cooking)
+ for (var/i in cooking_objs)
+ do_cooking_tick(i)
+
+
+/obj/machinery/appliance/proc/finish_cooking(var/datum/cooking_item/CI)
+
+ src.visible_message("\The [src] pings!")
+ if(cooked_sound)
+ playsound(get_turf(src), cooked_sound, 50, 1)
+ //Check recipes first, a valid recipe overrides other options
+ var/datum/recipe/recipe = null
+ var/atom/C = null
+ if (CI.container)
+ C = CI.container
+ else
+ C = src
+ recipe = select_recipe(available_recipes,C)
+
+ if (recipe)
+ CI.result_type = 4//Recipe type, a specific recipe will transform the ingredients into a new food
+ var/list/results = recipe.make_food(C)
+
+ var/obj/temp = new /obj(src) //To prevent infinite loops, all results will be moved into a temporary location so they're not considered as inputs for other recipes
+
+ for (var/atom/movable/AM in results)
+ AM.forceMove(temp)
+
+ //making multiple copies of a recipe from one container. For example, tons of fries
+ while (select_recipe(available_recipes,C) == recipe)
+ var/list/TR = list()
+ TR += recipe.make_food(C)
+ for (var/atom/movable/AM in TR) //Move results to buffer
+ AM.forceMove(temp)
+ results += TR
+
+
+ for (var/r in results)
+ var/obj/item/weapon/reagent_containers/food/snacks/R = r
+ R.forceMove(C) //Move everything from the buffer back to the container
+ R.cooked |= cook_type
+
+ QDEL_NULL(temp) //delete buffer object
+ . = 1 //None of the rest of this function is relevant for recipe cooking
+
+ else if(CI.combine_target)
+ CI.result_type = 3//Combination type. We're making something out of our ingredients
+ . = combination_cook(CI)
+
+
+ else
+ //Otherwise, we're just doing standard modification cooking. change a color + name
+ for (var/obj/item/i in CI.container)
+ modify_cook(i, CI)
+
+ //Final step. Cook function just cooks batter for now.
+ for (var/obj/item/weapon/reagent_containers/food/snacks/S in CI.container)
+ S.cook()
+
+
+//Combination cooking involves combining the names and reagents of ingredients into a predefined output object
+//The ingredients represent flavours or fillings. EG: donut pizza, cheese bread
+/obj/machinery/appliance/proc/combination_cook(var/datum/cooking_item/CI)
+ var/cook_path = output_options[CI.combine_target]
+
+ var/list/words = list()
+ var/list/cooktypes = list()
+ var/datum/reagents/buffer = new /datum/reagents(1000)
+ var/totalcolour
+
+ for (var/obj/item/I in CI.container)
+ var/obj/item/weapon/reagent_containers/food/snacks/S
+ if (istype(I, /obj/item/weapon/holder))
+ S = create_mob_food(I, CI)
+ else if (istype(I, /obj/item/weapon/reagent_containers/food/snacks))
+ S = I
+
+ if (!S)
+ continue
+
+ words |= text2list(S.name," ")
+ cooktypes |= S.cooked
+
+ if (S.reagents && S.reagents.total_volume > 0)
+ if (S.filling_color)
+ if (!totalcolour || !buffer.total_volume)
+ totalcolour = S.filling_color
+ else
+ var/t = buffer.total_volume + S.reagents.total_volume
+ t = buffer.total_volume / y
+ totalcolour = BlendRGB(totalcolour, S.filling_color, t)
+ //Blend colours in order to find a good filling color
+
+
+ S.reagents.trans_to_holder(buffer, S.reagents.total_volume)
+ //Cleanup these empty husk ingredients now
+ if (I)
+ qdel(I)
+ if (S)
+ qdel(S)
+
+ CI.container.reagents.trans_to_holder(buffer, CI.container.reagents.total_volume)
+
+ var/obj/item/weapon/reagent_containers/food/snacks/result = new cook_path(CI.container)
+ buffer.trans_to(result, buffer.total_volume)
+
+ //Filling overlay
+ var/image/I = image(result.icon, "[result.icon_state]_filling")
+ I.color = totalcolour
+ result.add_overlay(I)
+ result.filling_color = totalcolour
+
+ //Set the name.
+ words -= list("and", "the", "in", "is", "bar", "raw", "sticks", "boiled", "fried", "deep", "-o-", "warm", "two", "flavored")
+ //Remove common connecting words and unsuitable ones from the list. Unsuitable words include those describing
+ //the shape, cooked-ness/temperature or other state of an ingredient which doesn't apply to the finished product
+ words.Remove(result.name)
+ shuffle(words)
+ var/num = 6 //Maximum number of words
+ while (num > 0)
+ num--
+ if (!words.len)
+ break
+ //Add prefixes from the ingredients in a random order until we run out or hit limit
+ result.name = "[pop(words)] [result.name]"
+
+ //This proc sets the size of the output result
+ result.update_icon()
+ return result
+
+//Helper proc for standard modification cooking
+/obj/machinery/appliance/proc/modify_cook(var/obj/item/input, var/datum/cooking_item/CI)
+ var/obj/item/weapon/reagent_containers/food/snacks/result
+ if (istype(input, /obj/item/weapon/holder))
+ result = create_mob_food(input, CI)
+ else if (istype(input, /obj/item/weapon/reagent_containers/food/snacks))
+ result = input
+ else
+ //Nonviable item
+ return
+
+ if (!result)
+ return
+
+ result.cooked |= cook_type
+
+ // Set icon and appearance.
+ change_product_appearance(result, CI)
+
+ // Update strings.
+ change_product_strings(result, CI)
+
+/obj/machinery/appliance/proc/burn_food(var/datum/cooking_item/CI)
+ // You dun goofed.
+ CI.burned = 1
+ CI.container.clear()
+ new /obj/item/weapon/reagent_containers/food/snacks/badrecipe(CI.container)
+
+ // Produce nasty smoke.
+ visible_message("\The [src] vomits a gout of rancid smoke!")
+ var/datum/effect/effect/system/smoke_spread/bad/smoke = new /datum/effect/effect/system/smoke_spread/bad
+ smoke.attach(src)
+ smoke.set_up(10, 0, get_turf(src), 300)
+ smoke.start()
+
+/obj/machinery/appliance/attack_hand(var/mob/user)
+ if (cooking_objs.len)
+ if (removal_menu(user))
+ return
+ else
+ ..()
+
+/obj/machinery/appliance/proc/removal_menu(var/mob/user)
+ if (can_remove_items(user))
+ var/list/menuoptions = list()
+ for (var/a in cooking_objs)
+ var/datum/cooking_item/CI = a
+ if (CI.container)
+ menuoptions[CI.container.label(menuoptions.len)] = CI
+
+ var/selection = input(user, "Which item would you like to remove?", "Remove ingredients") as null|anything in menuoptions
+ if (selection)
+ var/datum/cooking_item/CI = menuoptions[selection]
+ eject(CI, user)
+ update_icon()
+ return 1
+ return 0
+
+/obj/machinery/appliance/proc/can_remove_items(var/mob/user)
+ if (!Adjacent(user))
+ return 0
+
+ if (isanimal(user))
+ return 0
+
+ return 1
+
+/obj/machinery/appliance/proc/eject(var/datum/cooking_item/CI, var/mob/user = null)
+ var/obj/item/thing
+ var/delete = 1
+ var/status = CI.container.check_contents()
+ if (status == 1)//If theres only one object in a container then we extract that
+ thing = locate(/obj/item) in CI.container
+ delete = 0
+ else//If the container is empty OR contains more than one thing, then we must extract the container
+ thing = CI.container
+ if (!user || !user.put_in_hands(thing))
+ thing.forceMove(get_turf(src))
+
+ if (delete)
+ cooking_objs -= CI
+ qdel(CI)
+ else
+ CI.reset()//reset instead of deleting if the container is left inside
+
+/obj/machinery/appliance/proc/cook_mob(var/mob/living/victim, var/mob/user)
+ return
+
+/obj/machinery/appliance/proc/change_product_strings(var/obj/item/weapon/reagent_containers/food/snacks/product, var/datum/cooking_item/CI)
+ product.name = "[cook_type] [product.name]"
+ product.desc = "[product.desc]\nIt has been [cook_type]."
+
+
+/obj/machinery/appliance/proc/change_product_appearance(var/obj/item/weapon/reagent_containers/food/snacks/product, var/datum/cooking_item/CI)
+ if (!product.coating) //Coatings change colour through a new sprite
+ product.color = food_color
+ product.filling_color = food_color
+
+/mob/living/proc/calculate_composition() // moved from devour.dm on aurora's side
+ if (!composition_reagent)//if no reagent has been set, then we'll set one
+ if (isSynthetic())
+ src.composition_reagent = "iron"
+ else
+ if(istype(src, /mob/living/carbon/human/diona) || istype(src, /mob/living/carbon/alien/diona))
+ src.composition_reagent = "nutriment" // diona are plants, not meat
+ else
+ src.composition_reagent = "protein"
+ if(istype(src, /mob/living/carbon/human))
+ var/mob/living/carbon/human/H = src
+ if(istype(H.species, /datum/species/diona))
+ src.composition_reagent = "nutriment"
+
+ //if the mob is a simple animal with a defined meat quantity
+ if (istype(src, /mob/living/simple_animal))
+ var/mob/living/simple_animal/SA = src
+ if (SA.meat_amount)
+ src.composition_reagent_quantity = SA.meat_amount*2*9
+
+ //The quantity of protein is based on the meat_amount, but multiplied by 2
+
+ var/size_reagent = (src.mob_size * src.mob_size) * 3//The quantity of protein is set to 3x mob size squared
+ if (size_reagent > src.composition_reagent_quantity)//We take the larger of the two
+ src.composition_reagent_quantity = size_reagent
+
+//This function creates a food item which represents a dead mob
+/obj/machinery/appliance/proc/create_mob_food(var/obj/item/weapon/holder/H, var/datum/cooking_item/CI)
+ if (!istype(H) || !H.held_mob)
+ qdel(H)
+ return null
+ var/mob/living/victim = H.held_mob
+ if (victim.stat != DEAD)
+ return null //Victim somehow survived the cooking, they do not become food
+
+ victim.calculate_composition()
+
+ var/obj/item/weapon/reagent_containers/food/snacks/variable/mob/result = new /obj/item/weapon/reagent_containers/food/snacks/variable/mob(CI.container)
+ result.w_class = victim.mob_size
+ result.reagents.add_reagent(victim.composition_reagent, victim.composition_reagent_quantity)
+
+ if (victim.reagents)
+ victim.reagents.trans_to_holder(result.reagents, victim.reagents.total_volume)
+
+ if (isanimal(victim))
+ var/mob/living/simple_animal/SA = victim
+ result.kitchen_tag = SA.kitchen_tag
+
+ result.appearance = victim
+
+ var/matrix/M = matrix()
+ M.Turn(45)
+ M.Translate(1,-2)
+ result.transform = M
+
+ // all done, now delete the old objects
+ H.held_mob = null
+ qdel(victim)
+ victim = null
+ qdel(H)
+ H = null
+
+ return result
+
+/datum/cooking_item
+ var/max_cookwork
+ var/cookwork
+ var/overcook_mult = 5
+ var/result_type = 0
+ var/obj/item/weapon/reagent_containers/cooking_container/container = null
+ var/combine_target = null
+
+ //Result type is one of the following:
+ //0 unfinished, no result yet
+ //1 Standard modification cooking. eg Fried Donk Pocket, Baked wheat, etc
+ //2 Modification but with a new object that's an inert copy of the old. Generally used for deepfried mice
+ //3 Combination cooking, EG Donut Bread, Donk pocket pizza, etc
+ //4:Specific recipe cooking. EG: Turning raw potato sticks into fries
+
+ var/burned = 0
+
+ var/oil = 0
+ var/max_oil = 0//Used for fryers.
+
+/datum/cooking_item/New(var/obj/item/I)
+ container = I
+
+//This is called for containers whose contents are ejected without removing the container
+/datum/cooking_item/proc/reset()
+ max_cookwork = 0
+ cookwork = 0
+ result_type = 0
+ burned = 0
+ max_oil = 0
+ oil = 0
+ combine_target = null
+ //Container is not reset
+
+/obj/machinery/appliance/RefreshParts()
+ ..()
+ var/scan_rating = 0
+ var/cap_rating = 0
+
+ for(var/obj/item/weapon/stock_parts/P in src.component_parts)
+ if(istype(P, /obj/item/weapon/stock_parts/scanning_module))
+ scan_rating += P.rating
+ else if(istype(P, /obj/item/weapon/stock_parts/capacitor))
+ cap_rating += P.rating
+
+ active_power_usage = initial(active_power_usage) - scan_rating*10
+ cooking_power = initial(cooking_power) + (scan_rating+cap_rating)/10
+
+/obj/item/weapon/circuitboard/cooking
+ name = "kitchen appliance circuitry"
+ desc = "The circuitboard for many kitchen appliances. Not of much use."
+ origin_tech = list(TECH_MAGNET = 2, TECH_ENGINEERING = 2)
+ req_components = list(
+ /obj/item/weapon/stock_parts/capacitor = 3,
+ /obj/item/weapon/stock_parts/scanning_module = 1,
+ /obj/item/weapon/stock_parts/matter_bin = 2)
\ No newline at end of file
diff --git a/code/modules/food/kitchen/cooking_machines/_cooker.dm b/code/modules/food/kitchen/cooking_machines/_cooker.dm
index f0716e015f4..f18b073ba9d 100644
--- a/code/modules/food/kitchen/cooking_machines/_cooker.dm
+++ b/code/modules/food/kitchen/cooking_machines/_cooker.dm
@@ -1,261 +1,132 @@
-// This folder contains code that was originally ported from Apollo Station and then refactored/optimized/changed.
+/obj/machinery/appliance/cooker
+ var/temperature = T20C
+ var/min_temp = 80 + T0C //Minimum temperature to do any cooking
+ var/optimal_temp = 200 + T0C //Temperature at which we have 100% efficiency. efficiency is lowered on either side of this
+ var/optimal_power = 0.1//cooking power at 100%
-// Tracks precooked food to stop deep fried baked grilled grilled grilled diona nymph cereal.
-/obj/item/weapon/reagent_containers/food/snacks/var/list/cooked
+ var/loss = 1 //Temp lost per proc when equalising
+ var/resistance = 320000 //Resistance to heating. combines with active power usage to determine how long heating takes
-// Root type for cooking machines. See following files for specific implementations.
-/obj/machinery/cooker
- name = "cooker"
- desc = "You shouldn't be seeing this!"
- icon = 'icons/obj/cooking_machines.dmi'
- density = 1
- anchored = 1
- use_power = USE_POWER_IDLE
- idle_power_usage = 5
+ var/light_x = 0
+ var/light_y = 0
+ cooking_power = 0
- var/on_icon // Icon state used when cooking.
- var/off_icon // Icon state used when not cooking.
- var/cooking // Whether or not the machine is currently operating.
- var/cook_type // A string value used to track what kind of food this machine makes.
- var/cook_time = 200 // How many ticks the cooking will take.
- var/can_cook_mobs // Whether or not this machine accepts grabbed mobs.
- var/food_color // Colour of resulting food item.
- var/cooked_sound // Sound played when cooking completes.
- var/can_burn_food // Can the object burn food that is left inside?
- var/burn_chance = 10 // How likely is the food to burn?
- var/obj/item/cooking_obj // Holder for the currently cooking object.
-
- // If the machine has multiple output modes, define them here.
- var/selected_option
- var/list/output_options = list()
-
-/obj/machinery/cooker/Destroy()
- if(cooking_obj)
- qdel(cooking_obj)
- cooking_obj = null
- return ..()
-
-/obj/machinery/cooker/proc/set_cooking(new_setting)
- cooking = new_setting
- icon_state = new_setting ? on_icon : off_icon
-
-/obj/machinery/cooker/examine(mob/user)
+/obj/machinery/appliance/cooker/examine(var/mob/user)
. = ..()
- if(cooking_obj && Adjacent(user))
- . += "You can see \a [cooking_obj] inside."
-
-/obj/machinery/cooker/attackby(var/obj/item/I, var/mob/user)
-
- if(!cook_type || (stat & (NOPOWER|BROKEN)))
- to_chat(user, "\The [src] is not working.")
- return
-
- if(cooking)
- to_chat(user, "\The [src] is running!")
- return
-
- if(default_unfasten_wrench(user, I, 20))
- return
-
- // We are trying to cook a grabbed mob.
- var/obj/item/weapon/grab/G = I
- if(istype(G))
-
- if(!can_cook_mobs)
- to_chat(user, "That's not going to fit.")
- return
-
- if(!isliving(G.affecting))
- to_chat(user, "You can't cook that.")
- return
-
- cook_mob(G.affecting, user)
- return
-
- // We're trying to cook something else. Check if it's valid.
- var/obj/item/weapon/reagent_containers/food/snacks/check = I
- if(istype(check) && islist(check.cooked) && (cook_type in check.cooked))
- to_chat(user, "\The [check] has already been [cook_type].")
- return 0
- else if(istype(check, /obj/item/weapon/reagent_containers/glass))
- to_chat(user, "That would probably break [src].")
- return 0
- else if(istype(check, /obj/item/weapon/disk/nuclear))
- to_chat(user, "Central Command would kill you if you [cook_type] that.")
- return 0
- else if(!istype(check) && !istype(check, /obj/item/weapon/holder) && !istype(check, /obj/item/organ)) //Gripper check has to go here, else it still just cuts it off. ~Mechoid
- // Is it a borg using a gripper?
- if(istype(check, /obj/item/weapon/gripper)) // Grippers. ~Mechoid.
- var/obj/item/weapon/gripper/B = check //B, for Borg.
- if(!B.wrapped)
- to_chat(user, "\The [B] is not holding anything.")
- return 0
+ if(.) //no need to duplicate adjacency check
+ if(!stat)
+ if (temperature < min_temp)
+ to_chat(user, span("warning", "\The [src] is still heating up and is too cold to cook anything yet."))
else
- var/B_held = B.wrapped
- to_chat(user, "You use \the [B] to put \the [B_held] into \the [src].")
- return 0
+ to_chat(user, span("notice", "It is running at [round(get_efficiency(), 0.1)]% efficiency!"))
+ to_chat(user, "Temperature: [round(temperature - T0C, 0.1)]C / [round(optimal_temp - T0C, 0.1)]C")
else
- to_chat(user, "That's not edible.")
- return 0
-
- if(istype(I, /obj/item/organ))
- var/obj/item/organ/O = I
- if(O.robotic)
- to_chat(user, "That would probably break [src].")
- return
-
- // Gotta hurt.
- if(istype(cooking_obj, /obj/item/weapon/holder))
- for(var/mob/living/M in cooking_obj.contents)
- M.apply_damage(rand(30,40), BURN, "chest")
-
- // Not sure why a food item that passed the previous checks would fail to drop, but safety first. (Hint: Borg grippers. That is why. ~Mechoid.)
- if(!user.unEquip(I) && !istype(user,/mob/living/silicon/robot))
- return
-
- // We can actually start cooking now.
- user.visible_message("\The [user] puts \the [I] into \the [src].")
- cooking_obj = I
- cooking_obj.forceMove(src)
- set_cooking(TRUE)
- icon_state = on_icon
-
- // Doop de doo. Jeopardy theme goes here.
- sleep(cook_time)
-
- // Sanity checks.
- if(!cooking_obj || cooking_obj.loc != src)
- cooking_obj = null
- icon_state = off_icon
- set_cooking(FALSE)
- return
-
- // RIP slow-moving held mobs.
- if(istype(cooking_obj, /obj/item/weapon/holder))
- for(var/mob/living/M in cooking_obj.contents)
- M.death()
- qdel(M)
-
- // Cook the food.
- var/cook_path
- if(selected_option && output_options.len)
- cook_path = output_options[selected_option]
- if(!cook_path)
- cook_path = /obj/item/weapon/reagent_containers/food/snacks/variable
- var/obj/item/weapon/reagent_containers/food/snacks/result = new cook_path(src) //Holy typepaths, Batman.
-
- // Set icon and appearance.
- change_product_appearance(result)
-
- // Update strings.
- change_product_strings(result)
-
- // Copy reagents over. trans_to_obj must be used, as trans_to fails for snacks due to is_open_container() failing.
- if(cooking_obj.reagents && cooking_obj.reagents.total_volume)
- cooking_obj.reagents.trans_to_obj(result, cooking_obj.reagents.total_volume)
-
- // Set cooked data.
- var/obj/item/weapon/reagent_containers/food/snacks/food_item = cooking_obj
- if(istype(food_item) && islist(food_item.cooked))
- result.cooked = food_item.cooked.Copy()
+ to_chat(user, span("warning", "It is switched off."))
+
+/obj/machinery/appliance/cooker/list_contents(var/mob/user)
+ if (cooking_objs.len)
+ var/string = "Contains..."
+ var/num = 0
+ for (var/a in cooking_objs)
+ num++
+ var/datum/cooking_item/CI = a
+ if (CI && CI.container)
+ string += "- [CI.container.label(num)], [report_progress(CI)]"
+ to_chat(user, string)
else
- result.cooked = list()
- result.cooked |= cook_type
+ to_chat(user, span("notice","It is empty."))
+
+/obj/machinery/appliance/cooker/proc/get_efficiency()
+ //RefreshParts()
+ return (cooking_power / optimal_power) * 100
- // Reset relevant variables.
- qdel(cooking_obj)
- src.visible_message("\The [src] pings!")
- if(cooked_sound)
- playsound(src, cooked_sound, 50, 1)
+/obj/machinery/appliance/cooker/New()
+ . = ..()
+ loss = (active_power_usage / resistance)*0.5
+ cooking_objs = list()
+ for (var/i = 0, i < max_contents, i++)
+ cooking_objs.Add(new /datum/cooking_item/(new container_type(src)))
+ cooking = 0
- if(!can_burn_food)
- icon_state = off_icon
- set_cooking(FALSE)
- result.forceMove(get_turf(src))
- cooking_obj = null
+ update_icon() // this probably won't cause issues, but Aurora used SSIcons and queue_icon_update() instead
+
+/obj/machinery/appliance/cooker/update_icon()
+ cut_overlays()
+ var/image/light
+ if (use_power == 2 && !stat)
+ light = image(icon, "light_on")
else
- var/failed
- var/overcook_period = max(FLOOR(cook_time/5, 1),1)
- cooking_obj = result
- var/count = overcook_period
- while(1)
- sleep(overcook_period)
- count += overcook_period
- if(!cooking || !result || result.loc != src)
- failed = 1
- else if(prob(burn_chance) || count == cook_time) //Fail before it has a chance to cook again.
- // You dun goofed.
- qdel(cooking_obj)
- cooking_obj = new /obj/item/weapon/reagent_containers/food/snacks/badrecipe(src)
- // Produce nasty smoke.
- visible_message("\The [src] vomits a gout of rancid smoke!")
- var/datum/effect/effect/system/smoke_spread/bad/smoke = new /datum/effect/effect/system/smoke_spread/bad()
- smoke.attach(src)
- smoke.set_up(10, 0, usr.loc)
- smoke.start()
- failed = 1
-
- if(failed)
- set_cooking(FALSE)
- icon_state = off_icon
- break
-
-/obj/machinery/cooker/attack_hand(var/mob/user)
-
- if(cooking_obj && user.Adjacent(src)) //Fixes borgs being able to teleport food in these machines to themselves.
- to_chat(user, "You grab \the [cooking_obj] from \the [src].")
- user.put_in_hands(cooking_obj)
- set_cooking(FALSE)
- cooking_obj = null
- icon_state = off_icon
- return
-
- if(output_options.len)
-
- if(cooking)
- to_chat(user, "\The [src] is in use!")
- return
-
- var/choice = input("What specific food do you wish to make with \the [src]?") as null|anything in output_options+"Default"
- if(!choice)
- return
- if(choice == "Default")
- selected_option = null
- to_chat(user, "You decide not to make anything specific with \the [src].")
- else
- selected_option = choice
- to_chat(user, "You prepare \the [src] to make \a [selected_option].")
+ light = image(icon, "light_off")
+ light.pixel_x = light_x
+ light.pixel_y = light_y
+ add_overlay(light)
+/obj/machinery/appliance/cooker/process()
+ if (!stat)
+ heat_up()
+ else
+ var/turf/T = get_turf(src)
+ if (temperature > T.temperature)
+ equalize_temperature()
..()
+
+/obj/machinery/appliance/cooker/power_change()
+ . = ..()
+ update_icon() // this probably won't cause issues, but Aurora used SSIcons and queue_icon_update() instead
+
+/obj/machinery/appliance/cooker/proc/update_cooking_power()
+ var/temp_scale = 0
+ if(temperature > min_temp)
+ temp_scale = (temperature - min_temp) / (optimal_temp - min_temp) // If we're between min and optimal this will yield a value in the range 0-1
-/obj/machinery/cooker/proc/cook_mob(var/mob/living/victim, var/mob/user)
- return
-
-/obj/machinery/cooker/proc/change_product_strings(var/obj/item/weapon/reagent_containers/food/snacks/product)
- if(product.type == /obj/item/weapon/reagent_containers/food/snacks/variable) // Base type, generic.
- product.name = "[cook_type] [cooking_obj.name]"
- product.desc = "[cooking_obj.desc] It has been [cook_type]."
+ if(temp_scale > 1) // We're above optimal, efficiency goes down as we pass too much over it
+ if(temp_scale >= 2)
+ temp_scale = 0
+ else
+ temp_scale = 1 - (temp_scale - 1)
+
+ cooking_power = optimal_power * temp_scale
+ // RefreshParts()
+
+/obj/machinery/appliance/cooker/proc/heat_up()
+ if(temperature < optimal_temp)
+ if(use_power == 1 && ((optimal_temp - temperature) > 5))
+ playsound(src, 'sound/machines/click.ogg', 20, 1)
+ use_power = 2.//If we're heating we use the active power
+ update_icon()
+ temperature += active_power_usage / resistance
+ update_cooking_power()
+ return 1
else
- product.name = "[cooking_obj.name] [product.name]"
+ if(use_power == 2)
+ use_power = 1
+ playsound(src, 'sound/machines/click.ogg', 20, 1)
+ update_icon()
+ //We're holding steady. temperature falls more slowly
+ if(prob(25))
+ equalize_temperature()
+ return -1
-/obj/machinery/cooker/proc/change_product_appearance(var/obj/item/weapon/reagent_containers/food/snacks/product)
- if(product.type == /obj/item/weapon/reagent_containers/food/snacks/variable) // Base type, generic.
- product.appearance = cooking_obj
- product.color = food_color
- product.filling_color = food_color
+/obj/machinery/appliance/cooker/proc/equalize_temperature()
+ temperature -= loss//Temperature will fall somewhat slowly
+ update_cooking_power()
- // Make 'em into a corpse.
- if(istype(cooking_obj, /obj/item/weapon/holder))
- var/matrix/M = matrix()
- M.Turn(90)
- M.Translate(1,-6)
- product.transform = M
+//Cookers do differently, they use containers
+/obj/machinery/appliance/cooker/has_space(var/obj/item/I)
+ if(istype(I, /obj/item/weapon/reagent_containers/cooking_container))
+ //Containers can go into an empty slot
+ if(cooking_objs.len < max_contents)
+ return 1
else
- var/image/I = image(product.icon, "[product.icon_state]_filling")
- if(istype(cooking_obj, /obj/item/weapon/reagent_containers/food/snacks))
- var/obj/item/weapon/reagent_containers/food/snacks/S = cooking_obj
- I.color = S.filling_color
- if(!I.color)
- I.color = food_color
- product.overlays += I
+ //Any food items directly added need an empty container. A slot without a container cant hold food
+ for (var/datum/cooking_item/CI in cooking_objs)
+ if (CI.container.check_contents() == 0)
+ return CI
+ return 0
+
+/obj/machinery/appliance/cooker/add_content(var/obj/item/I, var/mob/user)
+ var/datum/cooking_item/CI = ..()
+ if (CI && CI.combine_target)
+ to_chat(user, "\The [I] will be used to make a [selected_option]. Output selection is returned to default for future items.")
+ selected_option = null
\ No newline at end of file
diff --git a/code/modules/food/kitchen/cooking_machines/_cooker_output.dm b/code/modules/food/kitchen/cooking_machines/_cooker_output.dm
index cb4dcd15edc..4fc2ab75b29 100644
--- a/code/modules/food/kitchen/cooking_machines/_cooker_output.dm
+++ b/code/modules/food/kitchen/cooking_machines/_cooker_output.dm
@@ -1,72 +1,160 @@
-// Wrapper obj for cooked food. Appearance is set in the cooking code, not on spawn.
-/obj/item/weapon/reagent_containers/food/snacks/variable
- name = "cooked food"
- icon = 'icons/obj/food_custom.dmi'
- desc = "If you can see this description then something is wrong. Please report the bug on the tracker."
- nutriment_amt = 5
- bitesize = 2
-
-/obj/item/weapon/reagent_containers/food/snacks/variable/pizza
- name = "personal pizza"
- desc = "A personalized pan pizza meant for only one person."
- icon_state = "personal_pizza"
-
-/obj/item/weapon/reagent_containers/food/snacks/variable/bread
- name = "bread"
- desc = "Tasty bread."
- icon_state = "breadcustom"
-
-/obj/item/weapon/reagent_containers/food/snacks/variable/pie
- name = "pie"
- desc = "Tasty pie."
- icon_state = "piecustom"
-
-/obj/item/weapon/reagent_containers/food/snacks/variable/cake
- name = "cake"
- desc = "A popular band."
- icon_state = "cakecustom"
-
-/obj/item/weapon/reagent_containers/food/snacks/variable/pocket
- name = "hot pocket"
- desc = "You wanna put a bangin- oh, nevermind."
- icon_state = "donk"
-
-/obj/item/weapon/reagent_containers/food/snacks/variable/kebab
- name = "kebab"
- desc = "Remove this!"
- icon_state = "kabob"
-
-/obj/item/weapon/reagent_containers/food/snacks/variable/waffles
- name = "waffles"
- desc = "Made with love."
- icon_state = "waffles"
-
-/obj/item/weapon/reagent_containers/food/snacks/variable/cookie
- name = "cookie"
- desc = "Sugar snap!"
- icon_state = "cookie"
-
-/obj/item/weapon/reagent_containers/food/snacks/variable/donut
- name = "filled donut"
- desc = "Donut eat this!" // kill me
- icon_state = "donut"
-
-/obj/item/weapon/reagent_containers/food/snacks/variable/jawbreaker
- name = "flavored jawbreaker"
- desc = "It's like cracking a molar on a rainbow."
- icon_state = "jawbreaker"
-
-/obj/item/weapon/reagent_containers/food/snacks/variable/candybar
- name = "flavored chocolate bar"
- desc = "Made in a factory downtown."
- icon_state = "bar"
-
-/obj/item/weapon/reagent_containers/food/snacks/variable/sucker
- name = "flavored sucker"
- desc = "Suck, suck, suck."
- icon_state = "sucker"
-
-/obj/item/weapon/reagent_containers/food/snacks/variable/jelly
- name = "jelly"
- desc = "All your friends will be jelly."
- icon_state = "jellycustom"
+// Wrapper obj for cooked food. Appearance is set in the cooking code, not on spawn.
+/obj/item/weapon/reagent_containers/food/snacks/variable
+ name = "cooked food"
+ icon = 'icons/obj/food_custom.dmi'
+ desc = "If you can see this description then something is wrong. Please report the bug on the tracker."
+ bitesize = 2
+
+ var/size = 5 //The quantity of reagents which is considered "normal" for this kind of food
+ //These objects will change size depending on the ratio of reagents to this value
+ var/min_scale = 0.5
+ var/max_scale = 2
+ var/scale = 1
+
+ w_class = 2
+ var/prefix
+
+/obj/item/weapon/reagent_containers/food/snacks/variable/initialize()
+ . = ..()
+ if (reagents)
+ reagents.maximum_volume = size*8 + 10
+ else
+ create_reagents(size*8 + 10)
+
+/obj/item/weapon/reagent_containers/food/snacks/variable/update_icon()
+ if (reagents && reagents.total_volume)
+ var/ratio = reagents.total_volume / size
+
+ scale = ratio**(1/3) //Scaling factor is square root of desired area
+ scale = Clamp(scale, min_scale, max_scale)
+ else
+ scale = min_scale
+
+ var/matrix/M = matrix()
+ M.Scale(scale)
+ src.transform = M
+
+ w_class *= scale
+ if (!prefix)
+ if (scale == min_scale)
+ prefix = "tiny"
+ else if (scale <= 0.8)
+ prefix = "small"
+
+ else
+ if (scale >= 1.2)
+ prefix = "large"
+ if (scale >= 1.4)
+ prefix = "extra large"
+ if (scale >= 1.6)
+ prefix = "huge"
+ if (scale >= max_scale)
+ prefix = "massive"
+
+ name = "[prefix] [name]"
+
+
+/obj/item/weapon/reagent_containers/food/snacks/variable/pizza
+ name = "personal pizza"
+ desc = "A personalized pan pizza meant for only one person."
+ icon_state = "personal_pizza"
+ size = 20
+ w_class = 3
+
+/obj/item/weapon/reagent_containers/food/snacks/variable/bread
+ name = "bread"
+ desc = "Tasty bread."
+ icon_state = "breadcustom"
+ size = 40
+ w_class = 3
+
+/obj/item/weapon/reagent_containers/food/snacks/variable/pie
+ name = "pie"
+ desc = "Tasty pie."
+ icon_state = "piecustom"
+ size = 25
+
+/obj/item/weapon/reagent_containers/food/snacks/variable/cake
+ name = "cake"
+ desc = "A popular band."
+ icon_state = "cakecustom"
+ size = 40
+ w_class = 3
+
+/obj/item/weapon/reagent_containers/food/snacks/variable/pocket
+ name = "hot pocket"
+ desc = "You wanna put a bangin- oh, nevermind."
+ icon_state = "donk"
+ size = 8
+ w_class = 1
+
+/obj/item/weapon/reagent_containers/food/snacks/variable/kebab
+ name = "kebab"
+ desc = "Remove this!"
+ icon_state = "kabob"
+ size = 10
+
+/obj/item/weapon/reagent_containers/food/snacks/variable/waffles
+ name = "waffles"
+ desc = "Made with love."
+ icon_state = "waffles"
+ size = 12
+
+/obj/item/weapon/reagent_containers/food/snacks/variable/cookie
+ name = "cookie"
+ desc = "Sugar snap!"
+ icon_state = "cookie"
+ size = 6
+ w_class = 1
+
+/obj/item/weapon/reagent_containers/food/snacks/variable/donut
+ name = "filled donut"
+ desc = "Donut eat this!" // kill me
+ icon_state = "donut"
+ size = 8
+ w_class = 1
+
+/obj/item/weapon/reagent_containers/food/snacks/variable/jawbreaker
+ name = "flavored jawbreaker"
+ desc = "It's like cracking a molar on a rainbow."
+ icon_state = "jawbreaker"
+ size = 4
+ w_class = 1
+
+/obj/item/weapon/reagent_containers/food/snacks/variable/candybar
+ name = "flavored chocolate bar"
+ desc = "Made in a factory downtown."
+ icon_state = "bar"
+ size = 6
+ w_class = 1
+
+/obj/item/weapon/reagent_containers/food/snacks/variable/sucker
+ name = "flavored sucker"
+ desc = "Suck, suck, suck."
+ icon_state = "sucker"
+ size = 4
+ w_class = 1
+
+/obj/item/weapon/reagent_containers/food/snacks/variable/jelly
+ name = "jelly"
+ desc = "All your friends will be jelly."
+ icon_state = "jellycustom"
+ size = 8
+
+
+/obj/item/weapon/reagent_containers/food/snacks/variable/cereal
+ name = "cereal"
+ desc = "Crispy and flaky"
+ icon_state = "cereal_box"
+ size = 30
+ w_class = 3
+
+/obj/item/weapon/reagent_containers/food/snacks/variable/cereal/initialize()
+ . =..()
+ name = pick(list("flakes", "krispies", "crunch", "pops", "O's", "crisp", "loops", "jacks", "clusters"))
+
+/obj/item/weapon/reagent_containers/food/snacks/variable/mob
+ desc = "Poor little thing."
+ size = 5
+ w_class = 1
+ var/kitchen_tag = "animal"
\ No newline at end of file
diff --git a/code/modules/food/kitchen/cooking_machines/_mixer.dm b/code/modules/food/kitchen/cooking_machines/_mixer.dm
new file mode 100644
index 00000000000..8ef0d5a8eca
--- /dev/null
+++ b/code/modules/food/kitchen/cooking_machines/_mixer.dm
@@ -0,0 +1,141 @@
+/*
+The mixer subtype is used for the candymaker and cereal maker. They are similar to cookers but with a few
+fundamental differences
+1. They have a single container which cant be removed. it will eject multiple contents
+2. Items can't be added or removed once the process starts
+3. Items are all placed in the same container when added directly
+4. They do combining mode only. And will always combine the entire contents of the container into an output
+*/
+
+/obj/machinery/appliance/mixer
+ max_contents = 1
+ stat = POWEROFF
+ cooking_power = 0.4
+ active_power_usage = 3000
+ idle_power_usage = 50
+
+/obj/machinery/appliance/mixer/examine(var/mob/user)
+ ..()
+ to_chat(user, "It is currently set to make a [selected_option]")
+
+/obj/machinery/appliance/mixer/New()
+ . = ..()
+ cooking_objs += new /datum/cooking_item(new /obj/item/weapon/reagent_containers/cooking_container(src))
+ cooking = 0
+ selected_option = pick(output_options)
+
+//Mixers cannot-not do combining mode. So the default option is removed from this. A combine target must be chosen
+/obj/machinery/appliance/mixer/choose_output()
+ set src in oview(1)
+ set name = "Choose output"
+ set category = "Object"
+
+ if (!isliving(usr))
+ return
+
+ if (!usr.IsAdvancedToolUser())
+ to_chat(user, "You can't operate [src].")
+ return
+
+ if(output_options.len)
+ var/choice = input("What specific food do you wish to make with \the [src]?") as null|anything in output_options
+ if(!choice)
+ return
+ else
+ selected_option = choice
+ to_chat(user, "You prepare \the [src] to make \a [selected_option].")
+ var/datum/cooking_item/CI = cooking_objs[1]
+ CI.combine_target = selected_option
+
+
+/obj/machinery/appliance/mixer/has_space(var/obj/item/I)
+ var/datum/cooking_item/CI = cooking_objs[1]
+ if (!CI || !CI.container)
+ return 0
+
+ if (CI.container.can_fit(I))
+ return CI
+
+ return 0
+
+
+/obj/machinery/appliance/mixer/can_remove_items(var/mob/user)
+ if (stat)
+ return 1
+ else
+ to_chat(user, "You can't remove ingredients while it's turned on! Turn it off first or wait for it to finish.")
+
+//Container is not removable
+/obj/machinery/appliance/mixer/removal_menu(var/mob/user)
+ if (can_remove_items(user))
+ var/list/menuoptions = list()
+ for (var/a in cooking_objs)
+ var/datum/cooking_item/CI = a
+ if (CI.container)
+ if (!CI.container.check_contents())
+ to_chat(user, "There's nothing in [src] you can remove!")
+ return
+
+ for (var/obj/item/I in CI.container)
+ menuoptions[I.name] = I
+
+ var/selection = input(user, "Which item would you like to remove? If you want to remove chemicals, use an empty beaker.", "Remove ingredients") as null|anything in menuoptions
+ if (selection)
+ var/obj/item/I = menuoptions[selection]
+ if (!user || !user.put_in_hands(I))
+ I.forceMove(get_turf(src))
+ update_icon()
+ return 1
+ return 0
+
+
+/obj/machinery/appliance/mixer/toggle_power()
+ set src in view()
+ set name = "Toggle Power"
+ set category = "Object"
+
+ var/datum/cooking_item/CI = cooking_objs[1]
+ if(!CI.container.check_contents())
+ to_chat("There's nothing in it! Add ingredients before turning [src] on!")
+ return
+
+ if(stat & POWEROFF)//Its turned off
+ stat &= ~POWEROFF
+ if(usr)
+ usr.visible_message("[usr] turns the [src] on", "You turn on \the [src].")
+ get_cooking_work(CI)
+ use_power = 2
+ else //Its on, turn it off
+ stat |= POWEROFF
+ use_power = 0
+ if(usr)
+ usr.visible_message("[usr] turns the [src] off", "You turn off \the [src].")
+ playsound(src, 'sound/machines/click.ogg', 40, 1)
+ update_icon()
+
+/obj/machinery/appliance/mixer/can_insert(var/obj/item/I, var/mob/user)
+ if(!stat)
+ to_chat(user, ",You can't add items while \the [src] is running. Wait for it to finish or turn the power off to abort.")
+ return 0
+ else
+ return ..()
+
+/obj/machinery/appliance/mixer/finish_cooking(var/datum/cooking_item/CI)
+ ..()
+ stat |= POWEROFF
+ playsound(src, 'sound/machines/click.ogg', 40, 1)
+ use_power = 0
+ CI.reset()
+ update_icon()
+
+/obj/machinery/appliance/mixer/update_icon()
+ if (!stat)
+ icon_state = on_icon
+ else
+ icon_state = off_icon
+
+
+/obj/machinery/appliance/mixer/process()
+ if (!stat)
+ for (var/i in cooking_objs)
+ do_cooking_tick(i)
\ No newline at end of file
diff --git a/code/modules/food/kitchen/cooking_machines/candy.dm b/code/modules/food/kitchen/cooking_machines/candy.dm
index 21fd5069119..bbf1808ba18 100644
--- a/code/modules/food/kitchen/cooking_machines/candy.dm
+++ b/code/modules/food/kitchen/cooking_machines/candy.dm
@@ -1,18 +1,20 @@
-/obj/machinery/cooker/candy
- name = "candy machine"
- desc = "Get yer candied cheese wheels here!"
- icon_state = "mixer_off"
- off_icon = "mixer_off"
- on_icon = "mixer_on"
- cook_type = "candied"
-
- output_options = list(
- "Jawbreaker" = /obj/item/weapon/reagent_containers/food/snacks/variable/jawbreaker,
- "Candy Bar" = /obj/item/weapon/reagent_containers/food/snacks/variable/candybar,
- "Sucker" = /obj/item/weapon/reagent_containers/food/snacks/variable/sucker,
- "Jelly" = /obj/item/weapon/reagent_containers/food/snacks/variable/jelly
- )
-
-/obj/machinery/cooker/candy/change_product_appearance(var/obj/item/weapon/reagent_containers/food/snacks/cooked/product)
- food_color = get_random_colour(1)
- . = ..()
+/obj/machinery/appliance/mixer/candy
+ name = "candy machine"
+ desc = "Get yer candied cheese wheels here!"
+ icon_state = "mixer_off"
+ off_icon = "mixer_off"
+ on_icon = "mixer_on"
+ cook_type = "candied"
+ appliancetype = CANDYMAKER
+ cooking_power = 0.6
+
+ output_options = list(
+ "Jawbreaker" = /obj/item/weapon/reagent_containers/food/snacks/variable/jawbreaker,
+ "Candy Bar" = /obj/item/weapon/reagent_containers/food/snacks/variable/candybar,
+ "Sucker" = /obj/item/weapon/reagent_containers/food/snacks/variable/sucker,
+ "Jelly" = /obj/item/weapon/reagent_containers/food/snacks/variable/jelly
+ )
+
+/obj/machinery/appliance/mixer/candy/change_product_appearance(var/obj/item/weapon/reagent_containers/food/snacks/cooked/product)
+ food_color = get_random_colour(1)
+ . = ..()
diff --git a/code/modules/food/kitchen/cooking_machines/cereal.dm b/code/modules/food/kitchen/cooking_machines/cereal.dm
index 3a7b19c9b1c..613ae2c9f08 100644
--- a/code/modules/food/kitchen/cooking_machines/cereal.dm
+++ b/code/modules/food/kitchen/cooking_machines/cereal.dm
@@ -1,25 +1,62 @@
-/obj/machinery/cooker/cereal
- name = "cereal maker"
- desc = "Now with Dann O's available!"
- icon = 'icons/obj/cooking_machines.dmi'
- icon_state = "cereal_off"
- cook_type = "cerealized"
- on_icon = "cereal_on"
- off_icon = "cereal_off"
-
-/obj/machinery/cooker/cereal/change_product_strings(var/obj/item/weapon/reagent_containers/food/snacks/product)
- . = ..()
- product.name = "box of [cooking_obj.name] cereal"
-
-/obj/machinery/cooker/cereal/change_product_appearance(var/obj/item/weapon/reagent_containers/food/snacks/product)
- product.icon = 'icons/obj/food.dmi'
- product.icon_state = "cereal_box"
- product.filling_color = cooking_obj.color
-
- var/image/food_image = image(cooking_obj.icon, cooking_obj.icon_state)
- food_image.color = cooking_obj.color
- food_image.overlays += cooking_obj.overlays
- food_image.transform *= 0.7
-
- product.overlays += food_image
-
+/obj/machinery/appliance/mixer/cereal
+ name = "cereal maker"
+ desc = "Now with Dann O's available!"
+ icon = 'icons/obj/cooking_machines.dmi'
+ icon_state = "cereal_off"
+ cook_type = "cerealized"
+ on_icon = "cereal_on"
+ off_icon = "cereal_off"
+ appliancetype = CEREALMAKER
+
+ output_options = list(
+ "Cereal" = /obj/item/weapon/reagent_containers/food/snacks/variable/cereal
+ )
+
+/*
+/obj/machinery/appliance/mixer/cereal/change_product_strings(var/obj/item/weapon/reagent_containers/food/snacks/product, var/datum/cooking_item/CI)
+ . = ..()
+ product.name = "box of [CI.object.name] cereal"
+
+/obj/machinery/appliance/mixer/cereal/change_product_appearance(var/obj/item/weapon/reagent_containers/food/snacks/product)
+ product.icon = 'icons/obj/food.dmi'
+ product.icon_state = "cereal_box"
+ product.filling_color = CI.object.color
+
+ var/image/food_image = image(CI.object.icon, CI.object.icon_state)
+ food_image.color = CI.object.color
+ food_image.overlays += CI.object.overlays
+ food_image.transform *= 0.7
+
+ product.overlays += food_image
+*/
+
+/obj/machinery/appliance/mixer/cereal/combination_cook(var/datum/cooking_item/CI)
+
+ var/list/images = list()
+ var/num = 0
+ for (var/obj/item/I in CI.container).
+ if (istype(I, /obj/item/weapon/reagent_containers/food/snacks/variable/cereal))
+ //Images of cereal boxes on cereal boxes is dumb
+ continue
+
+ var/image/food_image = image(I.icon, I.icon_state)
+ food_image.color = I.color
+ food_image.add_overlay(I.overlays)
+ food_image.transform *= 0.7 - (num * 0.05)
+ food_image.pixel_x = rand(-2,2)
+ food_image.pixel_y = rand(-3,5)
+
+
+ if (!images[I.icon_state])
+ images[I.icon_state] = food_image
+ num++
+
+ if (num > 3)
+ continue
+
+
+ var/obj/item/weapon/reagent_containers/food/snacks/result = ..()
+
+ result.color = result.filling_color
+ for (var/i in images)
+ result.overlays += images[i]
diff --git a/code/modules/food/kitchen/cooking_machines/container.dm b/code/modules/food/kitchen/cooking_machines/container.dm
new file mode 100644
index 00000000000..389c8752c2a
--- /dev/null
+++ b/code/modules/food/kitchen/cooking_machines/container.dm
@@ -0,0 +1,157 @@
+//Cooking containers are used in ovens and fryers, to hold multiple ingredients for a recipe.
+//They work fairly similar to the microwave - acting as a container for objects and reagents,
+//which can be checked against recipe requirements in order to cook recipes that require several things
+
+/obj/item/weapon/reagent_containers/cooking_container
+ icon = 'modular_citadel/icons/obj/cooking_machines.dmi'
+ var/shortname
+ var/max_space = 20//Maximum sum of w-classes of foods in this container at once
+ var/max_reagents = 80//Maximum units of reagents
+ flags = OPENCONTAINER | NOREACT
+ var/list/insertable = list(
+ /obj/item/weapon/reagent_containers/food/snacks,
+ /obj/item/weapon/holder,
+ /obj/item/weapon/paper
+ )
+
+/obj/item/weapon/reagent_containers/cooking_container/initialize()
+ . = ..()
+ create_reagents(max_reagents)
+ flags |= OPENCONTAINER | NOREACT
+
+
+/obj/item/weapon/reagent_containers/cooking_container/examine(var/mob/user)
+ ..()
+ if (contents.len)
+ var/string = "It contains...."
+ for (var/atom/movable/A in contents)
+ string += "[A.name] "
+ user << span("notice", string)
+ if (reagents.total_volume)
+ user << span("notice", "It contains [reagents.total_volume]u of reagents.")
+
+
+/obj/item/weapon/reagent_containers/cooking_container/attackby(var/obj/item/I as obj, var/mob/user as mob)
+ for (var/possible_type in insertable)
+ if (istype(I, possible_type))
+ if (!can_fit(I))
+ to_chat(user, "There's no more space in the [src] for that!")
+ return 0
+
+ if(!user.unEquip(I))
+ return
+ I.forceMove(src)
+ to_chat(user, "You put the [I] into the [src]")
+ return
+
+/obj/item/weapon/reagent_containers/cooking_container/verb/empty()
+ set src in oview(1)
+ set name = "Empty Container"
+ set category = "Object"
+ set desc = "Removes items from the container, excluding reagents."
+
+ do_empty(usr)
+
+/obj/item/weapon/reagent_containers/cooking_container/proc/do_empty(mob/user)
+ if (!isliving(user))
+ //Here we only check for ghosts. Animals are intentionally allowed to remove things from oven trays so they can eat it
+ return
+
+ if (user.stat || user.restrained())
+ to_chat(user, "You are in no fit state to do this.")
+ return
+
+ if (!Adjacent(user))
+ to_chat(user, "You can't reach [src] from here.")
+ return
+
+ if (!contents.len)
+ to_chat(user, "There's nothing in the [src] you can remove!")
+ return
+
+ for (var/atom/movable/A in contents)
+ A.forceMove(get_turf(src))
+
+ to_chat(user, "You remove all the solid items from the [src].")
+
+/obj/item/weapon/reagent_containers/cooking_container/proc/check_contents()
+ if (contents.len == 0)
+ if (!reagents || reagents.total_volume == 0)
+ return 0//Completely empty
+ else if (contents.len == 1)
+ if (!reagents || reagents.total_volume == 0)
+ return 1//Contains only a single object which can be extracted alone
+ return 2//Contains multiple objects and/or reagents
+
+/obj/item/weapon/reagent_containers/cooking_container/AltClick(var/mob/user)
+ do_empty(user)
+
+//Deletes contents of container.
+//Used when food is burned, before replacing it with a burned mess
+/obj/item/weapon/reagent_containers/cooking_container/proc/clear()
+ for (var/atom/a in contents)
+ qdel(a)
+
+ if (reagents)
+ reagents.clear_reagents()
+
+/obj/item/weapon/reagent_containers/cooking_container/proc/label(var/number, var/CT = null)
+ //This returns something like "Fryer basket 1 - empty"
+ //The latter part is a brief reminder of contents
+ //This is used in the removal menu
+ . = shortname
+ if (!isnull(number))
+ .+= " [number]"
+ .+= " - "
+ if (CT)
+ .+=CT
+ else if (contents.len)
+ for (var/obj/O in contents)
+ .+=O.name//Just append the name of the first object
+ return
+ else if (reagents && reagents.total_volume > 0)
+ var/datum/reagent/R = reagents.get_master_reagent()
+ .+=R.name//Append name of most voluminous reagent
+ return
+ else
+ . += "empty"
+
+
+/obj/item/weapon/reagent_containers/cooking_container/proc/can_fit(var/obj/item/I)
+ var/total = 0
+ for (var/obj/item/J in contents)
+ total += J.w_class
+
+ if((max_space - total) >= I.w_class)
+ return 1
+
+
+//Takes a reagent holder as input and distributes its contents among the items in the container
+//Distribution is weighted based on the volume already present in each item
+/obj/item/weapon/reagent_containers/cooking_container/proc/soak_reagent(var/datum/reagents/holder)
+ var/total = 0
+ var/list/weights = list()
+ for (var/obj/item/I in contents)
+ if (I.reagents && I.reagents.total_volume)
+ total += I.reagents.total_volume
+ weights[I] = I.reagents.total_volume
+
+ if (total > 0)
+ for (var/obj/item/I in contents)
+ if (weights[I])
+ holder.trans_to(I, weights[I] / total)
+
+
+/obj/item/weapon/reagent_containers/cooking_container/oven
+ name = "oven dish"
+ shortname = "shelf"
+ desc = "Put ingredients in this; designed for use with an oven. Warranty void if used."
+ icon_state = "ovendish"
+ max_space = 30
+ max_reagents = 120
+
+/obj/item/weapon/reagent_containers/cooking_container/fryer
+ name = "fryer basket"
+ shortname = "basket"
+ desc = "Put ingredients in this; designed for use with a deep fryer. Warranty void if used."
+ icon_state = "basket"
\ No newline at end of file
diff --git a/code/modules/food/kitchen/cooking_machines/fryer.dm b/code/modules/food/kitchen/cooking_machines/fryer.dm
index e3753f0f486..bec146218b8 100644
--- a/code/modules/food/kitchen/cooking_machines/fryer.dm
+++ b/code/modules/food/kitchen/cooking_machines/fryer.dm
@@ -1,4 +1,4 @@
-/obj/machinery/cooker/fryer
+/obj/machinery/appliance/cooker/fryer
name = "deep fryer"
desc = "Deep fried everything."
icon_state = "fryer_off"
@@ -9,30 +9,157 @@
food_color = "#FFAD33"
cooked_sound = 'sound/machines/ding.ogg'
var/datum/looping_sound/deep_fryer/fry_loop
+ appliancetype = FRYER
+ active_power_usage = 12 KILOWATTS
+
+ optimal_power = 0.35
+
+ idle_power_usage = 3.6 KILOWATTS
+ // Power used to maintain temperature once it's heated.
+ // Going with 25% of the active power. This is a somewhat arbitrary value.
-/obj/machinery/cooker/fryer/Initialize()
+ resistance = 20000 // Approx. 8-9 minutes to heat up.
+
+ max_contents = 2
+ container_type = /obj/item/weapon/reagent_containers/cooking_container/fryer
+
+ stat = POWEROFF // Starts turned off
+
+ var/datum/reagents/oil
+ var/optimal_oil = 9000 //90 litres of cooking oil
+
+/obj/machinery/appliance/cooker/fryer/Initialize()
+ . = ..()
fry_loop = new(list(src), FALSE)
- return ..()
+
+ oil = new/datum/reagents(optimal_oil * 1.25, src)
+ var/variance = rand()*0.15
+ // Fryer is always a little below full, but its usually negligible
-/obj/machinery/cooker/fryer/Destroy()
+ if(prob(20))
+ // Sometimes the fryer will start with much less than full oil, significantly impacting efficiency until filled
+ variance = rand()*0.5
+ oil.add_reagent("cornoil", optimal_oil*(1 - variance))
+
+/obj/machinery/appliance/cooker/fryer/Destroy()
QDEL_NULL(fry_loop)
return ..()
+
+/obj/machinery/appliance/cooker/fryer/examine(var/mob/user)
+ if (..())//no need to duplicate adjacency check
+ to_chat(user, "Oil Level: [oil.total_volume]/[optimal_oil]")
+
+/obj/machinery/appliance/cooker/fryer/heat_up()
+ if (..())
+ //Set temperature of oil reagent
+ var/datum/reagent/nutriment/triglyceride/oil/OL = oil.get_master_reagent()
+ if (OL && istype(OL))
+ OL.data["temperature"] = temperature
-/obj/machinery/cooker/fryer/set_cooking(new_setting)
+/obj/machinery/appliance/cooker/fryer/equalize_temperature()
+ if (..())
+ //Set temperature of oil reagent
+ var/datum/reagent/nutriment/triglyceride/oil/OL = oil.get_master_reagent()
+ if (OL && istype(OL))
+ OL.data["temperature"] = temperature
+
+/obj/machinery/appliance/cooker/fryer/set_cooking(new_setting)
..()
if(new_setting)
fry_loop.start()
else
fry_loop.stop()
+
+/obj/machinery/appliance/cooker/fryer/update_cooking_power()
+ ..()//In addition to parent temperature calculation
+ //Fryer efficiency also drops when oil levels arent optimal
+ var/oil_level = 0
+ var/datum/reagent/nutriment/triglyceride/oil/OL = oil.get_master_reagent()
+ if(OL && istype(OL))
+ oil_level = OL.volume
-/obj/machinery/cooker/fryer/cook_mob(var/mob/living/victim, var/mob/user)
+ var/oil_efficiency = 0
+ if(oil_level)
+ oil_efficiency = oil_level / optimal_oil
+
+ if(oil_efficiency > 1)
+ //We're above optimal, efficiency goes down as we pass too much over it
+ oil_efficiency = 1 - (oil_efficiency - 1)
+
+
+ cooking_power *= oil_efficiency
+
+/obj/machinery/appliance/cooker/fryer/update_icon()
+ if(cooking)
+ icon_state = on_icon
+ else
+ icon_state = off_icon
+ ..()
+
+//Fryer gradually infuses any cooked food with oil. Moar calories
+//This causes a slow drop in oil levels, encouraging refill after extended use
+/obj/machinery/appliance/cooker/fryer/do_cooking_tick(var/datum/cooking_item/CI)
+ if(..() && (CI.oil < CI.max_oil) && prob(20))
+ var/datum/reagents/buffer = new /datum/reagents(2)
+ oil.trans_to_holder(buffer, min(0.5, CI.max_oil - CI.oil))
+ CI.oil += buffer.total_volume
+ CI.container.soak_reagent(buffer)
+
+
+//To solve any odd logic problems with results having oil as part of their compiletime ingredients.
+//Upon finishing a recipe the fryer will analyse any oils in the result, and replace them with our oil
+//As well as capping the total to the max oil
+/obj/machinery/appliance/cooker/fryer/finish_cooking(var/datum/cooking_item/CI)
+ ..()
+ var/total_oil = 0
+ var/total_our_oil = 0
+ var/total_removed = 0
+ var/datum/reagent/our_oil = oil.get_master_reagent()
+
+ for (var/obj/item/I in CI.container)
+ if (I.reagents && I.reagents.total_volume)
+ for (var/datum/reagent/R in I.reagents.reagent_list)
+ if (istype(R, /datum/reagent/nutriment/triglyceride/oil))
+ total_oil += R.volume
+ if (R.id != our_oil.id)
+ total_removed += R.volume
+ I.reagents.remove_reagent(R.id, R.volume)
+ else
+ total_our_oil += R.volume
+
+
+ if (total_removed > 0 || total_oil != CI.max_oil)
+ total_oil = min(total_oil, CI.max_oil)
+
+ if (total_our_oil < total_oil)
+ //If we have less than the combined total, then top up from our reservoir
+ var/datum/reagents/buffer = new /datum/reagents(INFINITY)
+ oil.trans_to_holder(buffer, total_oil - total_our_oil)
+ CI.container.soak_reagent(buffer)
+ else if (total_our_oil > total_oil)
+
+ //If we have more than the maximum allowed then we delete some.
+ //This could only happen if one of the objects spawns with the same type of oil as ours
+ var/portion = 1 - (total_oil / total_our_oil) //find the percentage to remove
+ for (var/obj/item/I in CI.container)
+ if (I.reagents && I.reagents.total_volume)
+ for (var/datum/reagent/R in I.reagents.reagent_list)
+ if (R.id == our_oil.id)
+ I.reagents.remove_reagent(R.id, R.volume*portion)
+
+/obj/machinery/appliance/cooker/fryer/cook_mob(var/mob/living/victim, var/mob/user)
if(!istype(victim))
return
- user.visible_message("\The [user] starts pushing \the [victim] into \the [src]!")
- icon_state = on_icon
- cooking = 1
+ // user.visible_message("\The [user] starts pushing \the [victim] into \the [src]!")
+
+ //Removed delay on this action in favour of a cooldown after it
+ //If you can lure someone close to the fryer and grab them then you deserve success.
+ //And a delay on this kind of niche action just ensures it never happens
+ //Cooldown ensures it can't be spammed to instakill someone
+ user.setClickCooldown(DEFAULT_ATTACK_COOLDOWN*3)
+
fry_loop.start()
if(!do_mob(user, victim, 20))
@@ -48,38 +175,71 @@
fry_loop.stop()
return
+ var/damage = rand(7,13) // Though this damage seems reduced, some hot oil is transferred to the victim and will burn them for a while after
+
+ var/datum/reagent/nutriment/triglyceride/oil/OL = oil.get_master_reagent()
+ damage *= OL.heatdamage(victim)
+
var/obj/item/organ/external/E
var/nopain
if(ishuman(victim) && user.zone_sel.selecting != "groin" && user.zone_sel.selecting != "chest")
var/mob/living/carbon/human/H = victim
- if(H.species.flags & NO_PAIN)
- nopain = 2
E = H.get_organ(user.zone_sel.selecting)
- if(E.robotic >= ORGAN_ROBOT)
+ if(!E || E.species.flags & NO_PAIN)
+ nopain = 2
+ else if(E.robotic >= ORGAN_ROBOT)
nopain = 1
user.visible_message("\The [user] shoves \the [victim][E ? "'s [E.name]" : ""] into \the [src]!")
+ if (damage > 0)
+ if(E)
+ if(E.children && E.children.len)
+ for(var/obj/item/organ/external/child in E.children)
+ if(nopain && nopain < 2 && !(child.robotic >= ORGAN_ROBOT))
+ nopain = 0
+ child.take_damage(0, damage)
+ damage -= (damage*0.5)//IF someone's arm is plunged in, the hand should take most of it
+ E.take_damage(0, damage)
+ else
+ victim.apply_damage(damage, BURN, user.zone_sel.selecting)
- if(E)
- E.take_damage(0, rand(20,30))
- if(E.children && E.children.len)
- for(var/obj/item/organ/external/child in E.children)
- if(nopain && nopain < 2 && !(child.robotic >= ORGAN_ROBOT))
- nopain = 0
- child.take_damage(0, rand(20,30))
- else
- victim.apply_damage(rand(30,40), BURN, user.zone_sel.selecting)
+ if(!nopain)
+ victim << "Agony consumes you as searing hot oil scorches your [E ? E.name : "flesh"] horribly!"
+ victim.emote("scream")
+ else
+ victim << "Searing hot oil scorches your [E ? E.name : "flesh"]!"
- if(!nopain)
- to_chat(victim, "Agony consumes you as searing hot oil scorches your [E ? E.name : "flesh"] horribly!")
- victim.emote("scream")
- else
- to_chat(victim, "Searing hot oil scorches your [E ? E.name : "flesh"]!")
+ user.attack_log += text("\[[time_stamp()]\] Has [cook_type] \the [victim] ([victim.ckey]) in \a [src]")
+ victim.attack_log += text("\[[time_stamp()]\] Has been [cook_type] in \a [src] by [user.name] ([user.ckey])")
+ msg_admin_attack("[key_name_admin(user)] [cook_type] \the [victim] ([victim.ckey]) in \a [src]. (JMP)",ckey=key_name(user),ckey_target=key_name(victim))
- if(victim.client)
- add_attack_logs(user,victim,"[cook_type] in [src]")
-
- icon_state = off_icon
- cooking = 0
+ //Coat the victim in some oil
+ oil.trans_to(victim, 40)
+
fry_loop.stop()
- return
+
+/obj/machinery/appliance/cooker/fryer/attackby(var/obj/item/I, var/mob/user)
+ if(istype(I, /obj/item/weapon/reagent_containers/glass) && I.reagents)
+ if (I.reagents.total_volume <= 0 && oil)
+ //Its empty, handle scooping some hot oil out of the fryer
+ oil.trans_to(I, I.reagents.maximum_volume)
+ user.visible_message("[user] scoops some oil out of \the [src].", span("notice","You scoop some oil out of \the [src]."))
+ return 1
+ else
+ //It contains stuff, handle pouring any oil into the fryer
+ //Possibly in future allow pouring non-oil reagents in, in order to sabotage it and poison food.
+ //That would really require coding some sort of filter or better replacement mechanism first
+ //So for now, restrict to oil only
+ var/amount = 0
+ for (var/datum/reagent/R in I.reagents.reagent_list)
+ if (istype(R, /datum/reagent/nutriment/triglyceride/oil))
+ var/delta = oil.get_free_space()
+ delta = min(delta, R.volume)
+ oil.add_reagent(R.id, delta)
+ I.reagents.remove_reagent(R.id, delta)
+ amount += delta
+ if (amount > 0)
+ user.visible_message("[user] pours some oil into \the [src].", span("notice","You pour [amount]u of oil into \the [src]."), "You hear something viscous being poured into a metal container.")
+ return 1
+ //If neither of the above returned, then call parent as normal
+ ..()
diff --git a/code/modules/food/kitchen/cooking_machines/grill.dm b/code/modules/food/kitchen/cooking_machines/grill.dm
index 312189c5881..663cffe62b5 100644
--- a/code/modules/food/kitchen/cooking_machines/grill.dm
+++ b/code/modules/food/kitchen/cooking_machines/grill.dm
@@ -1,10 +1,10 @@
-/obj/machinery/cooker/grill
- name = "grill"
- desc = "Backyard grilling, IN SPACE."
- icon_state = "grill_off"
- cook_type = "grilled"
- cook_time = 100
- food_color = "#A34719"
- on_icon = "grill_on"
- off_icon = "grill_off"
+/obj/machinery/appliance/cooker/grill
+ name = "grill"
+ desc = "Backyard grilling, IN SPACE."
+ icon_state = "grill_off"
+ cook_type = "grilled"
+ cook_time = 100
+ food_color = "#A34719"
+ on_icon = "grill_on"
+ off_icon = "grill_off"
can_burn_food = 1
\ No newline at end of file
diff --git a/code/modules/food/kitchen/cooking_machines/oven.dm b/code/modules/food/kitchen/cooking_machines/oven.dm
index ec941af2239..c1d0ccf5353 100644
--- a/code/modules/food/kitchen/cooking_machines/oven.dm
+++ b/code/modules/food/kitchen/cooking_machines/oven.dm
@@ -1,23 +1,23 @@
-/obj/machinery/cooker/oven
- name = "oven"
- desc = "Cookies are ready, dear."
- icon = 'icons/obj/cooking_machines.dmi'
- icon_state = "oven_off"
- on_icon = "oven_on"
- off_icon = "oven_off"
- cook_type = "baked"
- cook_time = 300
- food_color = "#A34719"
- can_burn_food = 1
-
- output_options = list(
- "Personal Pizza" = /obj/item/weapon/reagent_containers/food/snacks/variable/pizza,
- "Bread" = /obj/item/weapon/reagent_containers/food/snacks/variable/bread,
- "Pie" = /obj/item/weapon/reagent_containers/food/snacks/variable/pie,
- "Small Cake" = /obj/item/weapon/reagent_containers/food/snacks/variable/cake,
- "Hot Pocket" = /obj/item/weapon/reagent_containers/food/snacks/variable/pocket,
- "Kebab" = /obj/item/weapon/reagent_containers/food/snacks/variable/kebab,
- "Waffles" = /obj/item/weapon/reagent_containers/food/snacks/variable/waffles,
- "Cookie" = /obj/item/weapon/reagent_containers/food/snacks/variable/cookie,
- "Donut" = /obj/item/weapon/reagent_containers/food/snacks/variable/donut,
+/obj/machinery/appliance/cooker/oven
+ name = "oven"
+ desc = "Cookies are ready, dear."
+ icon = 'icons/obj/cooking_machines.dmi'
+ icon_state = "oven_off"
+ on_icon = "oven_on"
+ off_icon = "oven_off"
+ cook_type = "baked"
+ cook_time = 300
+ food_color = "#A34719"
+ can_burn_food = 1
+
+ output_options = list(
+ "Personal Pizza" = /obj/item/weapon/reagent_containers/food/snacks/variable/pizza,
+ "Bread" = /obj/item/weapon/reagent_containers/food/snacks/variable/bread,
+ "Pie" = /obj/item/weapon/reagent_containers/food/snacks/variable/pie,
+ "Small Cake" = /obj/item/weapon/reagent_containers/food/snacks/variable/cake,
+ "Hot Pocket" = /obj/item/weapon/reagent_containers/food/snacks/variable/pocket,
+ "Kebab" = /obj/item/weapon/reagent_containers/food/snacks/variable/kebab,
+ "Waffles" = /obj/item/weapon/reagent_containers/food/snacks/variable/waffles,
+ "Cookie" = /obj/item/weapon/reagent_containers/food/snacks/variable/cookie,
+ "Donut" = /obj/item/weapon/reagent_containers/food/snacks/variable/donut,
)
\ No newline at end of file
diff --git a/icons/obj/cooking_machines.dmi b/icons/obj/cooking_machines.dmi
index 666a31b9d09..119d42de116 100644
Binary files a/icons/obj/cooking_machines.dmi and b/icons/obj/cooking_machines.dmi differ
diff --git a/icons/obj/food.dmi b/icons/obj/food.dmi
index 64f4753b7b9..156185fc903 100644
Binary files a/icons/obj/food.dmi and b/icons/obj/food.dmi differ
diff --git a/icons/obj/food_syn.dmi b/icons/obj/food_syn.dmi
new file mode 100644
index 00000000000..f794f3f7de9
Binary files /dev/null and b/icons/obj/food_syn.dmi differ
diff --git a/maps/northern_star/polaris-1.dmm b/maps/northern_star/polaris-1.dmm
index e6740cebd48..def42f2def7 100644
--- a/maps/northern_star/polaris-1.dmm
+++ b/maps/northern_star/polaris-1.dmm
@@ -4612,12 +4612,12 @@
"bKJ" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/hydroponics)
"bKK" = (/obj/effect/floor_decal/corner/grey/diagonal{dir = 4},/obj/structure/table/marble,/obj/item/weapon/book/manual/chef_recipes,/obj/item/weapon/reagent_containers/food/condiment/small/saltshaker{pixel_x = -3; pixel_y = 0},/obj/item/weapon/reagent_containers/food/condiment/small/peppermill{pixel_x = 3},/obj/machinery/camera/network/civilian{c_tag = "CIV - Kitchen Port"; dir = 4},/turf/simulated/floor/tiled/white,/area/crew_quarters/kitchen)
"bKL" = (/obj/effect/floor_decal/corner/grey/diagonal{dir = 4},/obj/machinery/disposal,/obj/structure/disposalpipe/trunk,/obj/structure/extinguisher_cabinet{pixel_x = 5; pixel_y = 28},/turf/simulated/floor/tiled/white,/area/crew_quarters/kitchen)
-"bKM" = (/obj/effect/floor_decal/corner/grey/diagonal{dir = 4},/obj/machinery/cooker/fryer,/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = 32},/turf/simulated/floor/tiled/white,/area/crew_quarters/kitchen)
-"bKN" = (/obj/effect/floor_decal/corner/grey/diagonal{dir = 4},/obj/machinery/cooker/grill,/obj/machinery/newscaster{pixel_y = 32},/turf/simulated/floor/tiled/white,/area/crew_quarters/kitchen)
+"bKM" = (/obj/effect/floor_decal/corner/grey/diagonal{dir = 4},/obj/machinery/appliance/cooker/fryer,/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = 32},/turf/simulated/floor/tiled/white,/area/crew_quarters/kitchen)
+"bKN" = (/obj/effect/floor_decal/corner/grey/diagonal{dir = 4},/obj/machinery/appliance/cooker/grill,/obj/machinery/newscaster{pixel_y = 32},/turf/simulated/floor/tiled/white,/area/crew_quarters/kitchen)
"bKO" = (/obj/effect/floor_decal/corner/grey/diagonal{dir = 4},/obj/structure/closet/secure_closet/freezer/fridge,/obj/item/device/radio/intercom{dir = 1; name = "Station Intercom (General)"; pixel_y = 21},/obj/machinery/atmospherics/unary/vent_scrubber/on,/turf/simulated/floor/tiled/white,/area/crew_quarters/kitchen)
"bKP" = (/obj/effect/floor_decal/corner/grey/diagonal{dir = 4},/obj/structure/disposalpipe/segment,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled/white,/area/crew_quarters/kitchen)
"bKQ" = (/obj/effect/floor_decal/corner/grey/diagonal{dir = 4},/obj/structure/sink/kitchen{pixel_y = 28},/turf/simulated/floor/tiled/white,/area/crew_quarters/kitchen)
-"bKR" = (/obj/effect/floor_decal/corner/grey/diagonal{dir = 4},/obj/machinery/cooker/oven,/turf/simulated/floor/tiled/white,/area/crew_quarters/kitchen)
+"bKR" = (/obj/effect/floor_decal/corner/grey/diagonal{dir = 4},/obj/machinery/appliance/cooker/oven,/turf/simulated/floor/tiled/white,/area/crew_quarters/kitchen)
"bKS" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/crew_quarters/kitchen)
"bKT" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/turf/simulated/floor/tiled,/area/hallway/primary/central_two)
"bKU" = (/turf/simulated/wall/r_wall,/area/medical/chemistry)
@@ -4716,7 +4716,7 @@
"bMJ" = (/obj/effect/floor_decal/corner/grey/diagonal{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/effect/landmark/start{name = "Chef"},/turf/simulated/floor/tiled/white,/area/crew_quarters/kitchen)
"bMK" = (/obj/effect/floor_decal/corner/grey/diagonal{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers,/turf/simulated/floor/tiled/white,/area/crew_quarters/kitchen)
"bML" = (/obj/effect/floor_decal/corner/grey/diagonal{dir = 4},/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/turf/simulated/floor/tiled/white,/area/crew_quarters/kitchen)
-"bMM" = (/obj/effect/floor_decal/corner/grey/diagonal{dir = 4},/obj/machinery/cooker/candy,/obj/machinery/light{dir = 4},/turf/simulated/floor/tiled/white,/area/crew_quarters/kitchen)
+"bMM" = (/obj/effect/floor_decal/corner/grey/diagonal{dir = 4},/obj/machinery/appliance/cooker/candy,/obj/machinery/light{dir = 4},/turf/simulated/floor/tiled/white,/area/crew_quarters/kitchen)
"bMN" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/crew_quarters/kitchen)
"bMO" = (/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -21},/turf/simulated/floor/tiled,/area/hallway/primary/central_two)
"bMP" = (/obj/structure/extinguisher_cabinet{pixel_x = 25},/turf/simulated/floor/tiled,/area/hallway/primary/central_two)
@@ -4817,7 +4817,7 @@
"bOG" = (/obj/effect/floor_decal/corner/grey/diagonal{dir = 4},/obj/structure/table/marble,/obj/machinery/chemical_dispenser/bar_soft/full,/turf/simulated/floor/tiled/white,/area/crew_quarters/kitchen)
"bOH" = (/obj/structure/table/marble,/obj/effect/floor_decal/corner/grey/diagonal{dir = 4},/obj/item/weapon/storage/box/donkpockets{pixel_x = 3; pixel_y = 3},/obj/item/weapon/reagent_containers/glass/beaker{pixel_x = 5},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled/white,/area/crew_quarters/kitchen)
"bOI" = (/obj/structure/table/marble,/obj/effect/floor_decal/corner/grey/diagonal{dir = 4},/obj/item/weapon/material/knife/butch,/obj/item/weapon/material/kitchen/rollingpin,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled/white,/area/crew_quarters/kitchen)
-"bOJ" = (/obj/effect/floor_decal/corner/grey/diagonal{dir = 4},/obj/machinery/cooker/cereal,/obj/machinery/camera/network/civilian{c_tag = "CIV - Kitchen Starboard"; dir = 8},/turf/simulated/floor/tiled/white,/area/crew_quarters/kitchen)
+"bOJ" = (/obj/effect/floor_decal/corner/grey/diagonal{dir = 4},/obj/machinery/appliance/cooker/cereal,/obj/machinery/camera/network/civilian{c_tag = "CIV - Kitchen Starboard"; dir = 8},/turf/simulated/floor/tiled/white,/area/crew_quarters/kitchen)
"bOK" = (/obj/item/stack/material/phoron,/obj/item/stack/material/phoron,/obj/item/stack/material/phoron,/obj/item/stack/material/phoron,/obj/item/stack/material/phoron,/obj/structure/table/reinforced,/obj/machinery/button/remote/blast_door{id = "chemcounter"; name = "Pharmacy Counter Lockdown Control"; pixel_y = 14},/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/obj/effect/floor_decal/corner/beige{dir = 9},/turf/simulated/floor/tiled/white,/area/medical/chemistry)
"bOL" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/turf/simulated/floor/tiled/white,/area/medical/chemistry)
"bOM" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/simulated/floor/tiled/white,/area/medical/chemistry)
diff --git a/maps/southern_cross/southern_cross-1.dmm b/maps/southern_cross/southern_cross-1.dmm
index b276f58b451..f0895b3e562 100644
--- a/maps/southern_cross/southern_cross-1.dmm
+++ b/maps/southern_cross/southern_cross-1.dmm
@@ -8095,7 +8095,7 @@
"cZI" = (/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/tiled/steel_grid,/area/crew_quarters/locker)
"cZJ" = (/obj/effect/floor_decal/borderfloor{dir = 1},/obj/effect/floor_decal/corner/green/border{dir = 1},/obj/machinery/atmospherics/unary/vent_pump/on,/obj/effect/floor_decal/borderfloor/corner2{dir = 4},/obj/effect/floor_decal/corner/green/bordercorner2{dir = 4},/turf/simulated/floor/tiled,/area/crew_quarters/locker)
"cZK" = (/obj/effect/floor_decal/corner/grey/diagonal{dir = 4},/turf/simulated/floor/tiled/white,/area/crew_quarters/kitchen)
-"cZL" = (/obj/machinery/cooker/fryer,/obj/effect/floor_decal/corner/grey/diagonal{dir = 4},/turf/simulated/floor/tiled/white,/area/crew_quarters/kitchen)
+"cZL" = (/obj/machinery/appliance/cooker/fryer,/obj/effect/floor_decal/corner/grey/diagonal{dir = 4},/turf/simulated/floor/tiled/white,/area/crew_quarters/kitchen)
"cZM" = (/obj/effect/floor_decal/borderfloor/corner{dir = 1},/obj/effect/floor_decal/corner/green/bordercorner{dir = 1},/obj/machinery/firealarm{dir = 2; layer = 3.3; pixel_x = 0; pixel_y = 26},/turf/simulated/floor/tiled,/area/crew_quarters/locker)
"cZN" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 4},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 9},/turf/simulated/floor/tiled,/area/crew_quarters/locker)
"cZO" = (/obj/effect/floor_decal/borderfloor{dir = 1},/obj/effect/floor_decal/corner/green/border{dir = 1},/obj/machinery/atmospherics/unary/vent_scrubber/on,/obj/machinery/alarm{pixel_y = 22},/turf/simulated/floor/tiled,/area/crew_quarters/locker)
@@ -8130,7 +8130,7 @@
"dar" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/maintenance{req_access = null; req_one_access = list(5,12,25,27,28,35)},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/plating,/area/crew_quarters/locker)
"das" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/plating,/area/maintenance/locker)
"dat" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/floor/plating,/area/maintenance/locker)
-"dau" = (/obj/machinery/cooker/candy,/obj/effect/floor_decal/corner/grey/diagonal{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/firealarm{dir = 8; pixel_x = -24},/turf/simulated/floor/tiled/white,/area/crew_quarters/kitchen)
+"dau" = (/obj/machinery/appliance/cooker/candy,/obj/effect/floor_decal/corner/grey/diagonal{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/firealarm{dir = 8; pixel_x = -24},/turf/simulated/floor/tiled/white,/area/crew_quarters/kitchen)
"dav" = (/obj/effect/floor_decal/corner/grey/diagonal{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/tiled/white,/area/crew_quarters/kitchen)
"daw" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/closet,/obj/random/maintenance,/obj/random/maintenance,/obj/random/maintenance/clean,/obj/random/maintenance/clean,/turf/simulated/floor/plating,/area/maintenance/bar)
"dax" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/wall,/area/crew_quarters/kitchen)
@@ -8186,7 +8186,7 @@
"dbv" = (/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/green/border,/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/effect/floor_decal/borderfloor/corner2{dir = 9},/obj/effect/floor_decal/corner/green/bordercorner2{dir = 9},/turf/simulated/floor/tiled,/area/crew_quarters/locker)
"dbw" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating,/area/maintenance/bar)
"dbx" = (/obj/machinery/atmospherics/pipe/simple/visible/universal{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/floor/plating,/area/maintenance/bar)
-"dby" = (/obj/machinery/cooker/cereal,/obj/effect/floor_decal/corner/grey/diagonal{dir = 4},/obj/machinery/ai_status_display{pixel_x = -32; pixel_y = 0},/turf/simulated/floor/tiled/white,/area/crew_quarters/kitchen)
+"dby" = (/obj/machinery/appliance/cooker/cereal,/obj/effect/floor_decal/corner/grey/diagonal{dir = 4},/obj/machinery/ai_status_display{pixel_x = -32; pixel_y = 0},/turf/simulated/floor/tiled/white,/area/crew_quarters/kitchen)
"dbz" = (/obj/machinery/atmospherics/pipe/simple/hidden/cyan{dir = 10; icon_state = "intact"},/obj/machinery/floodlight,/turf/simulated/floor/plating,/area/maintenance/bar)
"dbA" = (/obj/item/weapon/stool/padded,/obj/effect/floor_decal/corner/grey/diagonal{dir = 4},/obj/effect/landmark/start{name = "Chef"},/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled/white,/area/crew_quarters/kitchen)
"dbB" = (/obj/structure/table/marble,/obj/effect/floor_decal/corner/grey/diagonal{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 8},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4},/obj/item/weapon/storage/box/donkpockets{pixel_x = 3; pixel_y = 3},/obj/item/weapon/reagent_containers/glass/beaker{pixel_x = 5},/obj/item/weapon/reagent_containers/food/condiment/enzyme,/turf/simulated/floor/tiled/white,/area/crew_quarters/kitchen)
@@ -8346,10 +8346,10 @@
"dez" = (/obj/effect/floor_decal/borderfloor{dir = 1},/obj/effect/floor_decal/corner/green/border{dir = 1},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1},/obj/machinery/alarm{pixel_y = 22},/turf/simulated/floor/tiled,/area/crew_quarters/locker)
"deA" = (/obj/effect/floor_decal/borderfloor/corner{dir = 1},/obj/effect/floor_decal/corner/green/bordercorner{dir = 1},/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9},/turf/simulated/floor/tiled,/area/crew_quarters/locker)
"deB" = (/obj/structure/closet/crate/plastic,/obj/random/maintenance/clean,/obj/random/maintenance/clean,/turf/simulated/floor/plating,/area/maintenance/bar)
-"deC" = (/obj/machinery/cooker/grill,/obj/effect/floor_decal/corner/grey/diagonal{dir = 4},/turf/simulated/floor/tiled/white,/area/crew_quarters/kitchen)
+"deC" = (/obj/machinery/appliance/cooker/grill,/obj/effect/floor_decal/corner/grey/diagonal{dir = 4},/turf/simulated/floor/tiled/white,/area/crew_quarters/kitchen)
"deD" = (/obj/effect/floor_decal/corner/grey/diagonal{dir = 4},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled/white,/area/crew_quarters/kitchen)
"deE" = (/obj/effect/floor_decal/corner/grey/diagonal{dir = 4},/obj/structure/cable/green{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 5},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 8},/turf/simulated/floor/tiled/white,/area/crew_quarters/kitchen)
-"deF" = (/obj/machinery/cooker/oven,/obj/effect/floor_decal/corner/grey/diagonal{dir = 4},/obj/machinery/light,/turf/simulated/floor/tiled/white,/area/crew_quarters/kitchen)
+"deF" = (/obj/machinery/appliance/cooker/oven,/obj/effect/floor_decal/corner/grey/diagonal{dir = 4},/obj/machinery/light,/turf/simulated/floor/tiled/white,/area/crew_quarters/kitchen)
"deG" = (/obj/structure/closet/lasertag/red,/obj/item/stack/flag/red,/obj/structure/window/reinforced,/turf/simulated/floor/tiled/dark,/area/crew_quarters/locker)
"deH" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/green{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/wood,/area/crew_quarters/cafeteria)
"deI" = (/obj/structure/flora/pottedplant,/obj/machinery/computer/guestpass{pixel_x = 0; pixel_y = -30},/turf/simulated/floor/wood,/area/crew_quarters/cafeteria)
@@ -11021,7 +11021,7 @@
"edW" = (/obj/structure/table/reinforced,/obj/structure/window/reinforced,/obj/item/weapon/clipboard,/obj/item/weapon/folder/yellow,/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled,/area/engineering/foyer)
"edX" = (/obj/machinery/atmospherics/pipe/manifold/hidden/red{dir = 8},/turf/simulated/floor/tiled,/area/engineering/foyer)
"edY" = (/obj/machinery/atmospherics/pipe/simple/hidden/red{dir = 5; icon_state = "intact"},/turf/simulated/floor/tiled,/area/engineering/foyer)
-
+
(1,1,1) = {"
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
diff --git a/maps/southern_cross/southern_cross-6.dmm b/maps/southern_cross/southern_cross-6.dmm
index 8d40ebf0329..205bef24b58 100644
--- a/maps/southern_cross/southern_cross-6.dmm
+++ b/maps/southern_cross/southern_cross-6.dmm
@@ -644,7 +644,7 @@
"mt" = (/obj/item/weapon/stool/padded,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/bar)
"mu" = (/obj/machinery/biogenerator,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/bar)
"mv" = (/obj/effect/floor_decal/corner/white/diagonal,/obj/structure/table/marble,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/bar)
-"mw" = (/obj/effect/floor_decal/corner/white/diagonal,/obj/machinery/cooker/fryer,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/bar)
+"mw" = (/obj/effect/floor_decal/corner/white/diagonal,/obj/machinery/appliance/cooker/fryer,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/bar)
"mx" = (/obj/machinery/computer/card/centcom{dir = 4},/obj/item/weapon/card/id/centcom,/turf/unsimulated/floor{dir = 2; icon_state = "dark"},/area/centcom/creed)
"my" = (/obj/structure/bed/chair{dir = 1},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/command)
"mz" = (/turf/space,/obj/structure/shuttle/engine/propulsion{icon_state = "burst_l"; dir = 8},/turf/simulated/shuttle/plating/airless/carry,/area/shuttle/response_ship/start)
@@ -660,7 +660,7 @@
"mJ" = (/obj/structure/reagent_dispensers/beerkeg,/turf/unsimulated/floor{icon_state = "lino"},/area/tdome/tdomeobserve)
"mK" = (/obj/structure/table/reinforced,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/main_hall)
"mL" = (/obj/effect/floor_decal/corner/white/diagonal,/obj/structure/closet/secure_closet/freezer/fridge,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/bar)
-"mM" = (/obj/effect/floor_decal/corner/white/diagonal,/obj/machinery/cooker/grill,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/bar)
+"mM" = (/obj/effect/floor_decal/corner/white/diagonal,/obj/machinery/appliance/cooker/grill,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/bar)
"mN" = (/obj/effect/floor_decal/corner/white/diagonal,/obj/structure/sink/kitchen{pixel_y = 28},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/bar)
"mO" = (/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/command)
"mP" = (/obj/machinery/button/remote/blast_door{id = "crescent_thunderdome"; name = "Thunderdome Access"; pixel_x = 6; pixel_y = -24; req_access = list(101)},/obj/machinery/button/remote/blast_door{id = "crescent_vip_shuttle"; name = "VIP Shuttle Access"; pixel_x = 6; pixel_y = -34; req_access = list(101)},/obj/machinery/button/remote/blast_door{id = "crescent_checkpoint_access"; name = "Crescent Checkpoint Access"; pixel_x = -6; pixel_y = -24; req_access = list(101)},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/command)
@@ -668,7 +668,7 @@
"mR" = (/turf/space,/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion"; dir = 8},/turf/simulated/shuttle/plating/airless/carry,/area/shuttle/response_ship/start)
"mS" = (/turf/space,/obj/structure/shuttle/engine/propulsion{icon_state = "burst_r"; dir = 8},/turf/simulated/shuttle/plating/airless/carry,/area/shuttle/response_ship/start)
"mT" = (/obj/machinery/computer/pod{id = "thunderdomegen"; name = "Thunderdome General Supply"},/turf/unsimulated/floor{icon_state = "lino"},/area/tdome/tdomeadmin)
-"mU" = (/obj/effect/floor_decal/corner/white/diagonal,/obj/machinery/cooker/oven,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/bar)
+"mU" = (/obj/effect/floor_decal/corner/white/diagonal,/obj/machinery/appliance/cooker/oven,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/bar)
"mV" = (/obj/structure/table/standard{name = "plastic table frame"},/obj/item/weapon/material/knife/machete/hatchet,/obj/item/weapon/material/knife/machete/hatchet,/obj/item/weapon/material/minihoe,/obj/item/weapon/material/minihoe,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/bar)
"mW" = (/obj/machinery/smartfridge/drying_rack,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/bar)
"mX" = (/obj/structure/table/standard{name = "plastic table frame"},/obj/item/weapon/reagent_containers/glass/bucket,/obj/item/weapon/reagent_containers/glass/bucket,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/bar)
@@ -704,7 +704,7 @@
"nB" = (/obj/machinery/flasher{id = "flash"; name = "Thunderdome Flash"},/turf/unsimulated/floor{icon_state = "dark"},/area/tdome)
"nC" = (/obj/machinery/seed_extractor,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/bar)
"nD" = (/obj/effect/floor_decal/corner/white/diagonal,/obj/structure/table/marble,/obj/machinery/microwave{pixel_x = -3; pixel_y = 6},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/bar)
-"nE" = (/obj/effect/floor_decal/corner/white/diagonal,/obj/machinery/cooker/candy,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/bar)
+"nE" = (/obj/effect/floor_decal/corner/white/diagonal,/obj/machinery/appliance/cooker/candy,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/bar)
"nF" = (/obj/machinery/door/blast/regular{id = "CentComPort"; name = "Security Doors"},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/main_hall)
"nG" = (/obj/machinery/door/airlock/centcom{name = "General Access"; opacity = 1; req_access = list(101)},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/main_hall)
"nH" = (/obj/structure/table/reinforced,/obj/structure/window/reinforced{dir = 8},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/command)
@@ -730,7 +730,7 @@
"ob" = (/obj/structure/table/marble,/obj/item/weapon/storage/box/donkpockets{pixel_x = 3; pixel_y = 3},/obj/item/weapon/material/kitchen/rollingpin,/obj/effect/floor_decal/corner/white/diagonal,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/bar)
"oc" = (/obj/effect/floor_decal/corner/white/diagonal,/obj/structure/table/marble,/obj/machinery/chemical_dispenser/bar_soft/full,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/bar)
"od" = (/obj/effect/floor_decal/corner/white/diagonal,/obj/structure/table/marble,/obj/item/weapon/reagent_containers/food/condiment/enzyme,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/bar)
-"oe" = (/obj/effect/floor_decal/corner/white/diagonal,/obj/machinery/cooker/cereal,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/bar)
+"oe" = (/obj/effect/floor_decal/corner/white/diagonal,/obj/machinery/appliance/cooker/cereal,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/bar)
"of" = (/obj/structure/table/reinforced,/obj/item/weapon/card/id/gold/captain/spare,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/command)
"og" = (/obj/structure/table/reinforced,/obj/item/device/pda/captain,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/command)
"oh" = (/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "admin_shuttle_bay_door"; locked = 1},/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/centcom/command)
@@ -2319,7 +2319,7 @@
"SE" = (/obj/effect/floor_decal/sign/small_g,/turf/simulated/floor/holofloor/wood,/area/holodeck/source_chess)
"SF" = (/obj/effect/floor_decal/sign/small_f,/turf/simulated/floor/holofloor/wood,/area/holodeck/source_chess)
"SG" = (/obj/effect/floor_decal/sign/small_h,/turf/simulated/floor/holofloor/wood,/area/holodeck/source_chess)
-
+
(1,1,1) = {"
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
diff --git a/maps/submaps/surface_submaps/plains/Diner.dmm b/maps/submaps/surface_submaps/plains/Diner.dmm
index d8c6d2d7e47..6fec261e57b 100644
--- a/maps/submaps/surface_submaps/plains/Diner.dmm
+++ b/maps/submaps/surface_submaps/plains/Diner.dmm
@@ -1,1132 +1,1132 @@
-//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
-"aa" = (
-/turf/template_noop,
-/area/template_noop)
-"ab" = (
-/turf/template_noop,
-/area/submap/Diner)
-"ac" = (
-/turf/simulated/floor/outdoors/dirt,
-/area/submap/Diner)
-"ad" = (
-/turf/simulated/wall,
-/area/submap/Diner)
-"ae" = (
-/obj/structure/window/reinforced/full,
-/turf/simulated/floor/tiled/white,
-/area/submap/Diner)
-"af" = (
-/obj/effect/floor_decal/corner/red/diagonal,
-/turf/simulated/floor/tiled/white,
-/area/submap/Diner)
-"ag" = (
-/obj/structure/table/standard,
-/obj/machinery/microwave,
-/turf/simulated/floor/tiled/white,
-/area/submap/Diner)
-"ah" = (
-/obj/structure/table/standard,
-/turf/simulated/floor/tiled/white,
-/area/submap/Diner)
-"ai" = (
-/obj/structure/table/standard,
-/obj/item/weapon/reagent_containers/food/condiment/enzyme,
-/obj/item/weapon/reagent_containers/glass/beaker,
-/turf/simulated/floor/tiled/white,
-/area/submap/Diner)
-"aj" = (
-/obj/structure/table/standard,
-/obj/machinery/light{
- dir = 1
- },
-/obj/item/weapon/material/knife/butch,
-/turf/simulated/floor/tiled/white,
-/area/submap/Diner)
-"ak" = (
-/obj/machinery/vending/cola,
-/turf/simulated/floor/tiled/white,
-/area/submap/Diner)
-"al" = (
-/obj/machinery/vending/dinnerware,
-/turf/simulated/floor/tiled/white,
-/area/submap/Diner)
-"am" = (
-/obj/structure/sink/kitchen,
-/turf/simulated/wall,
-/area/submap/Diner)
-"an" = (
-/obj/structure/flora/tree/sif,
-/turf/template_noop,
-/area/submap/Diner)
-"ao" = (
-/obj/structure/bed/chair/wood{
- dir = 1
- },
-/obj/effect/floor_decal/corner/red/diagonal,
-/turf/simulated/floor/tiled/white,
-/area/submap/Diner)
-"ap" = (
-/turf/simulated/floor/tiled/white,
-/area/submap/Diner)
-"aq" = (
-/obj/effect/floor_decal/corner/red/diagonal,
-/obj/machinery/light{
- dir = 1
- },
-/turf/simulated/floor/tiled/white,
-/area/submap/Diner)
-"ar" = (
-/obj/effect/floor_decal/corner/red/diagonal,
-/obj/structure/table/standard,
-/obj/item/weapon/reagent_containers/food/condiment/small/saltshaker,
-/obj/item/weapon/material/kitchen/utensil/fork,
-/turf/simulated/floor/tiled/white,
-/area/submap/Diner)
-"as" = (
-/obj/effect/floor_decal/corner/red/diagonal,
-/obj/structure/table/standard,
-/obj/item/weapon/reagent_containers/food/condiment/small/peppermill,
-/obj/machinery/light{
- icon_state = "tube1";
- dir = 4
- },
-/turf/simulated/floor/tiled/white,
-/area/submap/Diner)
-"at" = (
-/obj/machinery/light{
- dir = 8;
- icon_state = "tube1";
- pixel_y = 0
- },
-/turf/simulated/floor/tiled/white,
-/area/submap/Diner)
-"au" = (
-/obj/structure/table/standard,
-/obj/item/weapon/book/manual/chef_recipes,
-/turf/simulated/floor/tiled/white,
-/area/submap/Diner)
-"av" = (
-/obj/structure/table/standard,
-/obj/item/weapon/material/kitchen/rollingpin,
-/turf/simulated/floor/tiled/white,
-/area/submap/Diner)
-"aw" = (
-/obj/machinery/cooker/cereal,
-/obj/machinery/light{
- icon_state = "tube1";
- dir = 4
- },
-/turf/simulated/floor/tiled/white,
-/area/submap/Diner)
-"ax" = (
-/obj/structure/bed/chair/wood,
-/obj/effect/floor_decal/corner/red/diagonal,
-/turf/simulated/floor/tiled/white,
-/area/submap/Diner)
-"ay" = (
-/obj/structure/closet/secure_closet/freezer/fridge,
-/obj/item/weapon/storage/fancy/egg_box,
-/obj/item/weapon/storage/fancy/egg_box,
-/obj/item/weapon/reagent_containers/food/drinks/bottle/milk,
-/obj/item/weapon/reagent_containers/food/drinks/bottle/milk,
-/obj/item/weapon/reagent_containers/food/drinks/bottle/milk,
-/obj/item/weapon/reagent_containers/food/drinks/bottle/cream,
-/obj/item/weapon/reagent_containers/food/drinks/bottle/cream,
-/obj/item/weapon/reagent_containers/food/drinks/bottle/cream,
-/obj/item/weapon/reagent_containers/food/drinks/bottle/cream,
-/obj/item/weapon/reagent_containers/food/condiment/sugar,
-/turf/simulated/floor/tiled/white,
-/area/submap/Diner)
-"az" = (
-/obj/structure/simple_door/wood,
-/turf/simulated/floor/tiled/white,
-/area/submap/Diner)
-"aA" = (
-/obj/structure/simple_door/wood,
-/turf/simulated/floor/tiled,
-/area/submap/Diner)
-"aB" = (
-/obj/structure/simple_door/wood,
-/turf/simulated/floor/tiled/freezer,
-/area/submap/Diner)
-"aC" = (
-/obj/structure/table/standard,
-/obj/item/weapon/reagent_containers/food/condiment/small/saltshaker,
-/obj/effect/floor_decal/corner/red/diagonal,
-/obj/item/weapon/material/kitchen/utensil/fork,
-/turf/simulated/floor/tiled/white,
-/area/submap/Diner)
-"aD" = (
-/obj/structure/table/standard,
-/obj/item/weapon/reagent_containers/food/condiment/small/peppermill,
-/obj/effect/floor_decal/corner/red/diagonal,
-/turf/simulated/floor/tiled/white,
-/area/submap/Diner)
-"aE" = (
-/obj/effect/floor_decal/corner/red/diagonal,
-/obj/item/weapon/stool/padded,
-/turf/simulated/floor/tiled/white,
-/area/submap/Diner)
-"aF" = (
-/obj/structure/table/standard,
-/obj/effect/floor_decal/corner/red/diagonal,
-/turf/simulated/floor/tiled/white,
-/area/submap/Diner)
-"aG" = (
-/turf/simulated/floor/tiled,
-/area/submap/Diner)
-"aH" = (
-/turf/simulated/floor/tiled/freezer,
-/area/submap/Diner)
-"aI" = (
-/obj/structure/closet/crate/freezer,
-/obj/item/weapon/reagent_containers/food/snacks/meat,
-/obj/item/weapon/reagent_containers/food/snacks/meat,
-/obj/item/weapon/reagent_containers/food/snacks/meat,
-/obj/item/weapon/reagent_containers/food/snacks/meat,
-/obj/item/weapon/reagent_containers/food/snacks/meat,
-/obj/item/weapon/reagent_containers/food/snacks/meat,
-/obj/item/weapon/reagent_containers/food/snacks/meat,
-/turf/simulated/floor/tiled/freezer,
-/area/submap/Diner)
-"aJ" = (
-/obj/structure/table/standard,
-/obj/effect/floor_decal/corner/red/diagonal,
-/obj/item/weapon/reagent_containers/food/condiment/small/saltshaker,
-/turf/simulated/floor/tiled/white,
-/area/submap/Diner)
-"aK" = (
-/obj/effect/floor_decal/corner/red/diagonal,
-/obj/machinery/light{
- icon_state = "tube1";
- dir = 4
- },
-/turf/simulated/floor/tiled/white,
-/area/submap/Diner)
-"aL" = (
-/obj/machinery/light/small{
- brightness_color = "#DA0205";
- brightness_power = 1;
- brightness_range = 5;
- dir = 8
- },
-/turf/simulated/floor/tiled,
-/area/submap/Diner)
-"aM" = (
-/obj/machinery/light/small{
- brightness_color = "#DA0205";
- brightness_power = 1;
- brightness_range = 5;
- dir = 8
- },
-/turf/simulated/floor/tiled/freezer,
-/area/submap/Diner)
-"aN" = (
-/obj/structure/closet/crate/freezer,
-/obj/machinery/light/small{
- dir = 4
- },
-/obj/item/weapon/reagent_containers/food/snacks/meat,
-/obj/item/weapon/reagent_containers/food/snacks/meat,
-/obj/item/weapon/reagent_containers/food/snacks/meat,
-/obj/item/weapon/reagent_containers/food/snacks/meat,
-/obj/item/weapon/reagent_containers/food/snacks/meat,
-/obj/item/weapon/reagent_containers/food/snacks/meat,
-/obj/item/weapon/reagent_containers/food/snacks/meat,
-/obj/item/weapon/reagent_containers/food/snacks/meat,
-/turf/simulated/floor/tiled/freezer,
-/area/submap/Diner)
-"aO" = (
-/obj/structure/table/standard,
-/obj/effect/floor_decal/corner/red/diagonal,
-/obj/item/weapon/reagent_containers/food/condiment/small/peppermill,
-/turf/simulated/floor/tiled/white,
-/area/submap/Diner)
-"aP" = (
-/obj/effect/floor_decal/corner/red/diagonal,
-/obj/structure/table/standard,
-/obj/machinery/microwave,
-/turf/simulated/floor/tiled/white,
-/area/submap/Diner)
-"aQ" = (
-/obj/structure/closet/crate/freezer,
-/obj/item/weapon/reagent_containers/food/condiment/flour,
-/obj/item/weapon/reagent_containers/food/condiment/flour,
-/obj/item/weapon/reagent_containers/food/condiment/flour,
-/obj/item/weapon/reagent_containers/food/condiment/flour,
-/obj/item/weapon/reagent_containers/food/condiment/flour,
-/obj/item/weapon/reagent_containers/food/condiment/flour,
-/obj/item/weapon/reagent_containers/food/condiment/flour,
-/turf/simulated/floor/tiled/freezer,
-/area/submap/Diner)
-"aR" = (
-/obj/effect/floor_decal/corner/red/diagonal,
-/obj/structure/coatrack,
-/turf/simulated/floor/tiled/white,
-/area/submap/Diner)
-"aS" = (
-/obj/effect/floor_decal/corner/red/diagonal,
-/obj/structure/table/standard,
-/turf/simulated/floor/tiled/white,
-/area/submap/Diner)
-"aT" = (
-/obj/structure/closet/crate/freezer,
-/turf/simulated/floor/tiled/freezer,
-/area/submap/Diner)
-"aU" = (
-/obj/machinery/gibber,
-/turf/simulated/floor/tiled/freezer,
-/area/submap/Diner)
-"aV" = (
-/obj/machinery/light/small,
-/turf/simulated/floor/tiled/white,
-/area/submap/Diner)
-"aW" = (
-/obj/machinery/cooker/fryer,
-/turf/simulated/floor/tiled/white,
-/area/submap/Diner)
-"aX" = (
-/obj/machinery/light/small{
- dir = 4
- },
-/turf/simulated/floor/outdoors/dirt,
-/area/submap/Diner)
-"aY" = (
-/obj/effect/floor_decal/corner/red/diagonal,
-/obj/machinery/light{
- dir = 8;
- icon_state = "tube1";
- pixel_y = 0
- },
-/turf/simulated/floor/tiled/white,
-/area/submap/Diner)
-"aZ" = (
-/obj/effect/floor_decal/corner/red/diagonal,
-/obj/machinery/cooker/grill,
-/turf/simulated/floor/tiled/white,
-/area/submap/Diner)
-"ba" = (
-/obj/effect/decal/cleanable/dirt,
-/turf/simulated/floor/tiled,
-/area/submap/Diner)
-"bb" = (
-/obj/machinery/light/small{
- dir = 1
- },
-/turf/simulated/floor/tiled,
-/area/submap/Diner)
-"bc" = (
-/obj/machinery/light{
- icon_state = "tube1";
- dir = 4
- },
-/turf/simulated/floor/tiled/white,
-/area/submap/Diner)
-"bd" = (
-/obj/effect/floor_decal/corner/red/diagonal,
-/obj/structure/closet/secure_closet/freezer/fridge,
-/obj/item/weapon/storage/fancy/egg_box,
-/obj/item/weapon/storage/fancy/egg_box,
-/obj/item/weapon/reagent_containers/food/drinks/bottle/orangejuice,
-/obj/item/weapon/reagent_containers/food/drinks/bottle/orangejuice,
-/obj/item/weapon/reagent_containers/food/drinks/bottle/orangejuice,
-/obj/item/weapon/reagent_containers/food/drinks/bottle/orangejuice,
-/obj/item/weapon/reagent_containers/food/drinks/bottle/orangejuice,
-/obj/item/weapon/reagent_containers/food/drinks/bottle/milk,
-/obj/item/weapon/reagent_containers/food/drinks/bottle/milk,
-/obj/item/weapon/reagent_containers/food/drinks/bottle/milk,
-/obj/item/weapon/reagent_containers/food/drinks/bottle/milk,
-/obj/item/weapon/reagent_containers/food/drinks/bottle/cream,
-/obj/item/weapon/reagent_containers/food/drinks/bottle/cream,
-/turf/simulated/floor/tiled/white,
-/area/submap/Diner)
-"be" = (
-/obj/structure/table/standard,
-/obj/machinery/chemical_dispenser/bar_coffee,
-/turf/simulated/floor/tiled/white,
-/area/submap/Diner)
-"bf" = (
-/obj/item/frame/apc,
-/turf/simulated/floor/lino,
-/area/submap/Diner)
-"bg" = (
-/obj/structure/table/woodentable,
-/obj/item/device/flashlight/lamp,
-/turf/simulated/floor/lino,
-/area/submap/Diner)
-"bh" = (
-/obj/structure/bed/chair/office/light,
-/turf/simulated/floor/lino,
-/area/submap/Diner)
-"bi" = (
-/turf/simulated/floor/lino,
-/area/submap/Diner)
-"bk" = (
-/obj/machinery/light/small{
- dir = 8
- },
-/turf/simulated/floor/lino,
-/area/submap/Diner)
-"bl" = (
-/obj/structure/table/woodentable,
-/obj/item/weapon/cell/high,
-/turf/simulated/floor/lino,
-/area/submap/Diner)
-"bm" = (
-/obj/structure/table/woodentable,
-/turf/simulated/floor/lino,
-/area/submap/Diner)
-"bn" = (
-/obj/machinery/light/small{
- dir = 4
- },
-/turf/simulated/floor/lino,
-/area/submap/Diner)
-"bo" = (
-/obj/structure/simple_door/wood,
-/turf/simulated/floor/lino,
-/area/submap/Diner)
-"bp" = (
-/obj/effect/floor_decal/corner/red/diagonal,
-/obj/structure/windoor_assembly{
- icon_state = "l_windoor_assembly01";
- dir = 2
- },
-/turf/simulated/floor/tiled/white,
-/area/submap/Diner)
-"bq" = (
-/obj/structure/bookcase,
-/turf/simulated/floor/lino,
-/area/submap/Diner)
-"br" = (
-/obj/effect/floor_decal/corner/red/diagonal,
-/obj/machinery/space_heater,
-/obj/machinery/light,
-/turf/simulated/floor/tiled/white,
-/area/submap/Diner)
-"bs" = (
-/obj/structure/sink{
- icon_state = "sink";
- dir = 8;
- pixel_x = -12;
- pixel_y = 2
- },
-/turf/simulated/floor/tiled/hydro,
-/area/submap/Diner)
-"bt" = (
-/turf/simulated/floor/tiled/hydro,
-/area/submap/Diner)
-"bu" = (
-/obj/structure/toilet,
-/turf/simulated/floor/tiled/hydro,
-/area/submap/Diner)
-"bv" = (
-/obj/structure/bed/chair/wood{
- dir = 4
- },
-/obj/effect/floor_decal/corner/red/diagonal,
-/turf/simulated/floor/tiled/white,
-/area/submap/Diner)
-"bw" = (
-/obj/structure/bed/chair/wood{
- dir = 8
- },
-/obj/effect/floor_decal/corner/red/diagonal,
-/turf/simulated/floor/tiled/white,
-/area/submap/Diner)
-"bx" = (
-/obj/structure/simple_door/wood,
-/turf/simulated/floor/tiled/hydro,
-/area/submap/Diner)
-"by" = (
-/obj/structure/mirror{
- dir = 4;
- pixel_x = -32;
- pixel_y = 0
- },
-/turf/simulated/floor/tiled/hydro,
-/area/submap/Diner)
-"bz" = (
-/obj/machinery/light/small,
-/turf/simulated/floor/tiled/hydro,
-/area/submap/Diner)
-"bA" = (
-/obj/structure/table/standard,
-/turf/simulated/floor/tiled/hydro,
-/area/submap/Diner)
-
-(1,1,1) = {"
-aa
-aa
-aa
-aa
-aa
-aa
-aa
-aa
-aa
-aa
-aa
-aa
-aa
-aa
-aa
-aa
-aa
-aa
-aa
-aa
-aa
-aa
-aa
-aa
-aa
-"}
-(2,1,1) = {"
-aa
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-an
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-aa
-"}
-(3,1,1) = {"
-aa
-ab
-ab
-an
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-an
-ab
-aa
-"}
-(4,1,1) = {"
-aa
-ab
-ab
-ac
-ac
-ac
-ac
-ac
-ac
-ac
-ac
-ac
-ac
-ac
-ac
-ac
-ac
-ac
-ac
-ac
-ac
-ab
-ab
-ab
-aa
-"}
-(5,1,1) = {"
-aa
-ac
-ac
-ac
-ac
-ac
-ac
-ac
-ac
-ac
-ac
-ac
-ac
-ac
-ac
-ac
-ac
-ac
-ac
-ac
-ac
-ac
-ab
-ab
-aa
-"}
-(6,1,1) = {"
-aa
-ab
-ac
-ac
-ac
-ac
-ac
-ac
-ac
-ac
-ac
-ac
-ac
-ac
-ac
-ac
-ac
-ac
-ac
-ac
-ac
-ab
-ab
-ab
-aa
-"}
-(7,1,1) = {"
-aa
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ac
-ac
-aX
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-aa
-"}
-(8,1,1) = {"
-aa
-ab
-ab
-ab
-ad
-ad
-ae
-ae
-ae
-ad
-ad
-az
-ad
-ae
-ae
-ae
-ad
-ae
-ae
-ae
-ad
-ab
-ab
-ab
-aa
-"}
-(9,1,1) = {"
-aa
-ab
-ab
-ad
-ad
-af
-ax
-aC
-ao
-af
-ad
-aV
-ad
-ax
-aC
-ao
-ax
-aC
-ao
-af
-ad
-ad
-ab
-ab
-aa
-"}
-(10,1,1) = {"
-aa
-ab
-ad
-ad
-aq
-af
-ax
-aD
-ao
-af
-ad
-az
-ad
-ax
-aD
-ao
-ax
-aD
-ao
-af
-br
-ad
-ad
-ab
-aa
-"}
-(11,1,1) = {"
-aa
-ad
-ad
-af
-af
-af
-af
-af
-af
-af
-aR
-af
-aY
-af
-af
-af
-af
-af
-af
-af
-af
-af
-ad
-ad
-aa
-"}
-(12,1,1) = {"
-aa
-ae
-af
-ax
-ar
-ao
-af
-af
-af
-af
-af
-af
-af
-af
-af
-af
-af
-af
-af
-af
-af
-af
-af
-ad
-aa
-"}
-(13,1,1) = {"
-aa
-ae
-af
-ax
-as
-ao
-af
-aE
-aE
-aE
-aE
-aE
-aE
-aE
-aE
-aE
-aE
-aE
-aE
-af
-af
-bv
-bv
-ae
-aa
-"}
-(14,1,1) = {"
-aa
-ad
-ad
-ad
-ad
-ad
-ad
-aF
-aJ
-aO
-aF
-aF
-aF
-aF
-aF
-aF
-aO
-aJ
-aF
-af
-af
-aD
-aC
-ae
-aa
-"}
-(15,1,1) = {"
-aa
-ad
-ag
-ap
-at
-ap
-az
-af
-af
-af
-af
-af
-af
-af
-af
-af
-af
-af
-ah
-af
-af
-bw
-bw
-ae
-aa
-"}
-(16,1,1) = {"
-aa
-ad
-ah
-ap
-ap
-ap
-az
-af
-aK
-aP
-aS
-aW
-aZ
-bc
-bd
-be
-ah
-aK
-bp
-af
-af
-af
-af
-ad
-aa
-"}
-(17,1,1) = {"
-aa
-ad
-ai
-ap
-au
-ap
-ad
-ad
-ad
-ad
-ad
-ad
-ad
-ad
-ad
-ad
-ad
-ad
-ad
-ad
-ad
-bx
-ad
-ad
-aa
-"}
-(18,1,1) = {"
-aa
-ad
-aj
-ap
-ah
-ap
-aA
-aG
-aL
-aG
-aG
-aG
-aG
-ba
-ba
-aG
-aG
-aL
-aG
-ad
-bs
-bt
-by
-ad
-aa
-"}
-(19,1,1) = {"
-aa
-ad
-ak
-ap
-av
-ap
-ad
-ad
-ad
-ad
-ad
-ad
-ba
-ba
-ad
-ad
-ad
-bo
-ad
-ad
-bt
-bt
-bz
-ad
-aa
-"}
-(20,1,1) = {"
-aa
-ad
-al
-ap
-ap
-ap
-ad
-aH
-aM
-aQ
-aT
-ad
-bb
-ba
-ad
-bf
-bk
-bi
-bi
-ad
-bu
-bt
-bA
-ad
-aa
-"}
-(21,1,1) = {"
-aa
-ad
-am
-ap
-ap
-ap
-aB
-aH
-aH
-aH
-aH
-ad
-aG
-ba
-ad
-bg
-bl
-bi
-bi
-ad
-ad
-ad
-ad
-ad
-aa
-"}
-(22,1,1) = {"
-aa
-ab
-ad
-ad
-aw
-ap
-ad
-aH
-aH
-aH
-aH
-ad
-aA
-aA
-ad
-bh
-bm
-bi
-bq
-ad
-ad
-ad
-ad
-ab
-aa
-"}
-(23,1,1) = {"
-aa
-ab
-ab
-ad
-ad
-ay
-ad
-aI
-aN
-aH
-aU
-ad
-bb
-aG
-ad
-bi
-bn
-bi
-bq
-ad
-ad
-ad
-ab
-ab
-aa
-"}
-(24,1,1) = {"
-aa
-ab
-ab
-ab
-ad
-ad
-ad
-ad
-ad
-ad
-ad
-ad
-aA
-aA
-ad
-ad
-ad
-ad
-ad
-ad
-ad
-ab
-ab
-ab
-aa
-"}
-(25,1,1) = {"
-aa
-aa
-aa
-aa
-aa
-aa
-aa
-aa
-aa
-aa
-aa
-aa
-aa
-aa
-aa
-aa
-aa
-aa
-aa
-aa
-aa
-aa
-aa
-aa
-aa
-"}
+//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
+"aa" = (
+/turf/template_noop,
+/area/template_noop)
+"ab" = (
+/turf/template_noop,
+/area/submap/Diner)
+"ac" = (
+/turf/simulated/floor/outdoors/dirt,
+/area/submap/Diner)
+"ad" = (
+/turf/simulated/wall,
+/area/submap/Diner)
+"ae" = (
+/obj/structure/window/reinforced/full,
+/turf/simulated/floor/tiled/white,
+/area/submap/Diner)
+"af" = (
+/obj/effect/floor_decal/corner/red/diagonal,
+/turf/simulated/floor/tiled/white,
+/area/submap/Diner)
+"ag" = (
+/obj/structure/table/standard,
+/obj/machinery/microwave,
+/turf/simulated/floor/tiled/white,
+/area/submap/Diner)
+"ah" = (
+/obj/structure/table/standard,
+/turf/simulated/floor/tiled/white,
+/area/submap/Diner)
+"ai" = (
+/obj/structure/table/standard,
+/obj/item/weapon/reagent_containers/food/condiment/enzyme,
+/obj/item/weapon/reagent_containers/glass/beaker,
+/turf/simulated/floor/tiled/white,
+/area/submap/Diner)
+"aj" = (
+/obj/structure/table/standard,
+/obj/machinery/light{
+ dir = 1
+ },
+/obj/item/weapon/material/knife/butch,
+/turf/simulated/floor/tiled/white,
+/area/submap/Diner)
+"ak" = (
+/obj/machinery/vending/cola,
+/turf/simulated/floor/tiled/white,
+/area/submap/Diner)
+"al" = (
+/obj/machinery/vending/dinnerware,
+/turf/simulated/floor/tiled/white,
+/area/submap/Diner)
+"am" = (
+/obj/structure/sink/kitchen,
+/turf/simulated/wall,
+/area/submap/Diner)
+"an" = (
+/obj/structure/flora/tree/sif,
+/turf/template_noop,
+/area/submap/Diner)
+"ao" = (
+/obj/structure/bed/chair/wood{
+ dir = 1
+ },
+/obj/effect/floor_decal/corner/red/diagonal,
+/turf/simulated/floor/tiled/white,
+/area/submap/Diner)
+"ap" = (
+/turf/simulated/floor/tiled/white,
+/area/submap/Diner)
+"aq" = (
+/obj/effect/floor_decal/corner/red/diagonal,
+/obj/machinery/light{
+ dir = 1
+ },
+/turf/simulated/floor/tiled/white,
+/area/submap/Diner)
+"ar" = (
+/obj/effect/floor_decal/corner/red/diagonal,
+/obj/structure/table/standard,
+/obj/item/weapon/reagent_containers/food/condiment/small/saltshaker,
+/obj/item/weapon/material/kitchen/utensil/fork,
+/turf/simulated/floor/tiled/white,
+/area/submap/Diner)
+"as" = (
+/obj/effect/floor_decal/corner/red/diagonal,
+/obj/structure/table/standard,
+/obj/item/weapon/reagent_containers/food/condiment/small/peppermill,
+/obj/machinery/light{
+ icon_state = "tube1";
+ dir = 4
+ },
+/turf/simulated/floor/tiled/white,
+/area/submap/Diner)
+"at" = (
+/obj/machinery/light{
+ dir = 8;
+ icon_state = "tube1";
+ pixel_y = 0
+ },
+/turf/simulated/floor/tiled/white,
+/area/submap/Diner)
+"au" = (
+/obj/structure/table/standard,
+/obj/item/weapon/book/manual/chef_recipes,
+/turf/simulated/floor/tiled/white,
+/area/submap/Diner)
+"av" = (
+/obj/structure/table/standard,
+/obj/item/weapon/material/kitchen/rollingpin,
+/turf/simulated/floor/tiled/white,
+/area/submap/Diner)
+"aw" = (
+/obj/machinery/appliance/cooker/cereal,
+/obj/machinery/light{
+ icon_state = "tube1";
+ dir = 4
+ },
+/turf/simulated/floor/tiled/white,
+/area/submap/Diner)
+"ax" = (
+/obj/structure/bed/chair/wood,
+/obj/effect/floor_decal/corner/red/diagonal,
+/turf/simulated/floor/tiled/white,
+/area/submap/Diner)
+"ay" = (
+/obj/structure/closet/secure_closet/freezer/fridge,
+/obj/item/weapon/storage/fancy/egg_box,
+/obj/item/weapon/storage/fancy/egg_box,
+/obj/item/weapon/reagent_containers/food/drinks/bottle/milk,
+/obj/item/weapon/reagent_containers/food/drinks/bottle/milk,
+/obj/item/weapon/reagent_containers/food/drinks/bottle/milk,
+/obj/item/weapon/reagent_containers/food/drinks/bottle/cream,
+/obj/item/weapon/reagent_containers/food/drinks/bottle/cream,
+/obj/item/weapon/reagent_containers/food/drinks/bottle/cream,
+/obj/item/weapon/reagent_containers/food/drinks/bottle/cream,
+/obj/item/weapon/reagent_containers/food/condiment/sugar,
+/turf/simulated/floor/tiled/white,
+/area/submap/Diner)
+"az" = (
+/obj/structure/simple_door/wood,
+/turf/simulated/floor/tiled/white,
+/area/submap/Diner)
+"aA" = (
+/obj/structure/simple_door/wood,
+/turf/simulated/floor/tiled,
+/area/submap/Diner)
+"aB" = (
+/obj/structure/simple_door/wood,
+/turf/simulated/floor/tiled/freezer,
+/area/submap/Diner)
+"aC" = (
+/obj/structure/table/standard,
+/obj/item/weapon/reagent_containers/food/condiment/small/saltshaker,
+/obj/effect/floor_decal/corner/red/diagonal,
+/obj/item/weapon/material/kitchen/utensil/fork,
+/turf/simulated/floor/tiled/white,
+/area/submap/Diner)
+"aD" = (
+/obj/structure/table/standard,
+/obj/item/weapon/reagent_containers/food/condiment/small/peppermill,
+/obj/effect/floor_decal/corner/red/diagonal,
+/turf/simulated/floor/tiled/white,
+/area/submap/Diner)
+"aE" = (
+/obj/effect/floor_decal/corner/red/diagonal,
+/obj/item/weapon/stool/padded,
+/turf/simulated/floor/tiled/white,
+/area/submap/Diner)
+"aF" = (
+/obj/structure/table/standard,
+/obj/effect/floor_decal/corner/red/diagonal,
+/turf/simulated/floor/tiled/white,
+/area/submap/Diner)
+"aG" = (
+/turf/simulated/floor/tiled,
+/area/submap/Diner)
+"aH" = (
+/turf/simulated/floor/tiled/freezer,
+/area/submap/Diner)
+"aI" = (
+/obj/structure/closet/crate/freezer,
+/obj/item/weapon/reagent_containers/food/snacks/meat,
+/obj/item/weapon/reagent_containers/food/snacks/meat,
+/obj/item/weapon/reagent_containers/food/snacks/meat,
+/obj/item/weapon/reagent_containers/food/snacks/meat,
+/obj/item/weapon/reagent_containers/food/snacks/meat,
+/obj/item/weapon/reagent_containers/food/snacks/meat,
+/obj/item/weapon/reagent_containers/food/snacks/meat,
+/turf/simulated/floor/tiled/freezer,
+/area/submap/Diner)
+"aJ" = (
+/obj/structure/table/standard,
+/obj/effect/floor_decal/corner/red/diagonal,
+/obj/item/weapon/reagent_containers/food/condiment/small/saltshaker,
+/turf/simulated/floor/tiled/white,
+/area/submap/Diner)
+"aK" = (
+/obj/effect/floor_decal/corner/red/diagonal,
+/obj/machinery/light{
+ icon_state = "tube1";
+ dir = 4
+ },
+/turf/simulated/floor/tiled/white,
+/area/submap/Diner)
+"aL" = (
+/obj/machinery/light/small{
+ brightness_color = "#DA0205";
+ brightness_power = 1;
+ brightness_range = 5;
+ dir = 8
+ },
+/turf/simulated/floor/tiled,
+/area/submap/Diner)
+"aM" = (
+/obj/machinery/light/small{
+ brightness_color = "#DA0205";
+ brightness_power = 1;
+ brightness_range = 5;
+ dir = 8
+ },
+/turf/simulated/floor/tiled/freezer,
+/area/submap/Diner)
+"aN" = (
+/obj/structure/closet/crate/freezer,
+/obj/machinery/light/small{
+ dir = 4
+ },
+/obj/item/weapon/reagent_containers/food/snacks/meat,
+/obj/item/weapon/reagent_containers/food/snacks/meat,
+/obj/item/weapon/reagent_containers/food/snacks/meat,
+/obj/item/weapon/reagent_containers/food/snacks/meat,
+/obj/item/weapon/reagent_containers/food/snacks/meat,
+/obj/item/weapon/reagent_containers/food/snacks/meat,
+/obj/item/weapon/reagent_containers/food/snacks/meat,
+/obj/item/weapon/reagent_containers/food/snacks/meat,
+/turf/simulated/floor/tiled/freezer,
+/area/submap/Diner)
+"aO" = (
+/obj/structure/table/standard,
+/obj/effect/floor_decal/corner/red/diagonal,
+/obj/item/weapon/reagent_containers/food/condiment/small/peppermill,
+/turf/simulated/floor/tiled/white,
+/area/submap/Diner)
+"aP" = (
+/obj/effect/floor_decal/corner/red/diagonal,
+/obj/structure/table/standard,
+/obj/machinery/microwave,
+/turf/simulated/floor/tiled/white,
+/area/submap/Diner)
+"aQ" = (
+/obj/structure/closet/crate/freezer,
+/obj/item/weapon/reagent_containers/food/condiment/flour,
+/obj/item/weapon/reagent_containers/food/condiment/flour,
+/obj/item/weapon/reagent_containers/food/condiment/flour,
+/obj/item/weapon/reagent_containers/food/condiment/flour,
+/obj/item/weapon/reagent_containers/food/condiment/flour,
+/obj/item/weapon/reagent_containers/food/condiment/flour,
+/obj/item/weapon/reagent_containers/food/condiment/flour,
+/turf/simulated/floor/tiled/freezer,
+/area/submap/Diner)
+"aR" = (
+/obj/effect/floor_decal/corner/red/diagonal,
+/obj/structure/coatrack,
+/turf/simulated/floor/tiled/white,
+/area/submap/Diner)
+"aS" = (
+/obj/effect/floor_decal/corner/red/diagonal,
+/obj/structure/table/standard,
+/turf/simulated/floor/tiled/white,
+/area/submap/Diner)
+"aT" = (
+/obj/structure/closet/crate/freezer,
+/turf/simulated/floor/tiled/freezer,
+/area/submap/Diner)
+"aU" = (
+/obj/machinery/gibber,
+/turf/simulated/floor/tiled/freezer,
+/area/submap/Diner)
+"aV" = (
+/obj/machinery/light/small,
+/turf/simulated/floor/tiled/white,
+/area/submap/Diner)
+"aW" = (
+/obj/machinery/appliance/cooker/fryer,
+/turf/simulated/floor/tiled/white,
+/area/submap/Diner)
+"aX" = (
+/obj/machinery/light/small{
+ dir = 4
+ },
+/turf/simulated/floor/outdoors/dirt,
+/area/submap/Diner)
+"aY" = (
+/obj/effect/floor_decal/corner/red/diagonal,
+/obj/machinery/light{
+ dir = 8;
+ icon_state = "tube1";
+ pixel_y = 0
+ },
+/turf/simulated/floor/tiled/white,
+/area/submap/Diner)
+"aZ" = (
+/obj/effect/floor_decal/corner/red/diagonal,
+/obj/machinery/appliance/cooker/grill,
+/turf/simulated/floor/tiled/white,
+/area/submap/Diner)
+"ba" = (
+/obj/effect/decal/cleanable/dirt,
+/turf/simulated/floor/tiled,
+/area/submap/Diner)
+"bb" = (
+/obj/machinery/light/small{
+ dir = 1
+ },
+/turf/simulated/floor/tiled,
+/area/submap/Diner)
+"bc" = (
+/obj/machinery/light{
+ icon_state = "tube1";
+ dir = 4
+ },
+/turf/simulated/floor/tiled/white,
+/area/submap/Diner)
+"bd" = (
+/obj/effect/floor_decal/corner/red/diagonal,
+/obj/structure/closet/secure_closet/freezer/fridge,
+/obj/item/weapon/storage/fancy/egg_box,
+/obj/item/weapon/storage/fancy/egg_box,
+/obj/item/weapon/reagent_containers/food/drinks/bottle/orangejuice,
+/obj/item/weapon/reagent_containers/food/drinks/bottle/orangejuice,
+/obj/item/weapon/reagent_containers/food/drinks/bottle/orangejuice,
+/obj/item/weapon/reagent_containers/food/drinks/bottle/orangejuice,
+/obj/item/weapon/reagent_containers/food/drinks/bottle/orangejuice,
+/obj/item/weapon/reagent_containers/food/drinks/bottle/milk,
+/obj/item/weapon/reagent_containers/food/drinks/bottle/milk,
+/obj/item/weapon/reagent_containers/food/drinks/bottle/milk,
+/obj/item/weapon/reagent_containers/food/drinks/bottle/milk,
+/obj/item/weapon/reagent_containers/food/drinks/bottle/cream,
+/obj/item/weapon/reagent_containers/food/drinks/bottle/cream,
+/turf/simulated/floor/tiled/white,
+/area/submap/Diner)
+"be" = (
+/obj/structure/table/standard,
+/obj/machinery/chemical_dispenser/bar_coffee,
+/turf/simulated/floor/tiled/white,
+/area/submap/Diner)
+"bf" = (
+/obj/item/frame/apc,
+/turf/simulated/floor/lino,
+/area/submap/Diner)
+"bg" = (
+/obj/structure/table/woodentable,
+/obj/item/device/flashlight/lamp,
+/turf/simulated/floor/lino,
+/area/submap/Diner)
+"bh" = (
+/obj/structure/bed/chair/office/light,
+/turf/simulated/floor/lino,
+/area/submap/Diner)
+"bi" = (
+/turf/simulated/floor/lino,
+/area/submap/Diner)
+"bk" = (
+/obj/machinery/light/small{
+ dir = 8
+ },
+/turf/simulated/floor/lino,
+/area/submap/Diner)
+"bl" = (
+/obj/structure/table/woodentable,
+/obj/item/weapon/cell/high,
+/turf/simulated/floor/lino,
+/area/submap/Diner)
+"bm" = (
+/obj/structure/table/woodentable,
+/turf/simulated/floor/lino,
+/area/submap/Diner)
+"bn" = (
+/obj/machinery/light/small{
+ dir = 4
+ },
+/turf/simulated/floor/lino,
+/area/submap/Diner)
+"bo" = (
+/obj/structure/simple_door/wood,
+/turf/simulated/floor/lino,
+/area/submap/Diner)
+"bp" = (
+/obj/effect/floor_decal/corner/red/diagonal,
+/obj/structure/windoor_assembly{
+ icon_state = "l_windoor_assembly01";
+ dir = 2
+ },
+/turf/simulated/floor/tiled/white,
+/area/submap/Diner)
+"bq" = (
+/obj/structure/bookcase,
+/turf/simulated/floor/lino,
+/area/submap/Diner)
+"br" = (
+/obj/effect/floor_decal/corner/red/diagonal,
+/obj/machinery/space_heater,
+/obj/machinery/light,
+/turf/simulated/floor/tiled/white,
+/area/submap/Diner)
+"bs" = (
+/obj/structure/sink{
+ icon_state = "sink";
+ dir = 8;
+ pixel_x = -12;
+ pixel_y = 2
+ },
+/turf/simulated/floor/tiled/hydro,
+/area/submap/Diner)
+"bt" = (
+/turf/simulated/floor/tiled/hydro,
+/area/submap/Diner)
+"bu" = (
+/obj/structure/toilet,
+/turf/simulated/floor/tiled/hydro,
+/area/submap/Diner)
+"bv" = (
+/obj/structure/bed/chair/wood{
+ dir = 4
+ },
+/obj/effect/floor_decal/corner/red/diagonal,
+/turf/simulated/floor/tiled/white,
+/area/submap/Diner)
+"bw" = (
+/obj/structure/bed/chair/wood{
+ dir = 8
+ },
+/obj/effect/floor_decal/corner/red/diagonal,
+/turf/simulated/floor/tiled/white,
+/area/submap/Diner)
+"bx" = (
+/obj/structure/simple_door/wood,
+/turf/simulated/floor/tiled/hydro,
+/area/submap/Diner)
+"by" = (
+/obj/structure/mirror{
+ dir = 4;
+ pixel_x = -32;
+ pixel_y = 0
+ },
+/turf/simulated/floor/tiled/hydro,
+/area/submap/Diner)
+"bz" = (
+/obj/machinery/light/small,
+/turf/simulated/floor/tiled/hydro,
+/area/submap/Diner)
+"bA" = (
+/obj/structure/table/standard,
+/turf/simulated/floor/tiled/hydro,
+/area/submap/Diner)
+
+(1,1,1) = {"
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+"}
+(2,1,1) = {"
+aa
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+an
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+aa
+"}
+(3,1,1) = {"
+aa
+ab
+ab
+an
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+an
+ab
+aa
+"}
+(4,1,1) = {"
+aa
+ab
+ab
+ac
+ac
+ac
+ac
+ac
+ac
+ac
+ac
+ac
+ac
+ac
+ac
+ac
+ac
+ac
+ac
+ac
+ac
+ab
+ab
+ab
+aa
+"}
+(5,1,1) = {"
+aa
+ac
+ac
+ac
+ac
+ac
+ac
+ac
+ac
+ac
+ac
+ac
+ac
+ac
+ac
+ac
+ac
+ac
+ac
+ac
+ac
+ac
+ab
+ab
+aa
+"}
+(6,1,1) = {"
+aa
+ab
+ac
+ac
+ac
+ac
+ac
+ac
+ac
+ac
+ac
+ac
+ac
+ac
+ac
+ac
+ac
+ac
+ac
+ac
+ac
+ab
+ab
+ab
+aa
+"}
+(7,1,1) = {"
+aa
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ac
+ac
+aX
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+aa
+"}
+(8,1,1) = {"
+aa
+ab
+ab
+ab
+ad
+ad
+ae
+ae
+ae
+ad
+ad
+az
+ad
+ae
+ae
+ae
+ad
+ae
+ae
+ae
+ad
+ab
+ab
+ab
+aa
+"}
+(9,1,1) = {"
+aa
+ab
+ab
+ad
+ad
+af
+ax
+aC
+ao
+af
+ad
+aV
+ad
+ax
+aC
+ao
+ax
+aC
+ao
+af
+ad
+ad
+ab
+ab
+aa
+"}
+(10,1,1) = {"
+aa
+ab
+ad
+ad
+aq
+af
+ax
+aD
+ao
+af
+ad
+az
+ad
+ax
+aD
+ao
+ax
+aD
+ao
+af
+br
+ad
+ad
+ab
+aa
+"}
+(11,1,1) = {"
+aa
+ad
+ad
+af
+af
+af
+af
+af
+af
+af
+aR
+af
+aY
+af
+af
+af
+af
+af
+af
+af
+af
+af
+ad
+ad
+aa
+"}
+(12,1,1) = {"
+aa
+ae
+af
+ax
+ar
+ao
+af
+af
+af
+af
+af
+af
+af
+af
+af
+af
+af
+af
+af
+af
+af
+af
+af
+ad
+aa
+"}
+(13,1,1) = {"
+aa
+ae
+af
+ax
+as
+ao
+af
+aE
+aE
+aE
+aE
+aE
+aE
+aE
+aE
+aE
+aE
+aE
+aE
+af
+af
+bv
+bv
+ae
+aa
+"}
+(14,1,1) = {"
+aa
+ad
+ad
+ad
+ad
+ad
+ad
+aF
+aJ
+aO
+aF
+aF
+aF
+aF
+aF
+aF
+aO
+aJ
+aF
+af
+af
+aD
+aC
+ae
+aa
+"}
+(15,1,1) = {"
+aa
+ad
+ag
+ap
+at
+ap
+az
+af
+af
+af
+af
+af
+af
+af
+af
+af
+af
+af
+ah
+af
+af
+bw
+bw
+ae
+aa
+"}
+(16,1,1) = {"
+aa
+ad
+ah
+ap
+ap
+ap
+az
+af
+aK
+aP
+aS
+aW
+aZ
+bc
+bd
+be
+ah
+aK
+bp
+af
+af
+af
+af
+ad
+aa
+"}
+(17,1,1) = {"
+aa
+ad
+ai
+ap
+au
+ap
+ad
+ad
+ad
+ad
+ad
+ad
+ad
+ad
+ad
+ad
+ad
+ad
+ad
+ad
+ad
+bx
+ad
+ad
+aa
+"}
+(18,1,1) = {"
+aa
+ad
+aj
+ap
+ah
+ap
+aA
+aG
+aL
+aG
+aG
+aG
+aG
+ba
+ba
+aG
+aG
+aL
+aG
+ad
+bs
+bt
+by
+ad
+aa
+"}
+(19,1,1) = {"
+aa
+ad
+ak
+ap
+av
+ap
+ad
+ad
+ad
+ad
+ad
+ad
+ba
+ba
+ad
+ad
+ad
+bo
+ad
+ad
+bt
+bt
+bz
+ad
+aa
+"}
+(20,1,1) = {"
+aa
+ad
+al
+ap
+ap
+ap
+ad
+aH
+aM
+aQ
+aT
+ad
+bb
+ba
+ad
+bf
+bk
+bi
+bi
+ad
+bu
+bt
+bA
+ad
+aa
+"}
+(21,1,1) = {"
+aa
+ad
+am
+ap
+ap
+ap
+aB
+aH
+aH
+aH
+aH
+ad
+aG
+ba
+ad
+bg
+bl
+bi
+bi
+ad
+ad
+ad
+ad
+ad
+aa
+"}
+(22,1,1) = {"
+aa
+ab
+ad
+ad
+aw
+ap
+ad
+aH
+aH
+aH
+aH
+ad
+aA
+aA
+ad
+bh
+bm
+bi
+bq
+ad
+ad
+ad
+ad
+ab
+aa
+"}
+(23,1,1) = {"
+aa
+ab
+ab
+ad
+ad
+ay
+ad
+aI
+aN
+aH
+aU
+ad
+bb
+aG
+ad
+bi
+bn
+bi
+bq
+ad
+ad
+ad
+ab
+ab
+aa
+"}
+(24,1,1) = {"
+aa
+ab
+ab
+ab
+ad
+ad
+ad
+ad
+ad
+ad
+ad
+ad
+aA
+aA
+ad
+ad
+ad
+ad
+ad
+ad
+ad
+ab
+ab
+ab
+aa
+"}
+(25,1,1) = {"
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+"}
diff --git a/maps/submaps/surface_submaps/plains/Diner_vr.dmm b/maps/submaps/surface_submaps/plains/Diner_vr.dmm
index 8967f9bff74..3f0d6b0314b 100644
--- a/maps/submaps/surface_submaps/plains/Diner_vr.dmm
+++ b/maps/submaps/surface_submaps/plains/Diner_vr.dmm
@@ -1,1154 +1,1154 @@
-//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
-"aa" = (
-/turf/template_noop,
-/area/template_noop)
-"ab" = (
-/turf/template_noop,
-/area/submap/Diner)
-"ac" = (
-/turf/simulated/floor/outdoors/dirt,
-/area/submap/Diner)
-"ad" = (
-/turf/simulated/wall,
-/area/submap/Diner)
-"ae" = (
-/obj/structure/window/reinforced/full,
-/turf/simulated/floor/tiled/white,
-/area/submap/Diner)
-"af" = (
-/obj/effect/floor_decal/corner/red/diagonal,
-/turf/simulated/floor/tiled/white,
-/area/submap/Diner)
-"ag" = (
-/obj/structure/table/standard,
-/obj/machinery/microwave,
-/turf/simulated/floor/tiled/white,
-/area/submap/Diner)
-"ah" = (
-/obj/structure/table/standard,
-/turf/simulated/floor/tiled/white,
-/area/submap/Diner)
-"ai" = (
-/obj/structure/table/standard,
-/obj/item/weapon/reagent_containers/food/condiment/enzyme,
-/obj/item/weapon/reagent_containers/glass/beaker,
-/turf/simulated/floor/tiled/white,
-/area/submap/Diner)
-"aj" = (
-/obj/structure/table/standard,
-/obj/machinery/light{
- dir = 1
- },
-/obj/item/weapon/material/knife/butch,
-/turf/simulated/floor/tiled/white,
-/area/submap/Diner)
-"ak" = (
-/obj/machinery/vending/cola,
-/turf/simulated/floor/tiled/white,
-/area/submap/Diner)
-"al" = (
-/obj/machinery/vending/dinnerware,
-/turf/simulated/floor/tiled/white,
-/area/submap/Diner)
-"am" = (
-/obj/structure/sink/kitchen,
-/turf/simulated/wall,
-/area/submap/Diner)
-"an" = (
-/obj/structure/flora/tree/sif,
-/turf/template_noop,
-/area/submap/Diner)
-"ao" = (
-/obj/structure/bed/chair/wood,
-/obj/effect/floor_decal/corner/red/diagonal,
-/turf/simulated/floor/tiled/white,
-/area/submap/Diner)
-"ap" = (
-/turf/simulated/floor/tiled/white,
-/area/submap/Diner)
-"aq" = (
-/obj/effect/floor_decal/corner/red/diagonal,
-/obj/machinery/light{
- dir = 1
- },
-/turf/simulated/floor/tiled/white,
-/area/submap/Diner)
-"ar" = (
-/obj/effect/floor_decal/corner/red/diagonal,
-/obj/structure/table/standard,
-/obj/item/weapon/reagent_containers/food/condiment/small/saltshaker,
-/obj/item/weapon/material/kitchen/utensil/fork,
-/turf/simulated/floor/tiled/white,
-/area/submap/Diner)
-"as" = (
-/obj/effect/floor_decal/corner/red/diagonal,
-/obj/structure/table/standard,
-/obj/item/weapon/reagent_containers/food/condiment/small/peppermill,
-/obj/machinery/light{
- icon_state = "tube1";
- dir = 4
- },
-/turf/simulated/floor/tiled/white,
-/area/submap/Diner)
-"at" = (
-/obj/machinery/light{
- dir = 8;
- icon_state = "tube1";
- pixel_y = 0
- },
-/turf/simulated/floor/tiled/white,
-/area/submap/Diner)
-"au" = (
-/obj/structure/table/standard,
-/obj/item/weapon/book/manual/chef_recipes,
-/turf/simulated/floor/tiled/white,
-/area/submap/Diner)
-"av" = (
-/obj/structure/table/standard,
-/obj/item/weapon/material/kitchen/rollingpin,
-/turf/simulated/floor/tiled/white,
-/area/submap/Diner)
-"aw" = (
-/obj/machinery/cooker/cereal,
-/obj/machinery/light{
- icon_state = "tube1";
- dir = 4
- },
-/turf/simulated/floor/tiled/white,
-/area/submap/Diner)
-"ax" = (
-/obj/structure/bed/chair/wood{
- dir = 1
- },
-/obj/effect/floor_decal/corner/red/diagonal,
-/turf/simulated/floor/tiled/white,
-/area/submap/Diner)
-"ay" = (
-/obj/structure/closet/secure_closet/freezer/fridge,
-/obj/item/weapon/storage/fancy/egg_box,
-/obj/item/weapon/storage/fancy/egg_box,
-/obj/item/weapon/reagent_containers/food/drinks/bottle/milk,
-/obj/item/weapon/reagent_containers/food/drinks/bottle/milk,
-/obj/item/weapon/reagent_containers/food/drinks/bottle/milk,
-/obj/item/weapon/reagent_containers/food/drinks/bottle/cream,
-/obj/item/weapon/reagent_containers/food/drinks/bottle/cream,
-/obj/item/weapon/reagent_containers/food/drinks/bottle/cream,
-/obj/item/weapon/reagent_containers/food/drinks/bottle/cream,
-/obj/item/weapon/reagent_containers/food/condiment/sugar,
-/turf/simulated/floor/tiled/white,
-/area/submap/Diner)
-"az" = (
-/obj/structure/simple_door/wood,
-/turf/simulated/floor/tiled/white,
-/area/submap/Diner)
-"aA" = (
-/obj/structure/simple_door/wood,
-/turf/simulated/floor/tiled,
-/area/submap/Diner)
-"aB" = (
-/obj/structure/simple_door/wood,
-/turf/simulated/floor/tiled/freezer,
-/area/submap/Diner)
-"aC" = (
-/obj/structure/table/standard,
-/obj/item/weapon/reagent_containers/food/condiment/small/saltshaker,
-/obj/effect/floor_decal/corner/red/diagonal,
-/obj/item/weapon/material/kitchen/utensil/fork,
-/turf/simulated/floor/tiled/white,
-/area/submap/Diner)
-"aD" = (
-/obj/structure/table/standard,
-/obj/item/weapon/reagent_containers/food/condiment/small/peppermill,
-/obj/effect/floor_decal/corner/red/diagonal,
-/turf/simulated/floor/tiled/white,
-/area/submap/Diner)
-"aE" = (
-/obj/effect/floor_decal/corner/red/diagonal,
-/obj/item/weapon/stool/padded,
-/turf/simulated/floor/tiled/white,
-/area/submap/Diner)
-"aF" = (
-/obj/structure/table/standard,
-/obj/effect/floor_decal/corner/red/diagonal,
-/turf/simulated/floor/tiled/white,
-/area/submap/Diner)
-"aG" = (
-/turf/simulated/floor/tiled,
-/area/submap/Diner)
-"aH" = (
-/turf/simulated/floor/tiled/freezer,
-/area/submap/Diner)
-"aI" = (
-/obj/structure/closet/crate/freezer,
-/obj/item/weapon/reagent_containers/food/snacks/meat,
-/obj/item/weapon/reagent_containers/food/snacks/meat,
-/obj/item/weapon/reagent_containers/food/snacks/meat,
-/obj/item/weapon/reagent_containers/food/snacks/meat,
-/obj/item/weapon/reagent_containers/food/snacks/meat,
-/obj/item/weapon/reagent_containers/food/snacks/meat,
-/obj/item/weapon/reagent_containers/food/snacks/meat,
-/turf/simulated/floor/tiled/freezer,
-/area/submap/Diner)
-"aJ" = (
-/obj/structure/table/standard,
-/obj/effect/floor_decal/corner/red/diagonal,
-/obj/item/weapon/reagent_containers/food/condiment/small/saltshaker,
-/turf/simulated/floor/tiled/white,
-/area/submap/Diner)
-"aK" = (
-/obj/effect/floor_decal/corner/red/diagonal,
-/obj/machinery/light{
- icon_state = "tube1";
- dir = 4
- },
-/turf/simulated/floor/tiled/white,
-/area/submap/Diner)
-"aL" = (
-/obj/machinery/light/small{
- brightness_color = "#DA0205";
- brightness_power = 1;
- brightness_range = 5;
- dir = 8
- },
-/turf/simulated/floor/tiled,
-/area/submap/Diner)
-"aM" = (
-/obj/machinery/light/small{
- brightness_color = "#DA0205";
- brightness_power = 1;
- brightness_range = 5;
- dir = 8
- },
-/turf/simulated/floor/tiled/freezer,
-/area/submap/Diner)
-"aN" = (
-/obj/structure/closet/crate/freezer,
-/obj/machinery/light/small{
- dir = 4
- },
-/obj/item/weapon/reagent_containers/food/snacks/meat,
-/obj/item/weapon/reagent_containers/food/snacks/meat,
-/obj/item/weapon/reagent_containers/food/snacks/meat,
-/obj/item/weapon/reagent_containers/food/snacks/meat,
-/obj/item/weapon/reagent_containers/food/snacks/meat,
-/obj/item/weapon/reagent_containers/food/snacks/meat,
-/obj/item/weapon/reagent_containers/food/snacks/meat,
-/obj/item/weapon/reagent_containers/food/snacks/meat,
-/turf/simulated/floor/tiled/freezer,
-/area/submap/Diner)
-"aO" = (
-/obj/structure/table/standard,
-/obj/effect/floor_decal/corner/red/diagonal,
-/obj/item/weapon/reagent_containers/food/condiment/small/peppermill,
-/turf/simulated/floor/tiled/white,
-/area/submap/Diner)
-"aP" = (
-/obj/effect/floor_decal/corner/red/diagonal,
-/obj/structure/table/standard,
-/obj/machinery/microwave,
-/turf/simulated/floor/tiled/white,
-/area/submap/Diner)
-"aQ" = (
-/obj/structure/closet/crate/freezer,
-/obj/item/weapon/reagent_containers/food/condiment/flour,
-/obj/item/weapon/reagent_containers/food/condiment/flour,
-/obj/item/weapon/reagent_containers/food/condiment/flour,
-/obj/item/weapon/reagent_containers/food/condiment/flour,
-/obj/item/weapon/reagent_containers/food/condiment/flour,
-/obj/item/weapon/reagent_containers/food/condiment/flour,
-/obj/item/weapon/reagent_containers/food/condiment/flour,
-/turf/simulated/floor/tiled/freezer,
-/area/submap/Diner)
-"aR" = (
-/obj/machinery/gibber,
-/turf/simulated/floor/tiled/freezer,
-/area/submap/Diner)
-"aS" = (
-/obj/machinery/portable_atmospherics/powered/scrubber/huge/stationary/tram,
-/turf/simulated/floor/tiled/white,
-/area/submap/Diner)
-"aT" = (
-/obj/effect/floor_decal/corner/red/diagonal,
-/obj/structure/coatrack,
-/turf/simulated/floor/tiled/white,
-/area/submap/Diner)
-"aU" = (
-/obj/effect/floor_decal/corner/red/diagonal,
-/obj/structure/table/standard,
-/turf/simulated/floor/tiled/white,
-/area/submap/Diner)
-"aV" = (
-/obj/structure/closet/crate/freezer,
-/turf/simulated/floor/tiled/freezer,
-/area/submap/Diner)
-"aW" = (
-/obj/machinery/light/small,
-/turf/simulated/floor/tiled/white,
-/area/submap/Diner)
-"aX" = (
-/obj/machinery/cooker/fryer,
-/turf/simulated/floor/tiled/white,
-/area/submap/Diner)
-"aY" = (
-/obj/machinery/portable_atmospherics/powered/scrubber/huge/stationary/tram,
-/turf/simulated/floor/tiled,
-/area/submap/Diner)
-"aZ" = (
-/obj/machinery/light/small{
- dir = 4
- },
-/turf/simulated/floor/outdoors/dirt,
-/area/submap/Diner)
-"ba" = (
-/obj/effect/floor_decal/corner/red/diagonal,
-/obj/machinery/light{
- dir = 8;
- icon_state = "tube1";
- pixel_y = 0
- },
-/turf/simulated/floor/tiled/white,
-/area/submap/Diner)
-"bb" = (
-/obj/effect/floor_decal/corner/red/diagonal,
-/obj/machinery/cooker/grill,
-/turf/simulated/floor/tiled/white,
-/area/submap/Diner)
-"bc" = (
-/obj/effect/decal/cleanable/dirt,
-/turf/simulated/floor/tiled,
-/area/submap/Diner)
-"bd" = (
-/obj/machinery/light/small{
- dir = 1
- },
-/turf/simulated/floor/tiled,
-/area/submap/Diner)
-"be" = (
-/obj/machinery/light{
- icon_state = "tube1";
- dir = 4
- },
-/turf/simulated/floor/tiled/white,
-/area/submap/Diner)
-"bf" = (
-/obj/machinery/light/small,
-/turf/simulated/floor/tiled,
-/area/submap/Diner)
-"bg" = (
-/obj/effect/floor_decal/corner/red/diagonal,
-/obj/structure/closet/secure_closet/freezer/fridge,
-/obj/item/weapon/storage/fancy/egg_box,
-/obj/item/weapon/storage/fancy/egg_box,
-/obj/item/weapon/reagent_containers/food/drinks/bottle/orangejuice,
-/obj/item/weapon/reagent_containers/food/drinks/bottle/orangejuice,
-/obj/item/weapon/reagent_containers/food/drinks/bottle/orangejuice,
-/obj/item/weapon/reagent_containers/food/drinks/bottle/orangejuice,
-/obj/item/weapon/reagent_containers/food/drinks/bottle/orangejuice,
-/obj/item/weapon/reagent_containers/food/drinks/bottle/milk,
-/obj/item/weapon/reagent_containers/food/drinks/bottle/milk,
-/obj/item/weapon/reagent_containers/food/drinks/bottle/milk,
-/obj/item/weapon/reagent_containers/food/drinks/bottle/milk,
-/obj/item/weapon/reagent_containers/food/drinks/bottle/cream,
-/obj/item/weapon/reagent_containers/food/drinks/bottle/cream,
-/turf/simulated/floor/tiled/white,
-/area/submap/Diner)
-"bh" = (
-/obj/structure/table/standard,
-/obj/machinery/chemical_dispenser/bar_coffee,
-/turf/simulated/floor/tiled/white,
-/area/submap/Diner)
-"bi" = (
-/obj/item/frame/apc,
-/turf/simulated/floor/lino,
-/area/submap/Diner)
-"bj" = (
-/obj/structure/table/woodentable,
-/obj/item/device/flashlight/lamp,
-/turf/simulated/floor/lino,
-/area/submap/Diner)
-"bk" = (
-/obj/structure/bed/chair/office/light,
-/turf/simulated/floor/lino,
-/area/submap/Diner)
-"bl" = (
-/turf/simulated/floor/lino,
-/area/submap/Diner)
-"bm" = (
-/obj/machinery/light/small{
- dir = 8
- },
-/turf/simulated/floor/lino,
-/area/submap/Diner)
-"bn" = (
-/obj/structure/table/woodentable,
-/obj/item/weapon/cell/high,
-/turf/simulated/floor/lino,
-/area/submap/Diner)
-"bo" = (
-/obj/structure/table/woodentable,
-/turf/simulated/floor/lino,
-/area/submap/Diner)
-"bp" = (
-/obj/machinery/light/small{
- dir = 4
- },
-/turf/simulated/floor/lino,
-/area/submap/Diner)
-"bq" = (
-/obj/structure/simple_door/wood,
-/turf/simulated/floor/lino,
-/area/submap/Diner)
-"br" = (
-/obj/effect/floor_decal/corner/red/diagonal,
-/obj/structure/windoor_assembly{
- icon_state = "l_windoor_assembly01";
- dir = 2
- },
-/turf/simulated/floor/tiled/white,
-/area/submap/Diner)
-"bs" = (
-/obj/structure/bookcase,
-/turf/simulated/floor/lino,
-/area/submap/Diner)
-"bt" = (
-/obj/effect/floor_decal/corner/red/diagonal,
-/obj/machinery/space_heater,
-/obj/machinery/light,
-/turf/simulated/floor/tiled/white,
-/area/submap/Diner)
-"bu" = (
-/obj/structure/sink{
- icon_state = "sink";
- dir = 8;
- pixel_x = -12;
- pixel_y = 2
- },
-/turf/simulated/floor/tiled/hydro,
-/area/submap/Diner)
-"bv" = (
-/turf/simulated/floor/tiled/hydro,
-/area/submap/Diner)
-"bw" = (
-/obj/structure/toilet,
-/turf/simulated/floor/tiled/hydro,
-/area/submap/Diner)
-"bx" = (
-/obj/structure/bed/chair/wood{
- dir = 4
- },
-/obj/effect/floor_decal/corner/red/diagonal,
-/turf/simulated/floor/tiled/white,
-/area/submap/Diner)
-"by" = (
-/obj/structure/bed/chair/wood{
- dir = 8
- },
-/obj/effect/floor_decal/corner/red/diagonal,
-/turf/simulated/floor/tiled/white,
-/area/submap/Diner)
-"bz" = (
-/obj/structure/simple_door/wood,
-/turf/simulated/floor/tiled/hydro,
-/area/submap/Diner)
-"bA" = (
-/obj/structure/mirror{
- dir = 4;
- pixel_x = -32;
- pixel_y = 0
- },
-/turf/simulated/floor/tiled/hydro,
-/area/submap/Diner)
-"bB" = (
-/obj/machinery/light/small,
-/turf/simulated/floor/tiled/hydro,
-/area/submap/Diner)
-"bC" = (
-/obj/structure/table/standard,
-/turf/simulated/floor/tiled/hydro,
-/area/submap/Diner)
-"gw" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/portable_atmospherics/canister/air,
-/turf/simulated/floor/tiled,
-/area/submap/Diner)
-"lT" = (
-/obj/effect/floor_decal/corner/red/diagonal,
-/obj/machinery/portable_atmospherics/canister/air,
-/turf/simulated/floor/tiled/white,
-/area/submap/Diner)
-
-(1,1,1) = {"
-aa
-aa
-aa
-aa
-aa
-aa
-aa
-aa
-aa
-aa
-aa
-aa
-aa
-aa
-aa
-aa
-aa
-aa
-aa
-aa
-aa
-aa
-aa
-aa
-aa
-"}
-(2,1,1) = {"
-aa
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-an
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-aa
-"}
-(3,1,1) = {"
-aa
-ab
-ab
-an
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-an
-ab
-aa
-"}
-(4,1,1) = {"
-aa
-ab
-ab
-ac
-ac
-ac
-ac
-ac
-ac
-ac
-ac
-ac
-ac
-ac
-ac
-ac
-ac
-ac
-ac
-ac
-ac
-ab
-ab
-ab
-aa
-"}
-(5,1,1) = {"
-aa
-ac
-ac
-ac
-ac
-ac
-ac
-ac
-ac
-ac
-ac
-ac
-ac
-ac
-ac
-ac
-ac
-ac
-ac
-ac
-ac
-ac
-ab
-ab
-aa
-"}
-(6,1,1) = {"
-aa
-ab
-ac
-ac
-ac
-ac
-ac
-ac
-ac
-ac
-ac
-ac
-aZ
-ac
-ac
-ac
-ac
-ac
-ac
-ac
-ac
-ab
-ab
-ab
-aa
-"}
-(7,1,1) = {"
-aa
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ad
-ad
-az
-ad
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-aa
-"}
-(8,1,1) = {"
-aa
-ab
-ab
-ab
-ad
-ad
-ae
-ae
-ae
-ad
-aS
-ap
-ad
-ae
-ae
-ae
-ad
-ae
-ae
-ae
-ad
-ab
-ab
-ab
-aa
-"}
-(9,1,1) = {"
-aa
-ab
-ab
-ad
-ad
-af
-ao
-aC
-ax
-ad
-aS
-aW
-ad
-ao
-aC
-ax
-ao
-aC
-ax
-af
-ad
-ad
-ab
-ab
-aa
-"}
-(10,1,1) = {"
-aa
-ab
-ad
-ad
-aq
-af
-ao
-aD
-ax
-ad
-ad
-az
-ad
-ao
-aD
-ax
-ao
-aD
-ax
-af
-bt
-ad
-ad
-ab
-aa
-"}
-(11,1,1) = {"
-aa
-ad
-ad
-af
-af
-af
-af
-af
-af
-af
-aT
-af
-ba
-af
-af
-af
-af
-af
-af
-af
-af
-af
-ad
-ad
-aa
-"}
-(12,1,1) = {"
-aa
-ae
-af
-ao
-ar
-ax
-af
-af
-af
-af
-af
-af
-af
-af
-af
-af
-af
-af
-af
-af
-af
-af
-af
-ad
-aa
-"}
-(13,1,1) = {"
-aa
-ae
-af
-ao
-as
-ax
-lT
-aE
-aE
-aE
-aE
-aE
-aE
-aE
-aE
-aE
-aE
-aE
-aE
-af
-af
-bx
-bx
-ae
-aa
-"}
-(14,1,1) = {"
-aa
-ad
-ad
-ad
-ad
-ad
-ad
-aF
-aJ
-aO
-aF
-aF
-aF
-aF
-aF
-aF
-aO
-aJ
-aF
-af
-af
-aD
-aC
-ae
-aa
-"}
-(15,1,1) = {"
-aa
-ad
-ag
-ap
-at
-ap
-az
-af
-af
-af
-af
-af
-af
-af
-af
-af
-af
-af
-ah
-af
-af
-by
-by
-ae
-aa
-"}
-(16,1,1) = {"
-aa
-ad
-ah
-ap
-ap
-ap
-az
-af
-aK
-aP
-aU
-aX
-bb
-be
-bg
-bh
-ah
-aK
-br
-af
-af
-af
-af
-ad
-aa
-"}
-(17,1,1) = {"
-aa
-ad
-ai
-ap
-au
-ap
-ad
-ad
-ad
-ad
-ad
-ad
-ad
-ad
-ad
-ad
-ad
-ad
-ad
-ad
-ad
-bz
-ad
-ad
-aa
-"}
-(18,1,1) = {"
-aa
-ad
-aj
-ap
-ah
-ap
-aA
-aG
-aL
-aG
-aG
-aG
-aG
-bc
-bc
-aG
-aG
-aL
-aG
-ad
-bu
-bv
-bA
-ad
-aa
-"}
-(19,1,1) = {"
-aa
-ad
-ak
-ap
-av
-ap
-ad
-ad
-ad
-ad
-ad
-ad
-bc
-gw
-ad
-ad
-ad
-bq
-ad
-ad
-bv
-bv
-bB
-ad
-aa
-"}
-(20,1,1) = {"
-aa
-ad
-al
-ap
-ap
-ap
-ad
-aH
-aM
-aQ
-aV
-ad
-bd
-bc
-ad
-bi
-bm
-bl
-bl
-ad
-bw
-bv
-bC
-ad
-aa
-"}
-(21,1,1) = {"
-aa
-ad
-am
-ap
-ap
-ap
-aB
-aH
-aH
-aH
-ad
-ad
-aA
-aA
-ad
-bj
-bn
-bl
-bl
-ad
-ad
-ad
-ad
-ad
-aa
-"}
-(22,1,1) = {"
-aa
-ab
-ad
-ad
-aw
-ap
-ad
-aH
-aH
-aH
-ad
-aY
-aG
-aG
-ad
-bk
-bo
-bl
-bs
-ad
-ad
-ad
-ad
-ab
-aa
-"}
-(23,1,1) = {"
-aa
-ab
-ab
-ad
-ad
-ay
-ad
-aI
-aN
-aR
-ad
-aY
-aG
-bf
-ad
-bl
-bp
-bl
-bs
-ad
-ad
-ad
-ab
-ab
-aa
-"}
-(24,1,1) = {"
-aa
-ab
-ab
-ab
-ad
-ad
-ad
-ad
-ad
-ad
-ad
-ad
-aA
-aA
-ad
-ad
-ad
-ad
-ad
-ad
-ad
-ab
-ab
-ab
-aa
-"}
-(25,1,1) = {"
-aa
-aa
-aa
-aa
-aa
-aa
-aa
-aa
-aa
-aa
-aa
-aa
-aa
-aa
-aa
-aa
-aa
-aa
-aa
-aa
-aa
-aa
-aa
-aa
-aa
-"}
+//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
+"aa" = (
+/turf/template_noop,
+/area/template_noop)
+"ab" = (
+/turf/template_noop,
+/area/submap/Diner)
+"ac" = (
+/turf/simulated/floor/outdoors/dirt,
+/area/submap/Diner)
+"ad" = (
+/turf/simulated/wall,
+/area/submap/Diner)
+"ae" = (
+/obj/structure/window/reinforced/full,
+/turf/simulated/floor/tiled/white,
+/area/submap/Diner)
+"af" = (
+/obj/effect/floor_decal/corner/red/diagonal,
+/turf/simulated/floor/tiled/white,
+/area/submap/Diner)
+"ag" = (
+/obj/structure/table/standard,
+/obj/machinery/microwave,
+/turf/simulated/floor/tiled/white,
+/area/submap/Diner)
+"ah" = (
+/obj/structure/table/standard,
+/turf/simulated/floor/tiled/white,
+/area/submap/Diner)
+"ai" = (
+/obj/structure/table/standard,
+/obj/item/weapon/reagent_containers/food/condiment/enzyme,
+/obj/item/weapon/reagent_containers/glass/beaker,
+/turf/simulated/floor/tiled/white,
+/area/submap/Diner)
+"aj" = (
+/obj/structure/table/standard,
+/obj/machinery/light{
+ dir = 1
+ },
+/obj/item/weapon/material/knife/butch,
+/turf/simulated/floor/tiled/white,
+/area/submap/Diner)
+"ak" = (
+/obj/machinery/vending/cola,
+/turf/simulated/floor/tiled/white,
+/area/submap/Diner)
+"al" = (
+/obj/machinery/vending/dinnerware,
+/turf/simulated/floor/tiled/white,
+/area/submap/Diner)
+"am" = (
+/obj/structure/sink/kitchen,
+/turf/simulated/wall,
+/area/submap/Diner)
+"an" = (
+/obj/structure/flora/tree/sif,
+/turf/template_noop,
+/area/submap/Diner)
+"ao" = (
+/obj/structure/bed/chair/wood,
+/obj/effect/floor_decal/corner/red/diagonal,
+/turf/simulated/floor/tiled/white,
+/area/submap/Diner)
+"ap" = (
+/turf/simulated/floor/tiled/white,
+/area/submap/Diner)
+"aq" = (
+/obj/effect/floor_decal/corner/red/diagonal,
+/obj/machinery/light{
+ dir = 1
+ },
+/turf/simulated/floor/tiled/white,
+/area/submap/Diner)
+"ar" = (
+/obj/effect/floor_decal/corner/red/diagonal,
+/obj/structure/table/standard,
+/obj/item/weapon/reagent_containers/food/condiment/small/saltshaker,
+/obj/item/weapon/material/kitchen/utensil/fork,
+/turf/simulated/floor/tiled/white,
+/area/submap/Diner)
+"as" = (
+/obj/effect/floor_decal/corner/red/diagonal,
+/obj/structure/table/standard,
+/obj/item/weapon/reagent_containers/food/condiment/small/peppermill,
+/obj/machinery/light{
+ icon_state = "tube1";
+ dir = 4
+ },
+/turf/simulated/floor/tiled/white,
+/area/submap/Diner)
+"at" = (
+/obj/machinery/light{
+ dir = 8;
+ icon_state = "tube1";
+ pixel_y = 0
+ },
+/turf/simulated/floor/tiled/white,
+/area/submap/Diner)
+"au" = (
+/obj/structure/table/standard,
+/obj/item/weapon/book/manual/chef_recipes,
+/turf/simulated/floor/tiled/white,
+/area/submap/Diner)
+"av" = (
+/obj/structure/table/standard,
+/obj/item/weapon/material/kitchen/rollingpin,
+/turf/simulated/floor/tiled/white,
+/area/submap/Diner)
+"aw" = (
+/obj/machinery/appliance/cooker/cereal,
+/obj/machinery/light{
+ icon_state = "tube1";
+ dir = 4
+ },
+/turf/simulated/floor/tiled/white,
+/area/submap/Diner)
+"ax" = (
+/obj/structure/bed/chair/wood{
+ dir = 1
+ },
+/obj/effect/floor_decal/corner/red/diagonal,
+/turf/simulated/floor/tiled/white,
+/area/submap/Diner)
+"ay" = (
+/obj/structure/closet/secure_closet/freezer/fridge,
+/obj/item/weapon/storage/fancy/egg_box,
+/obj/item/weapon/storage/fancy/egg_box,
+/obj/item/weapon/reagent_containers/food/drinks/bottle/milk,
+/obj/item/weapon/reagent_containers/food/drinks/bottle/milk,
+/obj/item/weapon/reagent_containers/food/drinks/bottle/milk,
+/obj/item/weapon/reagent_containers/food/drinks/bottle/cream,
+/obj/item/weapon/reagent_containers/food/drinks/bottle/cream,
+/obj/item/weapon/reagent_containers/food/drinks/bottle/cream,
+/obj/item/weapon/reagent_containers/food/drinks/bottle/cream,
+/obj/item/weapon/reagent_containers/food/condiment/sugar,
+/turf/simulated/floor/tiled/white,
+/area/submap/Diner)
+"az" = (
+/obj/structure/simple_door/wood,
+/turf/simulated/floor/tiled/white,
+/area/submap/Diner)
+"aA" = (
+/obj/structure/simple_door/wood,
+/turf/simulated/floor/tiled,
+/area/submap/Diner)
+"aB" = (
+/obj/structure/simple_door/wood,
+/turf/simulated/floor/tiled/freezer,
+/area/submap/Diner)
+"aC" = (
+/obj/structure/table/standard,
+/obj/item/weapon/reagent_containers/food/condiment/small/saltshaker,
+/obj/effect/floor_decal/corner/red/diagonal,
+/obj/item/weapon/material/kitchen/utensil/fork,
+/turf/simulated/floor/tiled/white,
+/area/submap/Diner)
+"aD" = (
+/obj/structure/table/standard,
+/obj/item/weapon/reagent_containers/food/condiment/small/peppermill,
+/obj/effect/floor_decal/corner/red/diagonal,
+/turf/simulated/floor/tiled/white,
+/area/submap/Diner)
+"aE" = (
+/obj/effect/floor_decal/corner/red/diagonal,
+/obj/item/weapon/stool/padded,
+/turf/simulated/floor/tiled/white,
+/area/submap/Diner)
+"aF" = (
+/obj/structure/table/standard,
+/obj/effect/floor_decal/corner/red/diagonal,
+/turf/simulated/floor/tiled/white,
+/area/submap/Diner)
+"aG" = (
+/turf/simulated/floor/tiled,
+/area/submap/Diner)
+"aH" = (
+/turf/simulated/floor/tiled/freezer,
+/area/submap/Diner)
+"aI" = (
+/obj/structure/closet/crate/freezer,
+/obj/item/weapon/reagent_containers/food/snacks/meat,
+/obj/item/weapon/reagent_containers/food/snacks/meat,
+/obj/item/weapon/reagent_containers/food/snacks/meat,
+/obj/item/weapon/reagent_containers/food/snacks/meat,
+/obj/item/weapon/reagent_containers/food/snacks/meat,
+/obj/item/weapon/reagent_containers/food/snacks/meat,
+/obj/item/weapon/reagent_containers/food/snacks/meat,
+/turf/simulated/floor/tiled/freezer,
+/area/submap/Diner)
+"aJ" = (
+/obj/structure/table/standard,
+/obj/effect/floor_decal/corner/red/diagonal,
+/obj/item/weapon/reagent_containers/food/condiment/small/saltshaker,
+/turf/simulated/floor/tiled/white,
+/area/submap/Diner)
+"aK" = (
+/obj/effect/floor_decal/corner/red/diagonal,
+/obj/machinery/light{
+ icon_state = "tube1";
+ dir = 4
+ },
+/turf/simulated/floor/tiled/white,
+/area/submap/Diner)
+"aL" = (
+/obj/machinery/light/small{
+ brightness_color = "#DA0205";
+ brightness_power = 1;
+ brightness_range = 5;
+ dir = 8
+ },
+/turf/simulated/floor/tiled,
+/area/submap/Diner)
+"aM" = (
+/obj/machinery/light/small{
+ brightness_color = "#DA0205";
+ brightness_power = 1;
+ brightness_range = 5;
+ dir = 8
+ },
+/turf/simulated/floor/tiled/freezer,
+/area/submap/Diner)
+"aN" = (
+/obj/structure/closet/crate/freezer,
+/obj/machinery/light/small{
+ dir = 4
+ },
+/obj/item/weapon/reagent_containers/food/snacks/meat,
+/obj/item/weapon/reagent_containers/food/snacks/meat,
+/obj/item/weapon/reagent_containers/food/snacks/meat,
+/obj/item/weapon/reagent_containers/food/snacks/meat,
+/obj/item/weapon/reagent_containers/food/snacks/meat,
+/obj/item/weapon/reagent_containers/food/snacks/meat,
+/obj/item/weapon/reagent_containers/food/snacks/meat,
+/obj/item/weapon/reagent_containers/food/snacks/meat,
+/turf/simulated/floor/tiled/freezer,
+/area/submap/Diner)
+"aO" = (
+/obj/structure/table/standard,
+/obj/effect/floor_decal/corner/red/diagonal,
+/obj/item/weapon/reagent_containers/food/condiment/small/peppermill,
+/turf/simulated/floor/tiled/white,
+/area/submap/Diner)
+"aP" = (
+/obj/effect/floor_decal/corner/red/diagonal,
+/obj/structure/table/standard,
+/obj/machinery/microwave,
+/turf/simulated/floor/tiled/white,
+/area/submap/Diner)
+"aQ" = (
+/obj/structure/closet/crate/freezer,
+/obj/item/weapon/reagent_containers/food/condiment/flour,
+/obj/item/weapon/reagent_containers/food/condiment/flour,
+/obj/item/weapon/reagent_containers/food/condiment/flour,
+/obj/item/weapon/reagent_containers/food/condiment/flour,
+/obj/item/weapon/reagent_containers/food/condiment/flour,
+/obj/item/weapon/reagent_containers/food/condiment/flour,
+/obj/item/weapon/reagent_containers/food/condiment/flour,
+/turf/simulated/floor/tiled/freezer,
+/area/submap/Diner)
+"aR" = (
+/obj/machinery/gibber,
+/turf/simulated/floor/tiled/freezer,
+/area/submap/Diner)
+"aS" = (
+/obj/machinery/portable_atmospherics/powered/scrubber/huge/stationary/tram,
+/turf/simulated/floor/tiled/white,
+/area/submap/Diner)
+"aT" = (
+/obj/effect/floor_decal/corner/red/diagonal,
+/obj/structure/coatrack,
+/turf/simulated/floor/tiled/white,
+/area/submap/Diner)
+"aU" = (
+/obj/effect/floor_decal/corner/red/diagonal,
+/obj/structure/table/standard,
+/turf/simulated/floor/tiled/white,
+/area/submap/Diner)
+"aV" = (
+/obj/structure/closet/crate/freezer,
+/turf/simulated/floor/tiled/freezer,
+/area/submap/Diner)
+"aW" = (
+/obj/machinery/light/small,
+/turf/simulated/floor/tiled/white,
+/area/submap/Diner)
+"aX" = (
+/obj/machinery/appliance/cooker/fryer,
+/turf/simulated/floor/tiled/white,
+/area/submap/Diner)
+"aY" = (
+/obj/machinery/portable_atmospherics/powered/scrubber/huge/stationary/tram,
+/turf/simulated/floor/tiled,
+/area/submap/Diner)
+"aZ" = (
+/obj/machinery/light/small{
+ dir = 4
+ },
+/turf/simulated/floor/outdoors/dirt,
+/area/submap/Diner)
+"ba" = (
+/obj/effect/floor_decal/corner/red/diagonal,
+/obj/machinery/light{
+ dir = 8;
+ icon_state = "tube1";
+ pixel_y = 0
+ },
+/turf/simulated/floor/tiled/white,
+/area/submap/Diner)
+"bb" = (
+/obj/effect/floor_decal/corner/red/diagonal,
+/obj/machinery/appliance/cooker/grill,
+/turf/simulated/floor/tiled/white,
+/area/submap/Diner)
+"bc" = (
+/obj/effect/decal/cleanable/dirt,
+/turf/simulated/floor/tiled,
+/area/submap/Diner)
+"bd" = (
+/obj/machinery/light/small{
+ dir = 1
+ },
+/turf/simulated/floor/tiled,
+/area/submap/Diner)
+"be" = (
+/obj/machinery/light{
+ icon_state = "tube1";
+ dir = 4
+ },
+/turf/simulated/floor/tiled/white,
+/area/submap/Diner)
+"bf" = (
+/obj/machinery/light/small,
+/turf/simulated/floor/tiled,
+/area/submap/Diner)
+"bg" = (
+/obj/effect/floor_decal/corner/red/diagonal,
+/obj/structure/closet/secure_closet/freezer/fridge,
+/obj/item/weapon/storage/fancy/egg_box,
+/obj/item/weapon/storage/fancy/egg_box,
+/obj/item/weapon/reagent_containers/food/drinks/bottle/orangejuice,
+/obj/item/weapon/reagent_containers/food/drinks/bottle/orangejuice,
+/obj/item/weapon/reagent_containers/food/drinks/bottle/orangejuice,
+/obj/item/weapon/reagent_containers/food/drinks/bottle/orangejuice,
+/obj/item/weapon/reagent_containers/food/drinks/bottle/orangejuice,
+/obj/item/weapon/reagent_containers/food/drinks/bottle/milk,
+/obj/item/weapon/reagent_containers/food/drinks/bottle/milk,
+/obj/item/weapon/reagent_containers/food/drinks/bottle/milk,
+/obj/item/weapon/reagent_containers/food/drinks/bottle/milk,
+/obj/item/weapon/reagent_containers/food/drinks/bottle/cream,
+/obj/item/weapon/reagent_containers/food/drinks/bottle/cream,
+/turf/simulated/floor/tiled/white,
+/area/submap/Diner)
+"bh" = (
+/obj/structure/table/standard,
+/obj/machinery/chemical_dispenser/bar_coffee,
+/turf/simulated/floor/tiled/white,
+/area/submap/Diner)
+"bi" = (
+/obj/item/frame/apc,
+/turf/simulated/floor/lino,
+/area/submap/Diner)
+"bj" = (
+/obj/structure/table/woodentable,
+/obj/item/device/flashlight/lamp,
+/turf/simulated/floor/lino,
+/area/submap/Diner)
+"bk" = (
+/obj/structure/bed/chair/office/light,
+/turf/simulated/floor/lino,
+/area/submap/Diner)
+"bl" = (
+/turf/simulated/floor/lino,
+/area/submap/Diner)
+"bm" = (
+/obj/machinery/light/small{
+ dir = 8
+ },
+/turf/simulated/floor/lino,
+/area/submap/Diner)
+"bn" = (
+/obj/structure/table/woodentable,
+/obj/item/weapon/cell/high,
+/turf/simulated/floor/lino,
+/area/submap/Diner)
+"bo" = (
+/obj/structure/table/woodentable,
+/turf/simulated/floor/lino,
+/area/submap/Diner)
+"bp" = (
+/obj/machinery/light/small{
+ dir = 4
+ },
+/turf/simulated/floor/lino,
+/area/submap/Diner)
+"bq" = (
+/obj/structure/simple_door/wood,
+/turf/simulated/floor/lino,
+/area/submap/Diner)
+"br" = (
+/obj/effect/floor_decal/corner/red/diagonal,
+/obj/structure/windoor_assembly{
+ icon_state = "l_windoor_assembly01";
+ dir = 2
+ },
+/turf/simulated/floor/tiled/white,
+/area/submap/Diner)
+"bs" = (
+/obj/structure/bookcase,
+/turf/simulated/floor/lino,
+/area/submap/Diner)
+"bt" = (
+/obj/effect/floor_decal/corner/red/diagonal,
+/obj/machinery/space_heater,
+/obj/machinery/light,
+/turf/simulated/floor/tiled/white,
+/area/submap/Diner)
+"bu" = (
+/obj/structure/sink{
+ icon_state = "sink";
+ dir = 8;
+ pixel_x = -12;
+ pixel_y = 2
+ },
+/turf/simulated/floor/tiled/hydro,
+/area/submap/Diner)
+"bv" = (
+/turf/simulated/floor/tiled/hydro,
+/area/submap/Diner)
+"bw" = (
+/obj/structure/toilet,
+/turf/simulated/floor/tiled/hydro,
+/area/submap/Diner)
+"bx" = (
+/obj/structure/bed/chair/wood{
+ dir = 4
+ },
+/obj/effect/floor_decal/corner/red/diagonal,
+/turf/simulated/floor/tiled/white,
+/area/submap/Diner)
+"by" = (
+/obj/structure/bed/chair/wood{
+ dir = 8
+ },
+/obj/effect/floor_decal/corner/red/diagonal,
+/turf/simulated/floor/tiled/white,
+/area/submap/Diner)
+"bz" = (
+/obj/structure/simple_door/wood,
+/turf/simulated/floor/tiled/hydro,
+/area/submap/Diner)
+"bA" = (
+/obj/structure/mirror{
+ dir = 4;
+ pixel_x = -32;
+ pixel_y = 0
+ },
+/turf/simulated/floor/tiled/hydro,
+/area/submap/Diner)
+"bB" = (
+/obj/machinery/light/small,
+/turf/simulated/floor/tiled/hydro,
+/area/submap/Diner)
+"bC" = (
+/obj/structure/table/standard,
+/turf/simulated/floor/tiled/hydro,
+/area/submap/Diner)
+"gw" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/portable_atmospherics/canister/air,
+/turf/simulated/floor/tiled,
+/area/submap/Diner)
+"lT" = (
+/obj/effect/floor_decal/corner/red/diagonal,
+/obj/machinery/portable_atmospherics/canister/air,
+/turf/simulated/floor/tiled/white,
+/area/submap/Diner)
+
+(1,1,1) = {"
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+"}
+(2,1,1) = {"
+aa
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+an
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+aa
+"}
+(3,1,1) = {"
+aa
+ab
+ab
+an
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+an
+ab
+aa
+"}
+(4,1,1) = {"
+aa
+ab
+ab
+ac
+ac
+ac
+ac
+ac
+ac
+ac
+ac
+ac
+ac
+ac
+ac
+ac
+ac
+ac
+ac
+ac
+ac
+ab
+ab
+ab
+aa
+"}
+(5,1,1) = {"
+aa
+ac
+ac
+ac
+ac
+ac
+ac
+ac
+ac
+ac
+ac
+ac
+ac
+ac
+ac
+ac
+ac
+ac
+ac
+ac
+ac
+ac
+ab
+ab
+aa
+"}
+(6,1,1) = {"
+aa
+ab
+ac
+ac
+ac
+ac
+ac
+ac
+ac
+ac
+ac
+ac
+aZ
+ac
+ac
+ac
+ac
+ac
+ac
+ac
+ac
+ab
+ab
+ab
+aa
+"}
+(7,1,1) = {"
+aa
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ad
+ad
+az
+ad
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+aa
+"}
+(8,1,1) = {"
+aa
+ab
+ab
+ab
+ad
+ad
+ae
+ae
+ae
+ad
+aS
+ap
+ad
+ae
+ae
+ae
+ad
+ae
+ae
+ae
+ad
+ab
+ab
+ab
+aa
+"}
+(9,1,1) = {"
+aa
+ab
+ab
+ad
+ad
+af
+ao
+aC
+ax
+ad
+aS
+aW
+ad
+ao
+aC
+ax
+ao
+aC
+ax
+af
+ad
+ad
+ab
+ab
+aa
+"}
+(10,1,1) = {"
+aa
+ab
+ad
+ad
+aq
+af
+ao
+aD
+ax
+ad
+ad
+az
+ad
+ao
+aD
+ax
+ao
+aD
+ax
+af
+bt
+ad
+ad
+ab
+aa
+"}
+(11,1,1) = {"
+aa
+ad
+ad
+af
+af
+af
+af
+af
+af
+af
+aT
+af
+ba
+af
+af
+af
+af
+af
+af
+af
+af
+af
+ad
+ad
+aa
+"}
+(12,1,1) = {"
+aa
+ae
+af
+ao
+ar
+ax
+af
+af
+af
+af
+af
+af
+af
+af
+af
+af
+af
+af
+af
+af
+af
+af
+af
+ad
+aa
+"}
+(13,1,1) = {"
+aa
+ae
+af
+ao
+as
+ax
+lT
+aE
+aE
+aE
+aE
+aE
+aE
+aE
+aE
+aE
+aE
+aE
+aE
+af
+af
+bx
+bx
+ae
+aa
+"}
+(14,1,1) = {"
+aa
+ad
+ad
+ad
+ad
+ad
+ad
+aF
+aJ
+aO
+aF
+aF
+aF
+aF
+aF
+aF
+aO
+aJ
+aF
+af
+af
+aD
+aC
+ae
+aa
+"}
+(15,1,1) = {"
+aa
+ad
+ag
+ap
+at
+ap
+az
+af
+af
+af
+af
+af
+af
+af
+af
+af
+af
+af
+ah
+af
+af
+by
+by
+ae
+aa
+"}
+(16,1,1) = {"
+aa
+ad
+ah
+ap
+ap
+ap
+az
+af
+aK
+aP
+aU
+aX
+bb
+be
+bg
+bh
+ah
+aK
+br
+af
+af
+af
+af
+ad
+aa
+"}
+(17,1,1) = {"
+aa
+ad
+ai
+ap
+au
+ap
+ad
+ad
+ad
+ad
+ad
+ad
+ad
+ad
+ad
+ad
+ad
+ad
+ad
+ad
+ad
+bz
+ad
+ad
+aa
+"}
+(18,1,1) = {"
+aa
+ad
+aj
+ap
+ah
+ap
+aA
+aG
+aL
+aG
+aG
+aG
+aG
+bc
+bc
+aG
+aG
+aL
+aG
+ad
+bu
+bv
+bA
+ad
+aa
+"}
+(19,1,1) = {"
+aa
+ad
+ak
+ap
+av
+ap
+ad
+ad
+ad
+ad
+ad
+ad
+bc
+gw
+ad
+ad
+ad
+bq
+ad
+ad
+bv
+bv
+bB
+ad
+aa
+"}
+(20,1,1) = {"
+aa
+ad
+al
+ap
+ap
+ap
+ad
+aH
+aM
+aQ
+aV
+ad
+bd
+bc
+ad
+bi
+bm
+bl
+bl
+ad
+bw
+bv
+bC
+ad
+aa
+"}
+(21,1,1) = {"
+aa
+ad
+am
+ap
+ap
+ap
+aB
+aH
+aH
+aH
+ad
+ad
+aA
+aA
+ad
+bj
+bn
+bl
+bl
+ad
+ad
+ad
+ad
+ad
+aa
+"}
+(22,1,1) = {"
+aa
+ab
+ad
+ad
+aw
+ap
+ad
+aH
+aH
+aH
+ad
+aY
+aG
+aG
+ad
+bk
+bo
+bl
+bs
+ad
+ad
+ad
+ad
+ab
+aa
+"}
+(23,1,1) = {"
+aa
+ab
+ab
+ad
+ad
+ay
+ad
+aI
+aN
+aR
+ad
+aY
+aG
+bf
+ad
+bl
+bp
+bl
+bs
+ad
+ad
+ad
+ab
+ab
+aa
+"}
+(24,1,1) = {"
+aa
+ab
+ab
+ab
+ad
+ad
+ad
+ad
+ad
+ad
+ad
+ad
+aA
+aA
+ad
+ad
+ad
+ad
+ad
+ad
+ad
+ab
+ab
+ab
+aa
+"}
+(25,1,1) = {"
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+"}
diff --git a/maps/submaps/surface_submaps/wilderness/Manor1.dmm b/maps/submaps/surface_submaps/wilderness/Manor1.dmm
index 691311bc688..311e2b7bb14 100644
--- a/maps/submaps/surface_submaps/wilderness/Manor1.dmm
+++ b/maps/submaps/surface_submaps/wilderness/Manor1.dmm
@@ -1,188 +1,188 @@
-"aa" = (/turf/template_noop,/area/submap/Manor1)
-"ab" = (/turf/simulated/wall/wood,/area/submap/Manor1)
-"ac" = (/obj/structure/window/reinforced/full,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
-"ad" = (/obj/structure/bed/chair/wood{icon_state = "wooden_chair"; dir = 4},/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
-"ae" = (/obj/structure/table/woodentable,/obj/item/weapon/reagent_containers/food/drinks/cans/waterbottle,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
-"af" = (/obj/structure/bed/chair/wood{icon_state = "wooden_chair"; dir = 8},/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
-"ag" = (/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
-"ah" = (/obj/structure/flora/pottedplant/dead,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
-"ai" = (/obj/structure/flora/pottedplant/drooping,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
-"aj" = (/obj/structure/table/woodentable,/obj/item/clothing/mask/smokable/cigarette/cigar,/obj/item/weapon/material/ashtray/glass,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
-"ak" = (/obj/structure/flora/pottedplant/dead,/obj/effect/decal/cleanable/cobweb,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
-"al" = (/obj/structure/table/woodentable,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
-"am" = (/obj/structure/table/woodentable,/obj/item/device/flashlight,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
-"an" = (/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
-"ao" = (/obj/structure/mopbucket,/obj/effect/decal/cleanable/cobweb,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
-"ap" = (/obj/structure/sink,/turf/simulated/wall/wood,/area/submap/Manor1)
-"aq" = (/turf/simulated/floor/carpet/bcarpet,/area/submap/Manor1)
-"ar" = (/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/carpet/bcarpet,/area/submap/Manor1)
-"as" = (/obj/structure/simple_door/wood,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
-"at" = (/obj/structure/table/woodentable,/obj/item/device/flashlight/lamp,/obj/effect/decal/cleanable/blood/gibs/robot,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
-"au" = (/obj/structure/bed,/obj/item/weapon/bedsheet,/obj/effect/decal/cleanable/blood/oil,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
-"av" = (/obj/structure/janitorialcart,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
-"aw" = (/obj/structure/table/woodentable,/obj/item/weapon/mop,/obj/item/weapon/reagent_containers/glass/bucket,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
-"ax" = (/obj/structure/closet/cabinet,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
-"ay" = (/obj/effect/decal/cleanable/blood/gibs/robot/limb,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
-"az" = (/obj/structure/table/woodentable,/obj/item/trash/candle,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
-"aA" = (/obj/effect/decal/cleanable/dirt,/obj/effect/spider/stickyweb,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
-"aB" = (/obj/effect/decal/cleanable/dirt,/obj/effect/spider/stickyweb,/mob/living/simple_mob/animal/giant_spider/lurker,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
-"aC" = (/obj/structure/table/woodentable,/obj/item/device/flashlight/maglight,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
-"aD" = (/obj/structure/table/woodentable,/obj/item/device/flashlight/lamp,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
-"aE" = (/obj/structure/closet/cabinet,/obj/effect/decal/cleanable/cobweb2,/obj/item/clothing/head/hood/winter,/obj/item/clothing/shoes/boots/winter,/obj/item/clothing/suit/storage/hooded/wintercoat,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
-"aF" = (/obj/structure/table/woodentable,/obj/effect/decal/cleanable/cobweb,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
-"aG" = (/obj/structure/table/woodentable,/obj/item/weapon/paper,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
-"aH" = (/obj/structure/table/woodentable,/obj/item/weapon/pen,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
-"aI" = (/obj/structure/flora/pottedplant/dead,/obj/effect/spider/stickyweb,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
-"aJ" = (/obj/effect/spider/stickyweb,/mob/living/simple_mob/animal/giant_spider/lurker,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
-"aK" = (/obj/effect/spider/stickyweb,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
-"aL" = (/obj/structure/fireplace,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
-"aM" = (/mob/living/simple_mob/animal/giant_spider/lurker,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
-"aN" = (/obj/effect/decal/cleanable/cobweb2,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
-"aO" = (/obj/structure/bed,/obj/item/weapon/bedsheet,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
-"aP" = (/obj/structure/bed/chair/wood,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
-"aQ" = (/turf/simulated/floor/carpet/purcarpet,/area/submap/Manor1)
-"aR" = (/obj/structure/table/standard,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
-"aS" = (/obj/structure/table/standard,/obj/machinery/microwave,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
-"aT" = (/obj/structure/closet/cabinet,/obj/random/projectile/shotgun,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
-"aU" = (/obj/structure/bookcase,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
-"aV" = (/obj/structure/table/woodentable,/obj/item/weapon/material/kitchen/utensil/fork,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
-"aW" = (/obj/structure/table/standard,/obj/item/weapon/reagent_containers/food/condiment/small/peppermill,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
-"aX" = (/obj/structure/table/standard,/obj/item/weapon/material/knife,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
-"aY" = (/obj/machinery/cooker/oven,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
-"aZ" = (/obj/structure/table/standard,/obj/item/weapon/reagent_containers/food/condiment/small/saltshaker,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
-"ba" = (/obj/machinery/cooker/grill,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
-"bb" = (/obj/structure/table/standard,/obj/item/weapon/tray,/obj/item/weapon/tray,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
-"bc" = (/obj/structure/table/standard,/obj/item/weapon/material/knife/butch,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
-"bd" = (/obj/structure/table/standard,/obj/item/weapon/reagent_containers/food/drinks/cans/waterbottle,/obj/item/weapon/reagent_containers/food/drinks/cans/waterbottle,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
-"be" = (/obj/random/trash,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
-"bf" = (/obj/structure/closet/cabinet,/obj/item/clothing/head/hood/winter,/obj/item/clothing/shoes/boots/winter,/obj/item/clothing/suit/storage/hooded/wintercoat,/obj/random/contraband,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
-"bg" = (/obj/structure/table/woodentable,/obj/item/weapon/paper_bin,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
-"bh" = (/obj/structure/bed/chair/wood{icon_state = "wooden_chair"; dir = 1},/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
-"bi" = (/obj/effect/decal/cleanable/cobweb,/turf/simulated/floor/holofloor/wood{icon_state = "wood_broken0"},/area/submap/Manor1)
-"bj" = (/obj/effect/decal/cleanable/cobweb,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
-"bk" = (/obj/random/plushielarge,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
-"bl" = (/turf/simulated/floor/carpet/blucarpet,/area/submap/Manor1)
-"bm" = (/obj/structure/loot_pile/surface/bones,/obj/item/clothing/accessory/sweater/blue,/turf/simulated/floor/carpet/blucarpet,/area/submap/Manor1)
-"bn" = (/obj/structure/window/reinforced/full,/turf/template_noop,/area/submap/Manor1)
-"bo" = (/obj/item/weapon/material/twohanded/baseballbat/metal,/turf/simulated/floor/carpet/blucarpet,/area/submap/Manor1)
-"bp" = (/obj/effect/decal/cleanable/blood,/turf/simulated/floor/carpet/blucarpet,/area/submap/Manor1)
-"bq" = (/obj/effect/decal/cleanable/blood/drip,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
-"br" = (/obj/structure/bed/chair/comfy/purp{icon_state = "comfychair_preview"; dir = 4},/turf/simulated/floor/holofloor/wood{icon_state = "wood_broken5"},/area/submap/Manor1)
-"bs" = (/obj/structure/table,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
-"bt" = (/obj/structure/bed/chair/wood{icon_state = "wooden_chair"; dir = 4},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
-"bu" = (/obj/structure/bed/chair/wood{icon_state = "wooden_chair"; dir = 8},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
-"bv" = (/obj/structure/table/standard,/obj/item/weapon/reagent_containers/food/condiment/small/sugar,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
-"bw" = (/obj/effect/decal/cleanable/blood/drip,/turf/simulated/floor/carpet/blucarpet,/area/submap/Manor1)
-"bx" = (/obj/structure/bed/chair/comfy/purp{icon_state = "comfychair_preview"; dir = 4},/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
-"by" = (/obj/structure/closet/cabinet,/obj/item/clothing/suit/storage/hooded/wintercoat,/obj/item/clothing/head/hood/winter,/obj/item/clothing/shoes/boots/winter,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
-"bz" = (/obj/structure/table/woodentable,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
-"bA" = (/obj/structure/table/standard,/obj/item/weapon/material/kitchen/utensil/fork,/obj/item/weapon/material/kitchen/utensil/fork,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
-"bB" = (/obj/structure/closet/secure_closet/freezer/fridge,/obj/item/weapon/reagent_containers/food/snacks/stew,/obj/item/weapon/reagent_containers/food/snacks/stew,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
-"bC" = (/obj/item/weapon/shovel,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
-"bD" = (/obj/structure/bed/chair/wood{icon_state = "wooden_chair"; dir = 1},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
-"bE" = (/obj/structure/table/standard,/obj/item/weapon/material/kitchen/utensil/spoon,/obj/item/weapon/material/kitchen/utensil/spoon,/obj/item/weapon/material/kitchen/utensil/spoon,/obj/effect/spider/stickyweb,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
-"bF" = (/obj/structure/table/standard,/obj/effect/spider/stickyweb,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
-"bG" = (/obj/structure/closet/secure_closet/freezer/fridge,/obj/item/weapon/reagent_containers/food/snacks/sausage,/obj/item/weapon/reagent_containers/food/snacks/sausage,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
-"bH" = (/obj/effect/decal/cleanable/dirt,/obj/structure/flora/pottedplant/drooping,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
-"bI" = (/obj/effect/decal/cleanable/dirt,/obj/structure/flora/pottedplant/dead,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
-"bJ" = (/obj/structure/table/standard,/obj/item/weapon/material/kitchen/rollingpin,/obj/effect/spider/stickyweb,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
-"bK" = (/obj/structure/table/standard,/obj/item/weapon/reagent_containers/glass/bottle/stoxin,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
-"bL" = (/obj/structure/table/woodentable,/obj/item/weapon/storage/fancy/candle_box,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
-"bM" = (/obj/machinery/papershredder,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
-"bN" = (/obj/structure/simple_door/wood,/turf/simulated/floor/carpet/purcarpet,/area/submap/Manor1)
-"bO" = (/obj/machinery/icecream_vat,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
-"bP" = (/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/carpet/blucarpet,/area/submap/Manor1)
-"bQ" = (/obj/effect/decal/cleanable/blood,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
-"bR" = (/obj/effect/decal/cleanable/cobweb,/obj/structure/table/woodentable,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
-"bS" = (/obj/structure/flora/pottedplant/subterranean,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
-"bT" = (/obj/item/weapon/material/minihoe,/turf/simulated/floor/carpet/blucarpet,/area/submap/Manor1)
-"bU" = (/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/carpet/purcarpet,/area/submap/Manor1)
-"bV" = (/turf/simulated/floor/holofloor/wood{icon_state = "wood_broken6"},/area/submap/Manor1)
-"bW" = (/obj/machinery/washing_machine,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
-"bX" = (/obj/structure/table/woodentable,/obj/structure/bedsheetbin,/obj/effect/decal/cleanable/cobweb2,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
-"bY" = (/obj/structure/table/rack,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
-"bZ" = (/obj/structure/closet/crate,/obj/item/stack/cable_coil/random_belt,/obj/random/cash,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
-"ca" = (/obj/structure/table/woodentable,/obj/item/weapon/melee/umbrella/random,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
-"cb" = (/obj/structure/closet/cabinet,/obj/random/gun/random,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
-"cc" = (/obj/structure/closet/cabinet,/obj/item/weapon/cell/device/weapon,/obj/item/weapon/cell/device/weapon,/obj/random/medical,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
-"cd" = (/obj/structure/table/woodentable,/obj/item/device/flashlight/lamp/green,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
-"ce" = (/obj/structure/bed/double,/obj/item/weapon/bedsheet/rddouble,/obj/structure/curtain/open/bed,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
-"cf" = (/obj/structure/table/woodentable,/obj/item/weapon/storage/wallet/random,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
-"cg" = (/obj/structure/flora/pottedplant/dead,/obj/effect/decal/cleanable/cobweb2,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
-"ch" = (/obj/structure/loot_pile/surface/bones,/obj/item/clothing/accessory/sweater,/turf/simulated/floor/carpet/blucarpet,/area/submap/Manor1)
-"ci" = (/obj/structure/closet/crate,/obj/item/weapon/flame/lighter/random,/obj/random/powercell,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
-"cj" = (/obj/structure/closet/cabinet,/obj/item/clothing/shoes/boots/winter,/obj/item/clothing/suit/storage/hooded/wintercoat,/obj/item/clothing/head/hood/winter,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
-"ck" = (/obj/effect/decal/cleanable/spiderling_remains,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
-"cl" = (/turf/simulated/floor/carpet/turcarpet,/area/submap/Manor1)
-"cm" = (/obj/effect/decal/cleanable/blood,/obj/structure/bed/chair/comfy/purp{icon_state = "comfychair_preview"; dir = 4},/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
-"cn" = (/obj/structure/closet/crate,/obj/item/weapon/storage/wallet/random,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
-"co" = (/obj/structure/coatrack,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
-"cp" = (/obj/structure/loot_pile/surface/bones,/obj/item/clothing/suit/storage/hooded/wintercoat,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
-"cq" = (/obj/structure/loot_pile/surface/bones,/obj/item/clothing/under/suit_jacket,/obj/item/clothing/shoes/black,/obj/random/projectile/random,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
-"cr" = (/obj/structure/simple_door/wood,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/carpet/purcarpet,/area/submap/Manor1)
-"cs" = (/obj/item/weapon/material/twohanded/spear,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
-"ct" = (/obj/structure/closet/cabinet{opened = 1},/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
-"cu" = (/obj/effect/decal/remains,/obj/item/weapon/material/knife/tacknife/combatknife,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
-"cv" = (/obj/structure/sink{pixel_y = 30},/turf/simulated/floor/tiled/hydro,/area/submap/Manor1)
-"cw" = (/turf/simulated/floor/tiled/hydro,/area/submap/Manor1)
-"cx" = (/obj/structure/table/standard,/obj/effect/decal/cleanable/cobweb2,/turf/simulated/floor/tiled/hydro,/area/submap/Manor1)
-"cy" = (/obj/structure/table/standard,/obj/item/weapon/towel/random,/obj/item/weapon/towel/random,/turf/simulated/floor/tiled/hydro,/area/submap/Manor1)
-"cz" = (/obj/effect/decal/cleanable/cobweb2,/obj/effect/spider/stickyweb,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
-"cA" = (/obj/item/weapon/paper/crumpled,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
-"cB" = (/turf/simulated/floor/holofloor/wood{icon_state = "wood_broken3"},/area/submap/Manor1)
-"cC" = (/obj/effect/decal/cleanable/spiderling_remains,/obj/effect/spider/stickyweb,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
-"cD" = (/obj/structure/closet/crate,/obj/item/clothing/suit/armor/vest,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
-"cE" = (/obj/structure/closet/crate,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
-"cF" = (/obj/structure/simple_door/wood,/turf/simulated/floor/tiled/hydro,/area/submap/Manor1)
-"cG" = (/obj/structure/toilet{icon_state = "toilet00"; dir = 8},/turf/simulated/floor/tiled/hydro,/area/submap/Manor1)
-"cH" = (/obj/machinery/shower{icon_state = "shower"; dir = 8},/obj/structure/curtain/open/shower,/turf/simulated/floor/tiled/hydro,/area/submap/Manor1)
-"cI" = (/obj/item/stack/material/wood,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
-"cJ" = (/obj/machinery/shower{icon_state = "shower"; dir = 8},/obj/structure/curtain/open/shower,/obj/random/soap,/turf/simulated/floor/tiled/hydro,/area/submap/Manor1)
-"cK" = (/obj/structure/table/standard,/turf/simulated/floor/tiled/hydro,/area/submap/Manor1)
-"cL" = (/obj/structure/toilet{icon_state = "toilet00"; dir = 1},/turf/simulated/floor/tiled/hydro,/area/submap/Manor1)
-"cM" = (/obj/structure/table/woodentable,/obj/item/modular_computer/laptop/preset/custom_loadout/cheap,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
-"cN" = (/turf/template_noop,/area/template_noop)
-"cO" = (/obj/structure/flora/tree/sif,/turf/template_noop,/area/submap/Manor1)
-
-(1,1,1) = {"
-cNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcN
-cNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabacacacacababacacacacabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacN
-cNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababadaeafagahaiagadajafababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacN
-cNaaaaaaaaaaaaaaaaababababababababababababagagagagagagagagagagagagababababababababababababababaaaaaaaaaaaacN
-cNaaaacOaaaaaaaaabababakagagagalamalagananagagagagananananagagagagagagagagalalalagagagaiabaoapabaaaacOaaaacN
-cNaaaaaaaaaaaaababalabagaqaqaqaqarararararararaqarararararararaqaqaqaqaqaqaqaqaqaqaqaqagasagagababaaaaaaaacN
-cNaaaaaaaaaaababatauabagaqaqaqaqaqaqaqarararararararararararararaqaqaqaqaqaqaqaqaqaqaqagabavagawababaaaaaacN
-cNaaaaaaaaaaabaxagayabagaqagagazalalaganananaAaBaAagananagagagagagagagagagalalaCagagaqagababababababaaaaaacN
-cNaaaaaaaaaaababasababagaqagabababababababababababababababababababababababababababagaqagabaDagagaEabaaaaaacN
-cNaaaaaacOaaabagagagasagaqagabaFaGagalaHabaIaJaKagagaLaLagagagagahabagaMagagagaNabagaqagabaOagagalabaaaaaacN
-cNaaaaaaaaaaabasabababagaqagabagagagagagabaKaKaPaPagaQaQagaPaPagagabaRagaRaRagaSabagaqagabababasababaaaaaacN
-cNaaaaaaaaaaabagagaTabagaqagabagaUagaUagabagadalaVafaQaQadaValafagabaRagaWaXagaYabalaqagasagagagagabaaaaaacN
-cNaaaaaaaaaaabagagaMabagaqagabagaUagaUagabagadalalafaQaQadalalafagabaRagaZaRagbaabagaqagabababasababaaaaaacN
-cNaaaaaaaaaaabaDalaOabagaqagabagaUagaUagabagadalalafaQaQadalalafagabbbagaRbcagbdabagaqagabaOagagalabaaaaaacN
-cNaaaaaaaaaaabababababagaqagabagagagaganabagadalalafaQaQadalalafagabagagagagagagabagaqagabaDbeagbfabaaaaaacN
-cNaaaaaaaaaaabaDalbgabalaqagabagaUagaUanabagadalalafaQaQadalalafagabagagagagagagabagaqagababababababaaaaaacN
-cNaaaaaaaaababagbhagabazaqagasagaUagaUanabagadaGalafaQaQadalalafagabagagagagagagabagaqagabbiagagagababaaaacN
-cNaaaaaaababbjagagbkabalaqagabagaUanaUanabagadalalafaQaQadalalafagabagagagagagagabagaqagabagblbmagagababaacN
-cNaaaaaabnagagagagaOabagaqanabanananananabanadalalafaQaQadalalafagasagagagagagagasagaqagasagbobpbqbrbsacaacN
-cNaaaaaabnagagagagalabagaranabagaUanaUagabanbtalalafaQaQadalalbuanabagagaRbvagagabagaqagabagblbwagbxbsacaacN
-cNaaaaaaababagagagbyabanaranabagaUanaUagabanbtalalafaQaQadalbzbuanabagagbAaRagbBabagaqagabagblblagbCababaacN
-cNaaaaaaaaababagagagabanaragabagaUanaUagabananbhbhagaQaQagbhbDananabagagbEbFagbGabagaqagabalblblagababaaaacN
-cNaaaaaaaaaaabagagagabagaragabagaganagagabbHananagagaQaQaganananbIabagagbFbJagbKabagaqagabaDblblalabaaaaaacN
-cNaaaaaaaaaaabagagagasagaqagabaGbLbMagaiababababababbNbNababababababbOaKaKaKagagabagaqagabalblblalabaaaaaacN
-cNaaaaaaaaaaabazalagabagaqagababababasabababababalalaQaQalalabababababababababababagaqagabalbwbPalabaaaaaacN
-cNaaaaaaaaaaabababababbQaqagagananananananananasagagaQaQagagasagagagagagagagagagagagaqagabazblbPalabaaaaaacN
-cNaaaaaaaaababbRazbSabbqaqagagagagananananananasagagaQaQagagasagagagagagagagagagagagaqagabalblbTagababaaaacN
-cNaaaaaaababagagagagabagaqagababababasabababababalagbUaQagalabababababababababababagaqagabagblblbVagababaacN
-cNaaaaaaacagagagagbqasbqaqagabbWbXabagabbYagbZabalagbUbUagcaabcbccagcdcecfagagcgabagaqagasagbpchagbxbsacaacN
-cNaacOaaacagagagbqagabagaqagabagagasagabagagciabcjckbUbUagcjabagclclclclclclclaDabagaqagabbqbwblagcmagacaacN
-cNaaaaaaababagbQbQagabahaqagabbWazabagasagagcnababcobUbUcoababagclclclclclclclalabahaqahabagbwblagcpababaacN
-cNaaaaaaaaababcqagagababasabababababagabagagagaKababcrcrababagagclclclclclclclalababasababcsblbwagababaaaacN
-cNaaaaaaaaaaabctagcuabcvcwcxabcycwasagabbYagaKaKczabbUbUabazafagclclclclclclclagagagagahabagcAcBagabaaaaaacN
-cNaaaaaaaaaaababalagabcwabababcwcwabagabbYcCaJcDcEabbUbUabalagagagagagclclclclclclclclagabcAbqagababaaaaaacN
-cNaaaaaaaaaaaaababalabcwcFcGabcwcHabasabababababababbNbNabababababahagclclclclclclclclagabagcIababaaaaaaaacN
-cNaaaaaaaaaaaaaaabababcwabababcwcHabcwcvababaaaaaaaaaaaaaaaaaaaaababalclclclclclclclclagabcIababaaaaaaaaaacN
-cNaaaaaaaaaaaaaaaaababcwcFcGabcwcJabcKcLabaaaaaaaaaaaaaaaaaaaaaaaaabcMalalagagagagagagahabababaaaaaacOaaaacN
-cNaaaaaacOaaaaaaaaaaabababababababababababaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababaaaaaaaaaaaaaacN
-cNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacN
-cNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcN
+"aa" = (/turf/template_noop,/area/submap/Manor1)
+"ab" = (/turf/simulated/wall/wood,/area/submap/Manor1)
+"ac" = (/obj/structure/window/reinforced/full,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
+"ad" = (/obj/structure/bed/chair/wood{icon_state = "wooden_chair"; dir = 4},/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
+"ae" = (/obj/structure/table/woodentable,/obj/item/weapon/reagent_containers/food/drinks/cans/waterbottle,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
+"af" = (/obj/structure/bed/chair/wood{icon_state = "wooden_chair"; dir = 8},/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
+"ag" = (/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
+"ah" = (/obj/structure/flora/pottedplant/dead,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
+"ai" = (/obj/structure/flora/pottedplant/drooping,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
+"aj" = (/obj/structure/table/woodentable,/obj/item/clothing/mask/smokable/cigarette/cigar,/obj/item/weapon/material/ashtray/glass,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
+"ak" = (/obj/structure/flora/pottedplant/dead,/obj/effect/decal/cleanable/cobweb,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
+"al" = (/obj/structure/table/woodentable,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
+"am" = (/obj/structure/table/woodentable,/obj/item/device/flashlight,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
+"an" = (/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
+"ao" = (/obj/structure/mopbucket,/obj/effect/decal/cleanable/cobweb,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
+"ap" = (/obj/structure/sink,/turf/simulated/wall/wood,/area/submap/Manor1)
+"aq" = (/turf/simulated/floor/carpet/bcarpet,/area/submap/Manor1)
+"ar" = (/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/carpet/bcarpet,/area/submap/Manor1)
+"as" = (/obj/structure/simple_door/wood,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
+"at" = (/obj/structure/table/woodentable,/obj/item/device/flashlight/lamp,/obj/effect/decal/cleanable/blood/gibs/robot,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
+"au" = (/obj/structure/bed,/obj/item/weapon/bedsheet,/obj/effect/decal/cleanable/blood/oil,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
+"av" = (/obj/structure/janitorialcart,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
+"aw" = (/obj/structure/table/woodentable,/obj/item/weapon/mop,/obj/item/weapon/reagent_containers/glass/bucket,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
+"ax" = (/obj/structure/closet/cabinet,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
+"ay" = (/obj/effect/decal/cleanable/blood/gibs/robot/limb,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
+"az" = (/obj/structure/table/woodentable,/obj/item/trash/candle,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
+"aA" = (/obj/effect/decal/cleanable/dirt,/obj/effect/spider/stickyweb,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
+"aB" = (/obj/effect/decal/cleanable/dirt,/obj/effect/spider/stickyweb,/mob/living/simple_mob/animal/giant_spider/lurker,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
+"aC" = (/obj/structure/table/woodentable,/obj/item/device/flashlight/maglight,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
+"aD" = (/obj/structure/table/woodentable,/obj/item/device/flashlight/lamp,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
+"aE" = (/obj/structure/closet/cabinet,/obj/effect/decal/cleanable/cobweb2,/obj/item/clothing/head/hood/winter,/obj/item/clothing/shoes/boots/winter,/obj/item/clothing/suit/storage/hooded/wintercoat,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
+"aF" = (/obj/structure/table/woodentable,/obj/effect/decal/cleanable/cobweb,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
+"aG" = (/obj/structure/table/woodentable,/obj/item/weapon/paper,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
+"aH" = (/obj/structure/table/woodentable,/obj/item/weapon/pen,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
+"aI" = (/obj/structure/flora/pottedplant/dead,/obj/effect/spider/stickyweb,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
+"aJ" = (/obj/effect/spider/stickyweb,/mob/living/simple_mob/animal/giant_spider/lurker,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
+"aK" = (/obj/effect/spider/stickyweb,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
+"aL" = (/obj/structure/fireplace,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
+"aM" = (/mob/living/simple_mob/animal/giant_spider/lurker,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
+"aN" = (/obj/effect/decal/cleanable/cobweb2,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
+"aO" = (/obj/structure/bed,/obj/item/weapon/bedsheet,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
+"aP" = (/obj/structure/bed/chair/wood,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
+"aQ" = (/turf/simulated/floor/carpet/purcarpet,/area/submap/Manor1)
+"aR" = (/obj/structure/table/standard,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
+"aS" = (/obj/structure/table/standard,/obj/machinery/microwave,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
+"aT" = (/obj/structure/closet/cabinet,/obj/random/projectile/shotgun,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
+"aU" = (/obj/structure/bookcase,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
+"aV" = (/obj/structure/table/woodentable,/obj/item/weapon/material/kitchen/utensil/fork,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
+"aW" = (/obj/structure/table/standard,/obj/item/weapon/reagent_containers/food/condiment/small/peppermill,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
+"aX" = (/obj/structure/table/standard,/obj/item/weapon/material/knife,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
+"aY" = (/obj/machinery/appliance/cooker/oven,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
+"aZ" = (/obj/structure/table/standard,/obj/item/weapon/reagent_containers/food/condiment/small/saltshaker,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
+"ba" = (/obj/machinery/appliance/cooker/grill,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
+"bb" = (/obj/structure/table/standard,/obj/item/weapon/tray,/obj/item/weapon/tray,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
+"bc" = (/obj/structure/table/standard,/obj/item/weapon/material/knife/butch,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
+"bd" = (/obj/structure/table/standard,/obj/item/weapon/reagent_containers/food/drinks/cans/waterbottle,/obj/item/weapon/reagent_containers/food/drinks/cans/waterbottle,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
+"be" = (/obj/random/trash,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
+"bf" = (/obj/structure/closet/cabinet,/obj/item/clothing/head/hood/winter,/obj/item/clothing/shoes/boots/winter,/obj/item/clothing/suit/storage/hooded/wintercoat,/obj/random/contraband,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
+"bg" = (/obj/structure/table/woodentable,/obj/item/weapon/paper_bin,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
+"bh" = (/obj/structure/bed/chair/wood{icon_state = "wooden_chair"; dir = 1},/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
+"bi" = (/obj/effect/decal/cleanable/cobweb,/turf/simulated/floor/holofloor/wood{icon_state = "wood_broken0"},/area/submap/Manor1)
+"bj" = (/obj/effect/decal/cleanable/cobweb,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
+"bk" = (/obj/random/plushielarge,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
+"bl" = (/turf/simulated/floor/carpet/blucarpet,/area/submap/Manor1)
+"bm" = (/obj/structure/loot_pile/surface/bones,/obj/item/clothing/accessory/sweater/blue,/turf/simulated/floor/carpet/blucarpet,/area/submap/Manor1)
+"bn" = (/obj/structure/window/reinforced/full,/turf/template_noop,/area/submap/Manor1)
+"bo" = (/obj/item/weapon/material/twohanded/baseballbat/metal,/turf/simulated/floor/carpet/blucarpet,/area/submap/Manor1)
+"bp" = (/obj/effect/decal/cleanable/blood,/turf/simulated/floor/carpet/blucarpet,/area/submap/Manor1)
+"bq" = (/obj/effect/decal/cleanable/blood/drip,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
+"br" = (/obj/structure/bed/chair/comfy/purp{icon_state = "comfychair_preview"; dir = 4},/turf/simulated/floor/holofloor/wood{icon_state = "wood_broken5"},/area/submap/Manor1)
+"bs" = (/obj/structure/table,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
+"bt" = (/obj/structure/bed/chair/wood{icon_state = "wooden_chair"; dir = 4},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
+"bu" = (/obj/structure/bed/chair/wood{icon_state = "wooden_chair"; dir = 8},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
+"bv" = (/obj/structure/table/standard,/obj/item/weapon/reagent_containers/food/condiment/small/sugar,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
+"bw" = (/obj/effect/decal/cleanable/blood/drip,/turf/simulated/floor/carpet/blucarpet,/area/submap/Manor1)
+"bx" = (/obj/structure/bed/chair/comfy/purp{icon_state = "comfychair_preview"; dir = 4},/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
+"by" = (/obj/structure/closet/cabinet,/obj/item/clothing/suit/storage/hooded/wintercoat,/obj/item/clothing/head/hood/winter,/obj/item/clothing/shoes/boots/winter,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
+"bz" = (/obj/structure/table/woodentable,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
+"bA" = (/obj/structure/table/standard,/obj/item/weapon/material/kitchen/utensil/fork,/obj/item/weapon/material/kitchen/utensil/fork,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
+"bB" = (/obj/structure/closet/secure_closet/freezer/fridge,/obj/item/weapon/reagent_containers/food/snacks/stew,/obj/item/weapon/reagent_containers/food/snacks/stew,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
+"bC" = (/obj/item/weapon/shovel,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
+"bD" = (/obj/structure/bed/chair/wood{icon_state = "wooden_chair"; dir = 1},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
+"bE" = (/obj/structure/table/standard,/obj/item/weapon/material/kitchen/utensil/spoon,/obj/item/weapon/material/kitchen/utensil/spoon,/obj/item/weapon/material/kitchen/utensil/spoon,/obj/effect/spider/stickyweb,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
+"bF" = (/obj/structure/table/standard,/obj/effect/spider/stickyweb,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
+"bG" = (/obj/structure/closet/secure_closet/freezer/fridge,/obj/item/weapon/reagent_containers/food/snacks/sausage,/obj/item/weapon/reagent_containers/food/snacks/sausage,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
+"bH" = (/obj/effect/decal/cleanable/dirt,/obj/structure/flora/pottedplant/drooping,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
+"bI" = (/obj/effect/decal/cleanable/dirt,/obj/structure/flora/pottedplant/dead,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
+"bJ" = (/obj/structure/table/standard,/obj/item/weapon/material/kitchen/rollingpin,/obj/effect/spider/stickyweb,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
+"bK" = (/obj/structure/table/standard,/obj/item/weapon/reagent_containers/glass/bottle/stoxin,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
+"bL" = (/obj/structure/table/woodentable,/obj/item/weapon/storage/fancy/candle_box,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
+"bM" = (/obj/machinery/papershredder,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
+"bN" = (/obj/structure/simple_door/wood,/turf/simulated/floor/carpet/purcarpet,/area/submap/Manor1)
+"bO" = (/obj/machinery/icecream_vat,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
+"bP" = (/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/carpet/blucarpet,/area/submap/Manor1)
+"bQ" = (/obj/effect/decal/cleanable/blood,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
+"bR" = (/obj/effect/decal/cleanable/cobweb,/obj/structure/table/woodentable,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
+"bS" = (/obj/structure/flora/pottedplant/subterranean,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
+"bT" = (/obj/item/weapon/material/minihoe,/turf/simulated/floor/carpet/blucarpet,/area/submap/Manor1)
+"bU" = (/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/carpet/purcarpet,/area/submap/Manor1)
+"bV" = (/turf/simulated/floor/holofloor/wood{icon_state = "wood_broken6"},/area/submap/Manor1)
+"bW" = (/obj/machinery/washing_machine,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
+"bX" = (/obj/structure/table/woodentable,/obj/structure/bedsheetbin,/obj/effect/decal/cleanable/cobweb2,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
+"bY" = (/obj/structure/table/rack,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
+"bZ" = (/obj/structure/closet/crate,/obj/item/stack/cable_coil/random_belt,/obj/random/cash,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
+"ca" = (/obj/structure/table/woodentable,/obj/item/weapon/melee/umbrella/random,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
+"cb" = (/obj/structure/closet/cabinet,/obj/random/gun/random,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
+"cc" = (/obj/structure/closet/cabinet,/obj/item/weapon/cell/device/weapon,/obj/item/weapon/cell/device/weapon,/obj/random/medical,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
+"cd" = (/obj/structure/table/woodentable,/obj/item/device/flashlight/lamp/green,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
+"ce" = (/obj/structure/bed/double,/obj/item/weapon/bedsheet/rddouble,/obj/structure/curtain/open/bed,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
+"cf" = (/obj/structure/table/woodentable,/obj/item/weapon/storage/wallet/random,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
+"cg" = (/obj/structure/flora/pottedplant/dead,/obj/effect/decal/cleanable/cobweb2,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
+"ch" = (/obj/structure/loot_pile/surface/bones,/obj/item/clothing/accessory/sweater,/turf/simulated/floor/carpet/blucarpet,/area/submap/Manor1)
+"ci" = (/obj/structure/closet/crate,/obj/item/weapon/flame/lighter/random,/obj/random/powercell,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
+"cj" = (/obj/structure/closet/cabinet,/obj/item/clothing/shoes/boots/winter,/obj/item/clothing/suit/storage/hooded/wintercoat,/obj/item/clothing/head/hood/winter,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
+"ck" = (/obj/effect/decal/cleanable/spiderling_remains,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
+"cl" = (/turf/simulated/floor/carpet/turcarpet,/area/submap/Manor1)
+"cm" = (/obj/effect/decal/cleanable/blood,/obj/structure/bed/chair/comfy/purp{icon_state = "comfychair_preview"; dir = 4},/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
+"cn" = (/obj/structure/closet/crate,/obj/item/weapon/storage/wallet/random,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
+"co" = (/obj/structure/coatrack,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
+"cp" = (/obj/structure/loot_pile/surface/bones,/obj/item/clothing/suit/storage/hooded/wintercoat,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
+"cq" = (/obj/structure/loot_pile/surface/bones,/obj/item/clothing/under/suit_jacket,/obj/item/clothing/shoes/black,/obj/random/projectile/random,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
+"cr" = (/obj/structure/simple_door/wood,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/carpet/purcarpet,/area/submap/Manor1)
+"cs" = (/obj/item/weapon/material/twohanded/spear,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
+"ct" = (/obj/structure/closet/cabinet{opened = 1},/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
+"cu" = (/obj/effect/decal/remains,/obj/item/weapon/material/knife/tacknife/combatknife,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
+"cv" = (/obj/structure/sink{pixel_y = 30},/turf/simulated/floor/tiled/hydro,/area/submap/Manor1)
+"cw" = (/turf/simulated/floor/tiled/hydro,/area/submap/Manor1)
+"cx" = (/obj/structure/table/standard,/obj/effect/decal/cleanable/cobweb2,/turf/simulated/floor/tiled/hydro,/area/submap/Manor1)
+"cy" = (/obj/structure/table/standard,/obj/item/weapon/towel/random,/obj/item/weapon/towel/random,/turf/simulated/floor/tiled/hydro,/area/submap/Manor1)
+"cz" = (/obj/effect/decal/cleanable/cobweb2,/obj/effect/spider/stickyweb,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
+"cA" = (/obj/item/weapon/paper/crumpled,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
+"cB" = (/turf/simulated/floor/holofloor/wood{icon_state = "wood_broken3"},/area/submap/Manor1)
+"cC" = (/obj/effect/decal/cleanable/spiderling_remains,/obj/effect/spider/stickyweb,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
+"cD" = (/obj/structure/closet/crate,/obj/item/clothing/suit/armor/vest,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
+"cE" = (/obj/structure/closet/crate,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
+"cF" = (/obj/structure/simple_door/wood,/turf/simulated/floor/tiled/hydro,/area/submap/Manor1)
+"cG" = (/obj/structure/toilet{icon_state = "toilet00"; dir = 8},/turf/simulated/floor/tiled/hydro,/area/submap/Manor1)
+"cH" = (/obj/machinery/shower{icon_state = "shower"; dir = 8},/obj/structure/curtain/open/shower,/turf/simulated/floor/tiled/hydro,/area/submap/Manor1)
+"cI" = (/obj/item/stack/material/wood,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
+"cJ" = (/obj/machinery/shower{icon_state = "shower"; dir = 8},/obj/structure/curtain/open/shower,/obj/random/soap,/turf/simulated/floor/tiled/hydro,/area/submap/Manor1)
+"cK" = (/obj/structure/table/standard,/turf/simulated/floor/tiled/hydro,/area/submap/Manor1)
+"cL" = (/obj/structure/toilet{icon_state = "toilet00"; dir = 1},/turf/simulated/floor/tiled/hydro,/area/submap/Manor1)
+"cM" = (/obj/structure/table/woodentable,/obj/item/modular_computer/laptop/preset/custom_loadout/cheap,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1)
+"cN" = (/turf/template_noop,/area/template_noop)
+"cO" = (/obj/structure/flora/tree/sif,/turf/template_noop,/area/submap/Manor1)
+
+(1,1,1) = {"
+cNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcN
+cNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabacacacacababacacacacabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacN
+cNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababadaeafagahaiagadajafababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacN
+cNaaaaaaaaaaaaaaaaababababababababababababagagagagagagagagagagagagababababababababababababababaaaaaaaaaaaacN
+cNaaaacOaaaaaaaaabababakagagagalamalagananagagagagananananagagagagagagagagalalalagagagaiabaoapabaaaacOaaaacN
+cNaaaaaaaaaaaaababalabagaqaqaqaqarararararararaqarararararararaqaqaqaqaqaqaqaqaqaqaqaqagasagagababaaaaaaaacN
+cNaaaaaaaaaaababatauabagaqaqaqaqaqaqaqarararararararararararararaqaqaqaqaqaqaqaqaqaqaqagabavagawababaaaaaacN
+cNaaaaaaaaaaabaxagayabagaqagagazalalaganananaAaBaAagananagagagagagagagagagalalaCagagaqagababababababaaaaaacN
+cNaaaaaaaaaaababasababagaqagabababababababababababababababababababababababababababagaqagabaDagagaEabaaaaaacN
+cNaaaaaacOaaabagagagasagaqagabaFaGagalaHabaIaJaKagagaLaLagagagagahabagaMagagagaNabagaqagabaOagagalabaaaaaacN
+cNaaaaaaaaaaabasabababagaqagabagagagagagabaKaKaPaPagaQaQagaPaPagagabaRagaRaRagaSabagaqagabababasababaaaaaacN
+cNaaaaaaaaaaabagagaTabagaqagabagaUagaUagabagadalaVafaQaQadaValafagabaRagaWaXagaYabalaqagasagagagagabaaaaaacN
+cNaaaaaaaaaaabagagaMabagaqagabagaUagaUagabagadalalafaQaQadalalafagabaRagaZaRagbaabagaqagabababasababaaaaaacN
+cNaaaaaaaaaaabaDalaOabagaqagabagaUagaUagabagadalalafaQaQadalalafagabbbagaRbcagbdabagaqagabaOagagalabaaaaaacN
+cNaaaaaaaaaaabababababagaqagabagagagaganabagadalalafaQaQadalalafagabagagagagagagabagaqagabaDbeagbfabaaaaaacN
+cNaaaaaaaaaaabaDalbgabalaqagabagaUagaUanabagadalalafaQaQadalalafagabagagagagagagabagaqagababababababaaaaaacN
+cNaaaaaaaaababagbhagabazaqagasagaUagaUanabagadaGalafaQaQadalalafagabagagagagagagabagaqagabbiagagagababaaaacN
+cNaaaaaaababbjagagbkabalaqagabagaUanaUanabagadalalafaQaQadalalafagabagagagagagagabagaqagabagblbmagagababaacN
+cNaaaaaabnagagagagaOabagaqanabanananananabanadalalafaQaQadalalafagasagagagagagagasagaqagasagbobpbqbrbsacaacN
+cNaaaaaabnagagagagalabagaranabagaUanaUagabanbtalalafaQaQadalalbuanabagagaRbvagagabagaqagabagblbwagbxbsacaacN
+cNaaaaaaababagagagbyabanaranabagaUanaUagabanbtalalafaQaQadalbzbuanabagagbAaRagbBabagaqagabagblblagbCababaacN
+cNaaaaaaaaababagagagabanaragabagaUanaUagabananbhbhagaQaQagbhbDananabagagbEbFagbGabagaqagabalblblagababaaaacN
+cNaaaaaaaaaaabagagagabagaragabagaganagagabbHananagagaQaQaganananbIabagagbFbJagbKabagaqagabaDblblalabaaaaaacN
+cNaaaaaaaaaaabagagagasagaqagabaGbLbMagaiababababababbNbNababababababbOaKaKaKagagabagaqagabalblblalabaaaaaacN
+cNaaaaaaaaaaabazalagabagaqagababababasabababababalalaQaQalalabababababababababababagaqagabalbwbPalabaaaaaacN
+cNaaaaaaaaaaabababababbQaqagagananananananananasagagaQaQagagasagagagagagagagagagagagaqagabazblbPalabaaaaaacN
+cNaaaaaaaaababbRazbSabbqaqagagagagananananananasagagaQaQagagasagagagagagagagagagagagaqagabalblbTagababaaaacN
+cNaaaaaaababagagagagabagaqagababababasabababababalagbUaQagalabababababababababababagaqagabagblblbVagababaacN
+cNaaaaaaacagagagagbqasbqaqagabbWbXabagabbYagbZabalagbUbUagcaabcbccagcdcecfagagcgabagaqagasagbpchagbxbsacaacN
+cNaacOaaacagagagbqagabagaqagabagagasagabagagciabcjckbUbUagcjabagclclclclclclclaDabagaqagabbqbwblagcmagacaacN
+cNaaaaaaababagbQbQagabahaqagabbWazabagasagagcnababcobUbUcoababagclclclclclclclalabahaqahabagbwblagcpababaacN
+cNaaaaaaaaababcqagagababasabababababagabagagagaKababcrcrababagagclclclclclclclalababasababcsblbwagababaaaacN
+cNaaaaaaaaaaabctagcuabcvcwcxabcycwasagabbYagaKaKczabbUbUabazafagclclclclclclclagagagagahabagcAcBagabaaaaaacN
+cNaaaaaaaaaaababalagabcwabababcwcwabagabbYcCaJcDcEabbUbUabalagagagagagclclclclclclclclagabcAbqagababaaaaaacN
+cNaaaaaaaaaaaaababalabcwcFcGabcwcHabasabababababababbNbNabababababahagclclclclclclclclagabagcIababaaaaaaaacN
+cNaaaaaaaaaaaaaaabababcwabababcwcHabcwcvababaaaaaaaaaaaaaaaaaaaaababalclclclclclclclclagabcIababaaaaaaaaaacN
+cNaaaaaaaaaaaaaaaaababcwcFcGabcwcJabcKcLabaaaaaaaaaaaaaaaaaaaaaaaaabcMalalagagagagagagahabababaaaaaacOaaaacN
+cNaaaaaacOaaaaaaaaaaabababababababababababaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababaaaaaaaaaaaaaacN
+cNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacN
+cNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcN
"}
\ No newline at end of file
diff --git a/maps/tether/submaps/admin_use/dhael_centcom.dmm b/maps/tether/submaps/admin_use/dhael_centcom.dmm
index 195605f7c47..23c2c03e819 100644
--- a/maps/tether/submaps/admin_use/dhael_centcom.dmm
+++ b/maps/tether/submaps/admin_use/dhael_centcom.dmm
@@ -3607,7 +3607,7 @@
/obj/effect/floor_decal/corner/grey/diagonal{
dir = 4
},
-/obj/machinery/cooker/cereal,
+/obj/machinery/appliance/cooker/cereal,
/turf/unsimulated/floor/steel{
icon_state = "white"
},
@@ -3635,7 +3635,7 @@
/obj/effect/floor_decal/corner/grey/diagonal{
dir = 4
},
-/obj/machinery/cooker/oven,
+/obj/machinery/appliance/cooker/oven,
/obj/machinery/camera/network/crescent{
dir = 10
},
@@ -3647,7 +3647,7 @@
/obj/effect/floor_decal/corner/grey/diagonal{
dir = 4
},
-/obj/machinery/cooker/grill,
+/obj/machinery/appliance/cooker/grill,
/turf/unsimulated/floor/steel{
icon_state = "white"
},
@@ -3656,7 +3656,7 @@
/obj/effect/floor_decal/corner/grey/diagonal{
dir = 4
},
-/obj/machinery/cooker/fryer,
+/obj/machinery/appliance/cooker/fryer,
/turf/unsimulated/floor/steel{
icon_state = "white"
},
@@ -14562,7 +14562,7 @@
/obj/effect/floor_decal/corner/grey/diagonal{
dir = 4
},
-/obj/machinery/cooker/cereal,
+/obj/machinery/appliance/cooker/cereal,
/turf/unsimulated/floor/steel{
icon_state = "white"
},
@@ -14571,7 +14571,7 @@
/obj/effect/floor_decal/corner/grey/diagonal{
dir = 4
},
-/obj/machinery/cooker/oven,
+/obj/machinery/appliance/cooker/oven,
/turf/unsimulated/floor/steel{
icon_state = "white"
},
@@ -14580,7 +14580,7 @@
/obj/effect/floor_decal/corner/grey/diagonal{
dir = 4
},
-/obj/machinery/cooker/grill,
+/obj/machinery/appliance/cooker/grill,
/turf/unsimulated/floor/steel{
icon_state = "white"
},
@@ -14589,7 +14589,7 @@
/obj/effect/floor_decal/corner/grey/diagonal{
dir = 4
},
-/obj/machinery/cooker/fryer,
+/obj/machinery/appliance/cooker/fryer,
/turf/unsimulated/floor/steel{
icon_state = "white"
},
diff --git a/maps/tether/submaps/aerostat/submaps/Manor1.dmm b/maps/tether/submaps/aerostat/submaps/Manor1.dmm
index b9815492897..2401898eb82 100644
--- a/maps/tether/submaps/aerostat/submaps/Manor1.dmm
+++ b/maps/tether/submaps/aerostat/submaps/Manor1.dmm
@@ -219,7 +219,7 @@
/turf/simulated/floor/holofloor/wood,
/area/submap/virgo2/Manor1)
"aY" = (
-/obj/machinery/cooker/oven,
+/obj/machinery/appliance/cooker/oven,
/turf/simulated/floor/holofloor/wood,
/area/submap/virgo2/Manor1)
"aZ" = (
@@ -228,7 +228,7 @@
/turf/simulated/floor/holofloor/wood,
/area/submap/virgo2/Manor1)
"ba" = (
-/obj/machinery/cooker/grill,
+/obj/machinery/appliance/cooker/grill,
/turf/simulated/floor/holofloor/wood,
/area/submap/virgo2/Manor1)
"bb" = (
diff --git a/maps/tether/submaps/om_ships/aro.dmm b/maps/tether/submaps/om_ships/aro.dmm
index 5322661bb8c..4dce075b15c 100644
--- a/maps/tether/submaps/om_ships/aro.dmm
+++ b/maps/tether/submaps/om_ships/aro.dmm
@@ -616,12 +616,12 @@
/turf/simulated/floor/tiled/white,
/area/ship/aro/recreation)
"bp" = (
-/obj/machinery/cooker/oven,
+/obj/machinery/appliance/cooker/oven,
/obj/effect/floor_decal/borderfloorwhite/corner2,
/turf/simulated/floor/tiled/white,
/area/ship/aro/recreation)
"bq" = (
-/obj/machinery/cooker/grill,
+/obj/machinery/appliance/cooker/grill,
/obj/effect/floor_decal/borderfloorwhite,
/turf/simulated/floor/tiled/white,
/area/ship/aro/recreation)
diff --git a/maps/tether/submaps/om_ships/cruiser.dmm b/maps/tether/submaps/om_ships/cruiser.dmm
index 719b3501b1b..443a78927f7 100644
--- a/maps/tether/submaps/om_ships/cruiser.dmm
+++ b/maps/tether/submaps/om_ships/cruiser.dmm
@@ -1017,14 +1017,14 @@
/turf/simulated/floor/tiled/white,
/area/mothership/kitchen)
"cl" = (
-/obj/machinery/cooker/cereal,
+/obj/machinery/appliance/cooker/cereal,
/obj/effect/floor_decal/industrial/warning/dust{
dir = 9
},
/turf/simulated/floor/tiled/white,
/area/mothership/kitchen)
"cm" = (
-/obj/machinery/cooker/fryer,
+/obj/machinery/appliance/cooker/fryer,
/obj/structure/table/steel_reinforced,
/obj/effect/floor_decal/industrial/warning/dust{
dir = 1
@@ -1032,7 +1032,7 @@
/turf/simulated/floor/tiled/white,
/area/mothership/kitchen)
"cn" = (
-/obj/machinery/cooker/oven,
+/obj/machinery/appliance/cooker/oven,
/obj/structure/table/steel_reinforced,
/obj/effect/floor_decal/industrial/warning/dust{
dir = 1
@@ -1040,7 +1040,7 @@
/turf/simulated/floor/tiled/white,
/area/mothership/kitchen)
"co" = (
-/obj/machinery/cooker/grill,
+/obj/machinery/appliance/cooker/grill,
/obj/structure/table/steel_reinforced,
/obj/effect/floor_decal/industrial/warning/dust{
dir = 1
@@ -1049,7 +1049,7 @@
/turf/simulated/floor/tiled/white,
/area/mothership/kitchen)
"cp" = (
-/obj/machinery/cooker/candy,
+/obj/machinery/appliance/cooker/candy,
/obj/effect/floor_decal/industrial/warning/dust{
dir = 1
},
diff --git a/maps/tether/submaps/om_ships/mercenarybase.dmm b/maps/tether/submaps/om_ships/mercenarybase.dmm
index 95238c7b191..42b6a45289a 100644
--- a/maps/tether/submaps/om_ships/mercenarybase.dmm
+++ b/maps/tether/submaps/om_ships/mercenarybase.dmm
@@ -3272,15 +3272,15 @@
/turf/simulated/floor/tiled/dark,
/area/mercbase/roid)
"nm" = (
-/obj/machinery/cooker/oven,
+/obj/machinery/appliance/cooker/oven,
/turf/simulated/floor/tiled/dark,
/area/mercbase/roid)
"nn" = (
-/obj/machinery/cooker/grill,
+/obj/machinery/appliance/cooker/grill,
/turf/simulated/floor/tiled/dark,
/area/mercbase/roid)
"no" = (
-/obj/machinery/cooker/fryer,
+/obj/machinery/appliance/cooker/fryer,
/turf/simulated/floor/tiled/dark,
/area/mercbase/roid)
"np" = (
diff --git a/maps/tether/tether-03-surface3.dmm b/maps/tether/tether-03-surface3.dmm
index 4ccd5fb59b1..8cb61dad374 100644
--- a/maps/tether/tether-03-surface3.dmm
+++ b/maps/tether/tether-03-surface3.dmm
@@ -10132,7 +10132,7 @@
/turf/simulated/floor/tiled/white,
/area/crew_quarters/kitchen)
"asP" = (
-/obj/machinery/cooker/grill,
+/obj/machinery/appliance/cooker/grill,
/obj/effect/floor_decal/industrial/warning/dust{
dir = 9
},
@@ -10236,7 +10236,7 @@
/turf/simulated/floor/tiled/white,
/area/crew_quarters/kitchen)
"atc" = (
-/obj/machinery/cooker/candy,
+/obj/machinery/appliance/cooker/candy,
/obj/effect/floor_decal/industrial/warning/dust{
dir = 8
},
@@ -10328,7 +10328,7 @@
/turf/simulated/floor/tiled/white,
/area/crew_quarters/kitchen)
"ato" = (
-/obj/machinery/cooker/cereal,
+/obj/machinery/appliance/cooker/cereal,
/obj/effect/floor_decal/industrial/warning/dust{
dir = 8
},
@@ -10395,7 +10395,7 @@
/turf/simulated/wall,
/area/crew_quarters/kitchen)
"atA" = (
-/obj/machinery/cooker/fryer,
+/obj/machinery/appliance/cooker/fryer,
/obj/effect/floor_decal/industrial/warning/dust{
dir = 8
},
@@ -10555,7 +10555,7 @@
/turf/simulated/floor/tiled/white,
/area/crew_quarters/kitchen)
"atS" = (
-/obj/machinery/cooker/oven,
+/obj/machinery/appliance/cooker/oven,
/obj/effect/floor_decal/industrial/warning/dust{
dir = 10
},
diff --git a/maps/virgo/virgo-1.dmm b/maps/virgo/virgo-1.dmm
index 4450499fde8..0d43dd25496 100644
--- a/maps/virgo/virgo-1.dmm
+++ b/maps/virgo/virgo-1.dmm
@@ -4249,7 +4249,7 @@
"bDK" = (/obj/structure/disposalpipe/segment,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor,/area/maintenance/central)
"bDL" = (/obj/structure/table/marble,/obj/effect/floor_decal/corner/grey/diagonal{dir = 4},/obj/machinery/reagentgrinder,/turf/simulated/floor/tiled/white,/area/crew_quarters/kitchen)
"bDM" = (/obj/effect/floor_decal/corner/grey/diagonal{dir = 4},/turf/simulated/floor/tiled/white,/area/crew_quarters/kitchen)
-"bDN" = (/obj/effect/floor_decal/corner/grey/diagonal{dir = 4},/obj/machinery/cooker/oven,/turf/simulated/floor/tiled/white,/area/crew_quarters/kitchen)
+"bDN" = (/obj/effect/floor_decal/corner/grey/diagonal{dir = 4},/obj/machinery/appliance/cooker/oven,/turf/simulated/floor/tiled/white,/area/crew_quarters/kitchen)
"bDO" = (/obj/effect/floor_decal/corner/lime{dir = 5},/obj/structure/closet/secure_closet/hydroponics,/turf/simulated/floor/tiled,/area/hydroponics)
"bDP" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/crew_quarters/kitchen)
"bDQ" = (/obj/structure/closet/secure_closet/hydroponics,/obj/effect/floor_decal/corner/lime/full{dir = 8},/turf/simulated/floor/tiled,/area/hydroponics)
@@ -4668,8 +4668,8 @@
"bLN" = (/obj/effect/floor_decal/corner/blue,/obj/structure/reagent_dispensers/water_cooler/full,/turf/simulated/floor/tiled,/area/bridge_hallway)
"bLO" = (/turf/simulated/wall/r_wall,/area/crew_quarters/captain)
"bLP" = (/obj/effect/floor_decal/corner/grey/diagonal{dir = 4},/obj/machinery/disposal,/obj/structure/disposalpipe/trunk,/obj/structure/extinguisher_cabinet{pixel_x = 5; pixel_y = 28},/turf/simulated/floor/tiled/white,/area/crew_quarters/kitchen)
-"bLQ" = (/obj/effect/floor_decal/corner/grey/diagonal{dir = 4},/obj/machinery/cooker/grill,/obj/machinery/newscaster{pixel_y = 32},/turf/simulated/floor/tiled/white,/area/crew_quarters/kitchen)
-"bLR" = (/obj/effect/floor_decal/corner/grey/diagonal{dir = 4},/obj/machinery/cooker/fryer,/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = 32},/turf/simulated/floor/tiled/white,/area/crew_quarters/kitchen)
+"bLQ" = (/obj/effect/floor_decal/corner/grey/diagonal{dir = 4},/obj/machinery/appliance/cooker/grill,/obj/machinery/newscaster{pixel_y = 32},/turf/simulated/floor/tiled/white,/area/crew_quarters/kitchen)
+"bLR" = (/obj/effect/floor_decal/corner/grey/diagonal{dir = 4},/obj/machinery/appliance/cooker/fryer,/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = 32},/turf/simulated/floor/tiled/white,/area/crew_quarters/kitchen)
"bLS" = (/obj/effect/floor_decal/corner/grey/diagonal{dir = 4},/obj/structure/disposalpipe/segment,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled/white,/area/crew_quarters/kitchen)
"bLT" = (/obj/effect/floor_decal/corner/grey/diagonal{dir = 4},/obj/structure/closet/secure_closet/freezer/fridge,/obj/item/device/radio/intercom{dir = 1; name = "Station Intercom (General)"; pixel_y = 21},/obj/machinery/atmospherics/unary/vent_scrubber/on,/turf/simulated/floor/tiled/white,/area/crew_quarters/kitchen)
"bLU" = (/obj/effect/floor_decal/corner/grey/diagonal{dir = 4},/obj/structure/sink/kitchen{pixel_y = 28},/turf/simulated/floor/tiled/white,/area/crew_quarters/kitchen)
@@ -4886,9 +4886,9 @@
"bPX" = (/obj/effect/floor_decal/corner/grey/diagonal{dir = 4},/obj/machinery/hologram/holopad,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled/white,/area/crew_quarters/kitchen)
"bPY" = (/obj/effect/floor_decal/corner/grey/diagonal{dir = 4},/obj/structure/table/marble,/obj/machinery/chemical_dispenser/bar_soft/full,/turf/simulated/floor/tiled/white,/area/crew_quarters/kitchen)
"bPZ" = (/obj/structure/table/marble,/obj/effect/floor_decal/corner/grey/diagonal{dir = 4},/obj/item/weapon/reagent_containers/food/snacks/mint,/obj/item/weapon/reagent_containers/food/condiment/enzyme{layer = 5},/obj/item/weapon/packageWrap,/obj/item/weapon/reagent_containers/dropper,/turf/simulated/floor/tiled/white,/area/crew_quarters/kitchen)
-"bQa" = (/obj/effect/floor_decal/corner/grey/diagonal{dir = 4},/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/cooker/candy,/turf/simulated/floor/tiled/white,/area/crew_quarters/kitchen)
+"bQa" = (/obj/effect/floor_decal/corner/grey/diagonal{dir = 4},/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/appliance/cooker/candy,/turf/simulated/floor/tiled/white,/area/crew_quarters/kitchen)
"bQb" = (/obj/structure/table/marble,/obj/effect/floor_decal/corner/grey/diagonal{dir = 4},/obj/item/weapon/storage/box/donkpockets{pixel_x = 3; pixel_y = 3},/obj/item/weapon/reagent_containers/glass/beaker{pixel_x = 5},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled/white,/area/crew_quarters/kitchen)
-"bQc" = (/obj/effect/floor_decal/corner/grey/diagonal{dir = 4},/obj/machinery/cooker/cereal,/obj/machinery/camera/network/civilian{c_tag = "CIV - Kitchen Starboard"; dir = 8},/obj/machinery/light{dir = 4},/turf/simulated/floor/tiled/white,/area/crew_quarters/kitchen)
+"bQc" = (/obj/effect/floor_decal/corner/grey/diagonal{dir = 4},/obj/machinery/appliance/cooker/cereal,/obj/machinery/camera/network/civilian{c_tag = "CIV - Kitchen Starboard"; dir = 8},/obj/machinery/light{dir = 4},/turf/simulated/floor/tiled/white,/area/crew_quarters/kitchen)
"bQd" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor/border_only,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/crew_quarters/kitchen)
"bQe" = (/obj/structure/flora/ausbushes/brflowers,/obj/structure/flora/ausbushes/ppflowers,/turf/simulated/floor/grass,/area/crew_quarters/kitchen)
"bQf" = (/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/tiled,/area/hallway/primary/central_two)
diff --git a/vorestation.dme b/vorestation.dme
index 59b2c3525d7..be1efea2c35 100644
--- a/vorestation.dme
+++ b/vorestation.dme
@@ -2098,6 +2098,7 @@
#include "code\modules\food\kitchen\microwave.dm"
#include "code\modules\food\kitchen\smartfridge.dm"
#include "code\modules\food\kitchen\smartfridge_vr.dm"
+#include "code\modules\food\kitchen\cooking_machines\_appliance.dm"
#include "code\modules\food\kitchen\cooking_machines\_cooker.dm"
#include "code\modules\food\kitchen\cooking_machines\_cooker_output.dm"
#include "code\modules\food\kitchen\cooking_machines\candy.dm"