"
@@ -135,6 +158,9 @@
//Name
html += "| [food_recipes[Rp]["Result"]] | "
+
+ //Appliance
+ html += "[food_recipes[Rp]["Appliance"]] | "
//Ingredients
html += ""
diff --git a/code/modules/food/recipes_fryer.dm b/code/modules/food/recipes_fryer.dm
new file mode 100644
index 0000000000..5cc2b1531b
--- /dev/null
+++ b/code/modules/food/recipes_fryer.dm
@@ -0,0 +1,159 @@
+/datum/recipe/fries
+ appliance = FRYER
+ items = list(
+ /obj/item/weapon/reagent_containers/food/snacks/rawsticks
+ )
+ result = /obj/item/weapon/reagent_containers/food/snacks/fries
+
+/datum/recipe/cheesyfries
+ appliance = FRYER
+ items = list(
+ /obj/item/weapon/reagent_containers/food/snacks/fries,
+ /obj/item/weapon/reagent_containers/food/snacks/cheesewedge,
+ )
+ result = /obj/item/weapon/reagent_containers/food/snacks/cheesyfries
+
+/datum/recipe/jpoppers
+ appliance = FRYER
+ fruit = list("chili" = 1)
+ coating = /datum/reagent/nutriment/coating/batter
+ result = /obj/item/weapon/reagent_containers/food/snacks/jalapeno_poppers
+
+/datum/recipe/risottoballs
+ appliance = FRYER
+ reagents = list("sodiumchloride" = 1, "blackpepper" = 1)
+ items = list(/obj/item/weapon/reagent_containers/food/snacks/risotto)
+ coating = /datum/reagent/nutriment/coating/batter
+ reagent_mix = RECIPE_REAGENT_REPLACE //Simplify end product
+ result = /obj/item/weapon/reagent_containers/food/snacks/risottoballs
+
+
+//Meaty Recipes
+//====================
+/datum/recipe/cubancarp
+ appliance = FRYER
+ fruit = list("chili" = 1)
+ items = list(
+ /obj/item/weapon/reagent_containers/food/snacks/dough,
+ /obj/item/weapon/reagent_containers/food/snacks/carpmeat
+ )
+ result = /obj/item/weapon/reagent_containers/food/snacks/cubancarp
+
+/datum/recipe/batteredsausage
+ appliance = FRYER
+ items = list(
+ /obj/item/weapon/reagent_containers/food/snacks/sausage
+ )
+ result = /obj/item/weapon/reagent_containers/food/snacks/sausage/battered
+ coating = /datum/reagent/nutriment/coating/batter
+
+
+/datum/recipe/katsu
+ appliance = FRYER
+ items = list(
+ /obj/item/weapon/reagent_containers/food/snacks/meat/chicken
+ )
+ result = /obj/item/weapon/reagent_containers/food/snacks/chickenkatsu
+ coating = /datum/reagent/nutriment/coating/beerbatter
+
+
+/datum/recipe/pizzacrunch_1
+ appliance = FRYER
+ items = list(
+ /obj/item/weapon/reagent_containers/food/snacks/sliceable/pizza
+ )
+ result = /obj/item/weapon/reagent_containers/food/snacks/sliceable/pizza/crunch
+ coating = /datum/reagent/nutriment/coating/batter
+
+//Alternate pizza crunch recipe for combination pizzas made in oven
+/datum/recipe/pizzacrunch_2
+ appliance = FRYER
+ items = list(
+ /obj/item/weapon/reagent_containers/food/snacks/variable/pizza
+ )
+ result = /obj/item/weapon/reagent_containers/food/snacks/sliceable/pizza/crunch
+ coating = /datum/reagent/nutriment/coating/batter
+
+/datum/recipe/friedmushroom
+ appliance = FRYER
+ fruit = list("plumphelmet" = 1)
+ coating = /datum/reagent/nutriment/coating/beerbatter
+ reagent_mix = RECIPE_REAGENT_REPLACE //Simplify end product
+ result = /obj/item/weapon/reagent_containers/food/snacks/friedmushroom
+
+
+//Sweet Recipes.
+//==================
+// All donuts were given reagents of 5 to equal old recipes and make for faster cook times.
+/datum/recipe/jellydonut
+ appliance = FRYER
+ reagents = list("berryjuice" = 5, "sugar" = 5)
+ items = list(
+ /obj/item/weapon/reagent_containers/food/snacks/doughslice
+ )
+ result = /obj/item/weapon/reagent_containers/food/snacks/donut/jelly
+ result_quantity = 2
+
+/datum/recipe/jellydonut/poisonberry
+ reagents = list("poisonberryjuice" = 5, "sugar" = 5)
+ items = list(
+ /obj/item/weapon/reagent_containers/food/snacks/dough
+ )
+ result = /obj/item/weapon/reagent_containers/food/snacks/donut/poisonberry
+
+/datum/recipe/jellydonut/slime // Subtypes of jellydonut, appliance inheritance applies.
+ reagents = list("slimejelly" = 5, "sugar" = 5)
+ result = /obj/item/weapon/reagent_containers/food/snacks/donut/slimejelly
+
+/datum/recipe/jellydonut/cherry // Subtypes of jellydonut, appliance inheritance applies.
+ reagents = list("cherryjelly" = 5, "sugar" = 5)
+ result = /obj/item/weapon/reagent_containers/food/snacks/donut/cherryjelly
+
+/datum/recipe/donut
+ appliance = FRYER
+ reagents = list("sugar" = 5)
+ items = list(
+ /obj/item/weapon/reagent_containers/food/snacks/doughslice
+ )
+ result = /obj/item/weapon/reagent_containers/food/snacks/donut/normal
+ result_quantity = 2
+
+/datum/recipe/chaosdonut
+ appliance = FRYER
+ reagents = list("frostoil" = 10, "capsaicin" = 10, "sugar" = 10)
+ reagent_mix = RECIPE_REAGENT_REPLACE //This creates its own reagents
+ items = list(
+ /obj/item/weapon/reagent_containers/food/snacks/doughslice
+ )
+ result = /obj/item/weapon/reagent_containers/food/snacks/donut/chaos
+ result_quantity = 2
+
+/datum/recipe/funnelcake
+ appliance = FRYER
+ reagents = list("sugar" = 5, "batter" = 10)
+ result = /obj/item/weapon/reagent_containers/food/snacks/funnelcake
+
+/datum/recipe/pisanggoreng
+ appliance = FRYER
+ fruit = list("banana" = 2)
+ reagent_mix = RECIPE_REAGENT_REPLACE //Simplify end product
+ result = /obj/item/weapon/reagent_containers/food/snacks/pisanggoreng
+ coating = /datum/reagent/nutriment/coating/batter
+
+/datum/recipe/corn_dog
+ appliance = FRYER
+ items = list(
+ /obj/item/weapon/reagent_containers/food/snacks/sausage
+ )
+ fruit = list("corn" = 1)
+ coating = /datum/reagent/nutriment/coating/batter
+ result = /obj/item/weapon/reagent_containers/food/snacks/corn_dog
+
+/datum/recipe/sweet_and_sour
+ appliance = FRYER
+ items = list(
+ /obj/item/weapon/reagent_containers/food/snacks/bacon,
+ /obj/item/weapon/reagent_containers/food/snacks/cutlet
+ )
+ reagents = list("soysauce" = 5, "batter" = 10)
+ result = /obj/item/weapon/reagent_containers/food/snacks/sweet_and_sour
diff --git a/code/modules/food/recipes_grill.dm b/code/modules/food/recipes_grill.dm
new file mode 100644
index 0000000000..86c7998e90
--- /dev/null
+++ b/code/modules/food/recipes_grill.dm
@@ -0,0 +1,231 @@
+/datum/recipe/humanburger
+ appliance = GRILL
+ items = list(
+ /obj/item/weapon/reagent_containers/food/snacks/meat/human,
+ /obj/item/weapon/reagent_containers/food/snacks/bun
+ )
+ result = /obj/item/weapon/reagent_containers/food/snacks/human/burger
+
+/datum/recipe/plainburger
+ appliance = GRILL
+ items = list(
+ /obj/item/weapon/reagent_containers/food/snacks/bun,
+ /obj/item/weapon/reagent_containers/food/snacks/meat //do not place this recipe before /datum/recipe/humanburger
+ )
+ result = /obj/item/weapon/reagent_containers/food/snacks/monkeyburger
+
+/datum/recipe/syntiburger
+ appliance = GRILL
+ items = list(
+ /obj/item/weapon/reagent_containers/food/snacks/bun,
+ /obj/item/weapon/reagent_containers/food/snacks/meat/syntiflesh
+ )
+ result = /obj/item/weapon/reagent_containers/food/snacks/monkeyburger
+
+/datum/recipe/brainburger
+ appliance = GRILL
+ items = list(
+ /obj/item/weapon/reagent_containers/food/snacks/bun,
+ /obj/item/organ/internal/brain
+ )
+ result = /obj/item/weapon/reagent_containers/food/snacks/brainburger
+
+/datum/recipe/roburger
+ appliance = GRILL
+ items = list(
+ /obj/item/weapon/reagent_containers/food/snacks/bun,
+ /obj/item/robot_parts/head
+ )
+ result = /obj/item/weapon/reagent_containers/food/snacks/roburger
+
+/datum/recipe/xenoburger
+ appliance = GRILL
+ items = list(
+ /obj/item/weapon/reagent_containers/food/snacks/bun,
+ /obj/item/weapon/reagent_containers/food/snacks/xenomeat
+ )
+ result = /obj/item/weapon/reagent_containers/food/snacks/xenoburger
+
+/datum/recipe/fishburger
+ appliance = GRILL
+ items = list(
+ /obj/item/weapon/reagent_containers/food/snacks/bun,
+ /obj/item/weapon/reagent_containers/food/snacks/carpmeat
+ )
+ result = /obj/item/weapon/reagent_containers/food/snacks/fishburger
+
+/datum/recipe/tofuburger
+ appliance = GRILL
+ items = list(
+ /obj/item/weapon/reagent_containers/food/snacks/bun,
+ /obj/item/weapon/reagent_containers/food/snacks/tofu
+ )
+ result = /obj/item/weapon/reagent_containers/food/snacks/tofuburger
+
+/datum/recipe/ghostburger
+ appliance = GRILL
+ items = list(
+ /obj/item/weapon/reagent_containers/food/snacks/bun,
+ /obj/item/weapon/ectoplasm //where do you even find this stuff
+ )
+ result = /obj/item/weapon/reagent_containers/food/snacks/ghostburger
+
+/datum/recipe/clownburger
+ appliance = GRILL
+ items = list(
+ /obj/item/weapon/reagent_containers/food/snacks/bun,
+ /obj/item/clothing/mask/gas/clown_hat
+ )
+ result = /obj/item/weapon/reagent_containers/food/snacks/clownburger
+
+/datum/recipe/mimeburger
+ appliance = GRILL
+ items = list(
+ /obj/item/weapon/reagent_containers/food/snacks/bun,
+ /obj/item/clothing/head/beret
+ )
+ result = /obj/item/weapon/reagent_containers/food/snacks/mimeburger
+
+/datum/recipe/mouseburger
+ appliance = GRILL
+ items = list(
+ /obj/item/weapon/reagent_containers/food/snacks/bun,
+ /obj/item/weapon/holder/mouse
+ )
+ result = /obj/item/weapon/reagent_containers/food/snacks/mouseburger
+
+/datum/recipe/bunbun
+ appliance = GRILL
+ items = list(
+ /obj/item/weapon/reagent_containers/food/snacks/bun,
+ /obj/item/weapon/reagent_containers/food/snacks/bun
+ )
+ result = /obj/item/weapon/reagent_containers/food/snacks/bunbun
+
+/datum/recipe/hotdog
+ appliance = GRILL
+ items = list(
+ /obj/item/weapon/reagent_containers/food/snacks/bun,
+ /obj/item/weapon/reagent_containers/food/snacks/sausage
+ )
+ result = /obj/item/weapon/reagent_containers/food/snacks/hotdog
+
+/datum/recipe/humankabob
+ appliance = GRILL
+ items = list(
+ /obj/item/stack/rods,
+ /obj/item/weapon/reagent_containers/food/snacks/meat/human,
+ /obj/item/weapon/reagent_containers/food/snacks/meat/human,
+ )
+ result = /obj/item/weapon/reagent_containers/food/snacks/human/kabob
+
+/datum/recipe/kabob //Do not put before humankabob
+ appliance = GRILL
+ items = list(
+ /obj/item/stack/rods,
+ /obj/item/weapon/reagent_containers/food/snacks/meat,
+ /obj/item/weapon/reagent_containers/food/snacks/meat,
+ )
+ result = /obj/item/weapon/reagent_containers/food/snacks/monkeykabob
+
+/datum/recipe/monkeykabob
+ appliance = GRILL
+ items = list(
+ /obj/item/stack/rods,
+ /obj/item/weapon/reagent_containers/food/snacks/meat/monkey,
+ /obj/item/weapon/reagent_containers/food/snacks/meat/monkey
+ )
+ result = /obj/item/weapon/reagent_containers/food/snacks/monkeykabob
+
+/datum/recipe/syntikabob
+ appliance = GRILL
+ items = list(
+ /obj/item/stack/rods,
+ /obj/item/weapon/reagent_containers/food/snacks/meat/syntiflesh,
+ /obj/item/weapon/reagent_containers/food/snacks/meat/syntiflesh
+ )
+ result = /obj/item/weapon/reagent_containers/food/snacks/monkeykabob
+
+/datum/recipe/tofukabob
+ appliance = GRILL
+ items = list(
+ /obj/item/stack/rods,
+ /obj/item/weapon/reagent_containers/food/snacks/tofu,
+ /obj/item/weapon/reagent_containers/food/snacks/tofu,
+ )
+ result = /obj/item/weapon/reagent_containers/food/snacks/tofukabob
+
+/datum/recipe/fakespellburger
+ appliance = GRILL
+ items = list(
+ /obj/item/weapon/reagent_containers/food/snacks/monkeyburger,
+ /obj/item/clothing/head/wizard/fake,
+ )
+ result = /obj/item/weapon/reagent_containers/food/snacks/spellburger
+
+/datum/recipe/spellburger
+ appliance = GRILL
+ items = list(
+ /obj/item/weapon/reagent_containers/food/snacks/monkeyburger,
+ /obj/item/clothing/head/wizard,
+ )
+ result = /obj/item/weapon/reagent_containers/food/snacks/spellburger
+
+/datum/recipe/bigbiteburger
+ appliance = GRILL
+ items = list(
+ /obj/item/weapon/reagent_containers/food/snacks/monkeyburger,
+ /obj/item/weapon/reagent_containers/food/snacks/meat,
+ /obj/item/weapon/reagent_containers/food/snacks/meat,
+ /obj/item/weapon/reagent_containers/food/snacks/meat,
+ )
+ reagents = list("egg" = 3)
+ reagent_mix = RECIPE_REAGENT_REPLACE
+ result = /obj/item/weapon/reagent_containers/food/snacks/bigbiteburger
+
+/datum/recipe/superbiteburger
+ appliance = GRILL
+ fruit = list("tomato" = 1)
+ reagents = list("sodiumchloride" = 5, "blackpepper" = 5)
+ items = list(
+ /obj/item/weapon/reagent_containers/food/snacks/bigbiteburger,
+ /obj/item/weapon/reagent_containers/food/snacks/dough,
+ /obj/item/weapon/reagent_containers/food/snacks/meat,
+ /obj/item/weapon/reagent_containers/food/snacks/cheesewedge,
+ /obj/item/weapon/reagent_containers/food/snacks/boiledegg,
+ )
+ result = /obj/item/weapon/reagent_containers/food/snacks/superbiteburger
+
+/datum/recipe/slimeburger
+ appliance = GRILL
+ reagents = list("slimejelly" = 5)
+ items = list(
+ /obj/item/weapon/reagent_containers/food/snacks/bun
+ )
+ result = /obj/item/weapon/reagent_containers/food/snacks/jellyburger/slime
+
+/datum/recipe/jellyburger
+ appliance = GRILL
+ reagents = list("cherryjelly" = 5)
+ items = list(
+ /obj/item/weapon/reagent_containers/food/snacks/bun
+ )
+ result = /obj/item/weapon/reagent_containers/food/snacks/jellyburger/cherry
+
+/datum/recipe/bearburger
+ appliance = GRILL
+ items = list(
+ /obj/item/weapon/reagent_containers/food/snacks/bun,
+ /obj/item/weapon/reagent_containers/food/snacks/bearmeat
+ )
+ result = /obj/item/weapon/reagent_containers/food/snacks/bearburger
+
+/datum/recipe/baconburger
+ appliance = GRILL
+ items = list(
+ /obj/item/weapon/reagent_containers/food/snacks/bun,
+ /obj/item/weapon/reagent_containers/food/snacks/meat,
+ /obj/item/weapon/reagent_containers/food/snacks/bacon,
+ /obj/item/weapon/reagent_containers/food/snacks/bacon
+ )
+ result = /obj/item/weapon/reagent_containers/food/snacks/burger/bacon
\ No newline at end of file
diff --git a/code/modules/food/recipes_microwave.dm b/code/modules/food/recipes_microwave.dm
index 0877869870..465b3f736a 100644
--- a/code/modules/food/recipes_microwave.dm
+++ b/code/modules/food/recipes_microwave.dm
@@ -3,7 +3,7 @@
/* No telebacon. just no...
-/datum/recipe/microwave/telebacon
+/datum/recipe/telebacon
items = list(
/obj/item/weapon/reagent_containers/food/snacks/meat,
/obj/item/device/assembly/signaler
@@ -11,7 +11,7 @@
result = /obj/item/weapon/reagent_containers/food/snacks/telebacon
I said no!
-/datum/recipe/microwave/syntitelebacon
+/datum/recipe/syntitelebacon
items = list(
/obj/item/weapon/reagent_containers/food/snacks/meat/syntiflesh,
/obj/item/device/assembly/signaler
@@ -19,21 +19,22 @@ I said no!
result = /obj/item/weapon/reagent_containers/food/snacks/telebacon
*/
-/datum/recipe/microwave/friedegg
+/datum/recipe/friedegg
reagents = list("sodiumchloride" = 1, "blackpepper" = 1)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/egg
)
result = /obj/item/weapon/reagent_containers/food/snacks/friedegg
-/datum/recipe/microwave/boiledegg
+/datum/recipe/boiledegg
reagents = list("water" = 5)
+ reagent_mix = RECIPE_REAGENT_REPLACE
items = list(
/obj/item/weapon/reagent_containers/food/snacks/egg
)
result = /obj/item/weapon/reagent_containers/food/snacks/boiledegg
-/datum/recipe/microwave/devilledegg
+/datum/recipe/devilledegg
fruit = list("chili" = 1)
reagents = list("sodiumchloride" = 2, "mayo" = 5)
items = list(
@@ -42,132 +43,7 @@ I said no!
)
result = /obj/item/weapon/reagent_containers/food/snacks/devilledegg
-/datum/recipe/microwave/dionaroast
- fruit = list("apple" = 1)
- reagents = list("pacid" = 5) //It dissolves the carapace. Still poisonous, though.
- items = list(/obj/item/weapon/holder/diona)
- result = /obj/item/weapon/reagent_containers/food/snacks/dionaroast
-
-/datum/recipe/microwave/jellydonut
- reagents = list("berryjuice" = 5, "sugar" = 5)
- items = list(
- /obj/item/weapon/reagent_containers/food/snacks/dough
- )
- result = /obj/item/weapon/reagent_containers/food/snacks/donut/jelly
-
-/datum/recipe/microwave/jellydonut/poisonberry
- reagents = list("poisonberryjuice" = 5, "sugar" = 5)
- items = list(
- /obj/item/weapon/reagent_containers/food/snacks/dough
- )
- result = /obj/item/weapon/reagent_containers/food/snacks/donut/poisonberry
-
-/datum/recipe/microwave/jellydonut/slime
- reagents = list("slimejelly" = 5, "sugar" = 5)
- items = list(
- /obj/item/weapon/reagent_containers/food/snacks/dough
- )
- result = /obj/item/weapon/reagent_containers/food/snacks/donut/slimejelly
-
-/datum/recipe/microwave/jellydonut/cherry
- reagents = list("cherryjelly" = 5, "sugar" = 5)
- items = list(
- /obj/item/weapon/reagent_containers/food/snacks/dough
- )
- result = /obj/item/weapon/reagent_containers/food/snacks/donut/cherryjelly
-
-/datum/recipe/microwave/donut
- reagents = list("sugar" = 5)
- items = list(
- /obj/item/weapon/reagent_containers/food/snacks/dough
- )
- result = /obj/item/weapon/reagent_containers/food/snacks/donut/normal
-
-/datum/recipe/microwave/humanburger
- items = list(
- /obj/item/weapon/reagent_containers/food/snacks/meat/human,
- /obj/item/weapon/reagent_containers/food/snacks/bun
- )
- result = /obj/item/weapon/reagent_containers/food/snacks/human/burger
-
-/datum/recipe/microwave/plainburger
- items = list(
- /obj/item/weapon/reagent_containers/food/snacks/bun,
- /obj/item/weapon/reagent_containers/food/snacks/meat //do not place this recipe before /datum/recipe/microwave/humanburger
- )
- result = /obj/item/weapon/reagent_containers/food/snacks/monkeyburger
-
-/datum/recipe/microwave/brainburger
- items = list(
- /obj/item/weapon/reagent_containers/food/snacks/bun,
- /obj/item/organ/internal/brain
- )
- result = /obj/item/weapon/reagent_containers/food/snacks/brainburger
-
-/datum/recipe/microwave/roburger
- items = list(
- /obj/item/weapon/reagent_containers/food/snacks/bun,
- /obj/item/robot_parts/head
- )
- result = /obj/item/weapon/reagent_containers/food/snacks/roburger
-
-/datum/recipe/microwave/xenoburger
- items = list(
- /obj/item/weapon/reagent_containers/food/snacks/bun,
- /obj/item/weapon/reagent_containers/food/snacks/xenomeat
- )
- result = /obj/item/weapon/reagent_containers/food/snacks/xenoburger
-
-/datum/recipe/microwave/fishburger
- items = list(
- /obj/item/weapon/reagent_containers/food/snacks/bun,
- /obj/item/weapon/reagent_containers/food/snacks/carpmeat
- )
- result = /obj/item/weapon/reagent_containers/food/snacks/fishburger
-
-/datum/recipe/microwave/tofuburger
- items = list(
- /obj/item/weapon/reagent_containers/food/snacks/bun,
- /obj/item/weapon/reagent_containers/food/snacks/tofu
- )
- result = /obj/item/weapon/reagent_containers/food/snacks/tofuburger
-
-/datum/recipe/microwave/ghostburger
- items = list(
- /obj/item/weapon/reagent_containers/food/snacks/bun,
- /obj/item/weapon/ectoplasm //where do you even find this stuff
- )
- result = /obj/item/weapon/reagent_containers/food/snacks/ghostburger
-
-/datum/recipe/microwave/clownburger
- items = list(
- /obj/item/weapon/reagent_containers/food/snacks/bun,
- /obj/item/clothing/mask/gas/clown_hat
- )
- result = /obj/item/weapon/reagent_containers/food/snacks/clownburger
-
-/datum/recipe/microwave/mimeburger
- items = list(
- /obj/item/weapon/reagent_containers/food/snacks/bun,
- /obj/item/clothing/head/beret
- )
- result = /obj/item/weapon/reagent_containers/food/snacks/mimeburger
-
-/datum/recipe/microwave/bunbun
- items = list(
- /obj/item/weapon/reagent_containers/food/snacks/bun,
- /obj/item/weapon/reagent_containers/food/snacks/bun
- )
- result = /obj/item/weapon/reagent_containers/food/snacks/bunbun
-
-/datum/recipe/microwave/hotdog
- items = list(
- /obj/item/weapon/reagent_containers/food/snacks/bun,
- /obj/item/weapon/reagent_containers/food/snacks/sausage
- )
- result = /obj/item/weapon/reagent_containers/food/snacks/hotdog
-
-/datum/recipe/microwave/waffles
+/datum/recipe/waffles
reagents = list("sugar" = 10)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/dough,
@@ -175,7 +51,7 @@ I said no!
)
result = /obj/item/weapon/reagent_containers/food/snacks/waffles
-/datum/recipe/microwave/donkpocket
+/datum/recipe/donkpocket
items = list(
/obj/item/weapon/reagent_containers/food/snacks/dough,
/obj/item/weapon/reagent_containers/food/snacks/meatball
@@ -184,77 +60,36 @@ I said no!
proc/warm_up(var/obj/item/weapon/reagent_containers/food/snacks/donkpocket/being_cooked)
being_cooked.heat()
make_food(var/obj/container as obj)
- var/obj/item/weapon/reagent_containers/food/snacks/donkpocket/being_cooked = ..(container)
- warm_up(being_cooked)
- return being_cooked
+ . = ..(container)
+ for (var/obj/item/weapon/reagent_containers/food/snacks/donkpocket/D in .)
+ if (!D.warm)
+ warm_up(D)
-/datum/recipe/microwave/donkpocket/warm
+/datum/recipe/donkpocket/warm
reagents = list() //This is necessary since this is a child object of the above recipe and we don't want donk pockets to need flour
items = list(
/obj/item/weapon/reagent_containers/food/snacks/donkpocket
)
result = /obj/item/weapon/reagent_containers/food/snacks/donkpocket //SPECIAL
- make_food(var/obj/container as obj)
- var/obj/item/weapon/reagent_containers/food/snacks/donkpocket/being_cooked = locate() in container
- if(being_cooked && !being_cooked.warm)
- warm_up(being_cooked)
- return being_cooked
-/datum/recipe/microwave/meatbread
+/datum/recipe/omelette
items = list(
- /obj/item/weapon/reagent_containers/food/snacks/dough,
- /obj/item/weapon/reagent_containers/food/snacks/dough,
- /obj/item/weapon/reagent_containers/food/snacks/dough,
- /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/cheesewedge,
- /obj/item/weapon/reagent_containers/food/snacks/cheesewedge,
- /obj/item/weapon/reagent_containers/food/snacks/cheesewedge,
- )
- result = /obj/item/weapon/reagent_containers/food/snacks/sliceable/meatbread
-
-/datum/recipe/microwave/xenomeatbread
- items = list(
- /obj/item/weapon/reagent_containers/food/snacks/dough,
- /obj/item/weapon/reagent_containers/food/snacks/dough,
- /obj/item/weapon/reagent_containers/food/snacks/dough,
- /obj/item/weapon/reagent_containers/food/snacks/xenomeat,
- /obj/item/weapon/reagent_containers/food/snacks/xenomeat,
- /obj/item/weapon/reagent_containers/food/snacks/xenomeat,
- /obj/item/weapon/reagent_containers/food/snacks/cheesewedge,
- /obj/item/weapon/reagent_containers/food/snacks/cheesewedge,
- /obj/item/weapon/reagent_containers/food/snacks/cheesewedge,
- )
- result = /obj/item/weapon/reagent_containers/food/snacks/sliceable/xenomeatbread
-
-/datum/recipe/microwave/bananabread
- fruit = list("banana" = 1)
- reagents = list("milk" = 5, "sugar" = 15)
- items = list(
- /obj/item/weapon/reagent_containers/food/snacks/dough,
- /obj/item/weapon/reagent_containers/food/snacks/dough,
- /obj/item/weapon/reagent_containers/food/snacks/dough
- )
- result = /obj/item/weapon/reagent_containers/food/snacks/sliceable/bananabread
-
-/datum/recipe/microwave/omelette
- items = list(
- /obj/item/weapon/reagent_containers/food/snacks/egg,
- /obj/item/weapon/reagent_containers/food/snacks/egg,
/obj/item/weapon/reagent_containers/food/snacks/cheesewedge,
/obj/item/weapon/reagent_containers/food/snacks/cheesewedge,
)
+ reagents = list("egg" = 6)
+ reagent_mix = RECIPE_REAGENT_REPLACE
result = /obj/item/weapon/reagent_containers/food/snacks/omelette
-/datum/recipe/microwave/muffin
+/datum/recipe/muffin
reagents = list("milk" = 5, "sugar" = 5)
+ reagent_mix = RECIPE_REAGENT_REPLACE
items = list(
/obj/item/weapon/reagent_containers/food/snacks/dough,
)
result = /obj/item/weapon/reagent_containers/food/snacks/muffin
-/datum/recipe/microwave/eggplantparm
+/datum/recipe/eggplantparm
fruit = list("eggplant" = 1)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/cheesewedge,
@@ -262,218 +97,102 @@ I said no!
)
result = /obj/item/weapon/reagent_containers/food/snacks/eggplantparm
-/datum/recipe/microwave/soylenviridians
+/datum/recipe/soylenviridians
fruit = list("soybeans" = 1)
reagents = list("flour" = 10)
+ reagent_mix = RECIPE_REAGENT_REPLACE
result = /obj/item/weapon/reagent_containers/food/snacks/soylenviridians
-/datum/recipe/microwave/soylentgreen
+/datum/recipe/soylentgreen
reagents = list("flour" = 10)
+ reagent_mix = RECIPE_REAGENT_REPLACE
items = list(
/obj/item/weapon/reagent_containers/food/snacks/meat/human,
/obj/item/weapon/reagent_containers/food/snacks/meat/human
)
result = /obj/item/weapon/reagent_containers/food/snacks/soylentgreen
-/datum/recipe/microwave/meatpie
- items = list(
- /obj/item/weapon/reagent_containers/food/snacks/sliceable/flatdough,
- /obj/item/weapon/reagent_containers/food/snacks/meat,
- )
- result = /obj/item/weapon/reagent_containers/food/snacks/meatpie
-
-/datum/recipe/microwave/tofupie
- items = list(
- /obj/item/weapon/reagent_containers/food/snacks/sliceable/flatdough,
- /obj/item/weapon/reagent_containers/food/snacks/tofu,
- )
- result = /obj/item/weapon/reagent_containers/food/snacks/tofupie
-
-/datum/recipe/microwave/xemeatpie
- items = list(
- /obj/item/weapon/reagent_containers/food/snacks/sliceable/flatdough,
- /obj/item/weapon/reagent_containers/food/snacks/xenomeat,
- )
- result = /obj/item/weapon/reagent_containers/food/snacks/xemeatpie
-
-/datum/recipe/microwave/pie
- fruit = list("banana" = 1)
- reagents = list("sugar" = 5)
- items = list(/obj/item/weapon/reagent_containers/food/snacks/sliceable/flatdough)
- result = /obj/item/weapon/reagent_containers/food/snacks/pie
-
-/datum/recipe/microwave/cherrypie
- fruit = list("cherries" = 1)
- reagents = list("sugar" = 10)
- items = list(
- /obj/item/weapon/reagent_containers/food/snacks/sliceable/flatdough,
- )
- result = /obj/item/weapon/reagent_containers/food/snacks/cherrypie
-
-/datum/recipe/microwave/berryclafoutis
+/datum/recipe/berryclafoutis
fruit = list("berries" = 1)
items = list(
- /obj/item/weapon/reagent_containers/food/snacks/sliceable/flatdough,
+ /obj/item/weapon/reagent_containers/food/snacks/sliceable/flatdough
)
result = /obj/item/weapon/reagent_containers/food/snacks/berryclafoutis/berry
-/datum/recipe/microwave/poisonberryclafoutis
+/datum/recipe/poisonberryclafoutis
fruit = list("poisonberries" = 1)
items = list(
- /obj/item/weapon/reagent_containers/food/snacks/sliceable/flatdough,
+ /obj/item/weapon/reagent_containers/food/snacks/sliceable/flatdough
)
result = /obj/item/weapon/reagent_containers/food/snacks/berryclafoutis/poison
-/datum/recipe/microwave/wingfangchu
+/datum/recipe/wingfangchu
reagents = list("soysauce" = 5)
items = list(
- /obj/item/weapon/reagent_containers/food/snacks/xenomeat,
+ /obj/item/weapon/reagent_containers/food/snacks/xenomeat
)
result = /obj/item/weapon/reagent_containers/food/snacks/wingfangchu
-/datum/recipe/microwave/chaosdonut
- reagents = list("frostoil" = 5, "capsaicin" = 5, "sugar" = 5)
- items = list(
- /obj/item/weapon/reagent_containers/food/snacks/dough
- )
- result = /obj/item/weapon/reagent_containers/food/snacks/donut/chaos
-
-/datum/recipe/microwave/humankabob
- items = list(
- /obj/item/stack/rods,
- /obj/item/weapon/reagent_containers/food/snacks/meat/human,
- /obj/item/weapon/reagent_containers/food/snacks/meat/human,
- )
- result = /obj/item/weapon/reagent_containers/food/snacks/human/kabob
-
-/datum/recipe/microwave/kabob //Do not put before humankabob
- items = list(
- /obj/item/stack/rods,
- /obj/item/weapon/reagent_containers/food/snacks/meat,
- /obj/item/weapon/reagent_containers/food/snacks/meat,
- )
- result = /obj/item/weapon/reagent_containers/food/snacks/monkeykabob
-
-/datum/recipe/microwave/tofukabob
- items = list(
- /obj/item/stack/rods,
- /obj/item/weapon/reagent_containers/food/snacks/tofu,
- /obj/item/weapon/reagent_containers/food/snacks/tofu,
- )
- result = /obj/item/weapon/reagent_containers/food/snacks/tofukabob
-
-/datum/recipe/microwave/tofubread
- items = list(
- /obj/item/weapon/reagent_containers/food/snacks/dough,
- /obj/item/weapon/reagent_containers/food/snacks/dough,
- /obj/item/weapon/reagent_containers/food/snacks/dough,
- /obj/item/weapon/reagent_containers/food/snacks/tofu,
- /obj/item/weapon/reagent_containers/food/snacks/tofu,
- /obj/item/weapon/reagent_containers/food/snacks/tofu,
- /obj/item/weapon/reagent_containers/food/snacks/cheesewedge,
- /obj/item/weapon/reagent_containers/food/snacks/cheesewedge,
- /obj/item/weapon/reagent_containers/food/snacks/cheesewedge,
- )
- result = /obj/item/weapon/reagent_containers/food/snacks/sliceable/tofubread
-
-/datum/recipe/microwave/loadedbakedpotato
+/datum/recipe/loadedbakedpotato
fruit = list("potato" = 1)
items = list(/obj/item/weapon/reagent_containers/food/snacks/cheesewedge)
result = /obj/item/weapon/reagent_containers/food/snacks/loadedbakedpotato
+
+/datum/recipe/microchips
+ appliance = MICROWAVE
+ items = list(
+ /obj/item/weapon/reagent_containers/food/snacks/rawsticks
+ )
+ result = /obj/item/weapon/reagent_containers/food/snacks/microchips
-/datum/recipe/microwave/mashedpotato
+/datum/recipe/mashedpotato
fruit = list("potato" = 1)
result = /obj/item/weapon/reagent_containers/food/snacks/mashedpotato
-/datum/recipe/microwave/bangersandmash
+/datum/recipe/bangersandmash
items = list(
/obj/item/weapon/reagent_containers/food/snacks/mashedpotato,
/obj/item/weapon/reagent_containers/food/snacks/sausage,
)
result = /obj/item/weapon/reagent_containers/food/snacks/bangersandmash
-/datum/recipe/microwave/cheesymash
+/datum/recipe/cheesymash
items = list(
/obj/item/weapon/reagent_containers/food/snacks/mashedpotato,
/obj/item/weapon/reagent_containers/food/snacks/cheesewedge,
)
result = /obj/item/weapon/reagent_containers/food/snacks/cheesymash
-/datum/recipe/microwave/blackpudding
+/datum/recipe/blackpudding
reagents = list("blood" = 5)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/sausage,
)
result = /obj/item/weapon/reagent_containers/food/snacks/blackpudding
-/datum/recipe/microwave/cheesyfries
- items = list(
- /obj/item/weapon/reagent_containers/food/snacks/fries,
- /obj/item/weapon/reagent_containers/food/snacks/cheesewedge,
- )
- result = /obj/item/weapon/reagent_containers/food/snacks/cheesyfries
-
-/datum/recipe/microwave/cubancarp
- fruit = list("chili" = 1)
- items = list(
- /obj/item/weapon/reagent_containers/food/snacks/dough,
- /obj/item/weapon/reagent_containers/food/snacks/carpmeat
- )
- result = /obj/item/weapon/reagent_containers/food/snacks/cubancarp
-
-/datum/recipe/microwave/popcorn
+/datum/recipe/popcorn
fruit = list("corn" = 1)
result = /obj/item/weapon/reagent_containers/food/snacks/popcorn
-/datum/recipe/microwave/cookie
- reagents = list("milk" = 5, "sugar" = 5)
- items = list(
- /obj/item/weapon/reagent_containers/food/snacks/dough,
- /obj/item/weapon/reagent_containers/food/snacks/chocolatebar,
- )
- result = /obj/item/weapon/reagent_containers/food/snacks/cookie
-
-/datum/recipe/microwave/fortunecookie
+/datum/recipe/fortunecookie
reagents = list("sugar" = 5)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/doughslice,
/obj/item/weapon/paper,
)
result = /obj/item/weapon/reagent_containers/food/snacks/fortunecookie
- make_food(var/obj/container as obj)
- var/obj/item/weapon/paper/paper = locate() in container
- paper.loc = null //prevent deletion
- var/obj/item/weapon/reagent_containers/food/snacks/fortunecookie/being_cooked = ..(container)
- paper.loc = being_cooked
- being_cooked.trash = paper //so the paper is left behind as trash without special-snowflake(TM Nodrak) code ~carn
- return being_cooked
- check_items(var/obj/container as obj)
- . = ..()
- if (.)
- var/obj/item/weapon/paper/paper = locate() in container
- if (!paper)
- return 0
- if (!paper.info)
- return 0
- return .
-/datum/recipe/microwave/meatsteak
+/datum/recipe/meatsteak
reagents = list("sodiumchloride" = 1, "blackpepper" = 1)
items = list(/obj/item/weapon/reagent_containers/food/snacks/meat)
result = /obj/item/weapon/reagent_containers/food/snacks/meatsteak
+
+/datum/recipe/syntisteak
+ reagents = list("sodiumchloride" = 1, "blackpepper" = 1)
+ items = list(/obj/item/weapon/reagent_containers/food/snacks/meat/syntiflesh)
+ result = /obj/item/weapon/reagent_containers/food/snacks/meatsteak
-/datum/recipe/microwave/pizzamargherita
- fruit = list("tomato" = 1)
- items = list(
- /obj/item/weapon/reagent_containers/food/snacks/sliceable/flatdough,
- /obj/item/weapon/reagent_containers/food/snacks/cheesewedge,
- /obj/item/weapon/reagent_containers/food/snacks/cheesewedge,
- /obj/item/weapon/reagent_containers/food/snacks/cheesewedge,
- /obj/item/weapon/reagent_containers/food/snacks/cheesewedge
- )
- result = /obj/item/weapon/reagent_containers/food/snacks/sliceable/pizza/margherita
-
-/datum/recipe/microwave/pizzahawaiian
+/datum/recipe/pizzahawaiian
fruit = list("tomato" = 1, "pineapple" = 1)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/sliceable/flatdough,
@@ -482,160 +201,57 @@ I said no!
)
result = /obj/item/weapon/reagent_containers/food/snacks/sliceable/pizza/pineapple
-/datum/recipe/microwave/meatpizza
- fruit = list("tomato" = 1)
- items = list(
- /obj/item/weapon/reagent_containers/food/snacks/sliceable/flatdough,
- /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/cheesewedge
- )
- result = /obj/item/weapon/reagent_containers/food/snacks/sliceable/pizza/meatpizza
-
-/datum/recipe/microwave/mushroompizza
- fruit = list("mushroom" = 5, "tomato" = 1)
- items = list(
- /obj/item/weapon/reagent_containers/food/snacks/sliceable/flatdough,
- /obj/item/weapon/reagent_containers/food/snacks/cheesewedge
- )
- result = /obj/item/weapon/reagent_containers/food/snacks/sliceable/pizza/mushroompizza
-
-/datum/recipe/microwave/vegetablepizza
- fruit = list("eggplant" = 1, "carrot" = 1, "corn" = 1, "tomato" = 1)
- items = list(
- /obj/item/weapon/reagent_containers/food/snacks/sliceable/flatdough,
- /obj/item/weapon/reagent_containers/food/snacks/cheesewedge
- )
- result = /obj/item/weapon/reagent_containers/food/snacks/sliceable/pizza/vegetablepizza
-
-/datum/recipe/microwave/spacylibertyduff
+/datum/recipe/spacylibertyduff
reagents = list("water" = 5, "vodka" = 5, "psilocybin" = 5)
result = /obj/item/weapon/reagent_containers/food/snacks/spacylibertyduff
-/datum/recipe/microwave/amanitajelly
+/datum/recipe/amanitajelly
reagents = list("water" = 5, "vodka" = 5, "amatoxin" = 5)
result = /obj/item/weapon/reagent_containers/food/snacks/amanitajelly
- make_food(var/obj/container as obj)
- var/obj/item/weapon/reagent_containers/food/snacks/amanitajelly/being_cooked = ..(container)
+
+/datum/recipe/amanitajelly/make_food(var/obj/container as obj)
+ . = ..(container)
+ for(var/obj/item/weapon/reagent_containers/food/snacks/amanitajelly/being_cooked in .)
being_cooked.reagents.del_reagent("amatoxin")
- return being_cooked
-/datum/recipe/microwave/meatballsoup
+/datum/recipe/meatballsoup
fruit = list("carrot" = 1, "potato" = 1)
reagents = list("water" = 10)
items = list(/obj/item/weapon/reagent_containers/food/snacks/meatball)
result = /obj/item/weapon/reagent_containers/food/snacks/meatballsoup
-/datum/recipe/microwave/vegetablesoup
+/datum/recipe/vegetablesoup
fruit = list("carrot" = 1, "potato" = 1, "corn" = 1, "eggplant" = 1)
reagents = list("water" = 10)
result = /obj/item/weapon/reagent_containers/food/snacks/vegetablesoup
-/datum/recipe/microwave/nettlesoup
+/datum/recipe/nettlesoup
fruit = list("nettle" = 1, "potato" = 1)
- reagents = list("water" = 10)
- items = list(
- /obj/item/weapon/reagent_containers/food/snacks/egg
- )
+ reagents = list("water" = 10, "egg" = 3)
result = /obj/item/weapon/reagent_containers/food/snacks/nettlesoup
-/datum/recipe/microwave/wishsoup
+/datum/recipe/wishsoup
reagents = list("water" = 20)
result= /obj/item/weapon/reagent_containers/food/snacks/wishsoup
-/datum/recipe/microwave/hotchili
+/datum/recipe/hotchili
fruit = list("chili" = 1, "tomato" = 1)
items = list(/obj/item/weapon/reagent_containers/food/snacks/meat)
result = /obj/item/weapon/reagent_containers/food/snacks/hotchili
-/datum/recipe/microwave/coldchili
+/datum/recipe/coldchili
fruit = list("icechili" = 1, "tomato" = 1)
items = list(/obj/item/weapon/reagent_containers/food/snacks/meat)
result = /obj/item/weapon/reagent_containers/food/snacks/coldchili
-/datum/recipe/microwave/amanita_pie
- reagents = list("amatoxin" = 5)
- items = list(/obj/item/weapon/reagent_containers/food/snacks/sliceable/flatdough)
- result = /obj/item/weapon/reagent_containers/food/snacks/amanita_pie
-
-/datum/recipe/microwave/plump_pie
- fruit = list("plumphelmet" = 1)
- items = list(/obj/item/weapon/reagent_containers/food/snacks/sliceable/flatdough)
- result = /obj/item/weapon/reagent_containers/food/snacks/plump_pie
-
-/datum/recipe/microwave/spellburger
- items = list(
- /obj/item/weapon/reagent_containers/food/snacks/monkeyburger,
- /obj/item/clothing/head/wizard/fake,
- )
- result = /obj/item/weapon/reagent_containers/food/snacks/spellburger
-
-/datum/recipe/microwave/spellburger
- items = list(
- /obj/item/weapon/reagent_containers/food/snacks/monkeyburger,
- /obj/item/clothing/head/wizard,
- )
- result = /obj/item/weapon/reagent_containers/food/snacks/spellburger
-
-/datum/recipe/microwave/bigbiteburger
- items = list(
- /obj/item/weapon/reagent_containers/food/snacks/monkeyburger,
- /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/egg,
- )
- result = /obj/item/weapon/reagent_containers/food/snacks/bigbiteburger
-
-/datum/recipe/microwave/enchiladas
- fruit = list("chili" = 2, "corn" = 1)
- items = list(/obj/item/weapon/reagent_containers/food/snacks/cutlet)
- result = /obj/item/weapon/reagent_containers/food/snacks/enchiladas
-
-/datum/recipe/microwave/creamcheesebread
- items = list(
- /obj/item/weapon/reagent_containers/food/snacks/dough,
- /obj/item/weapon/reagent_containers/food/snacks/dough,
- /obj/item/weapon/reagent_containers/food/snacks/cheesewedge,
- /obj/item/weapon/reagent_containers/food/snacks/cheesewedge,
- )
- result = /obj/item/weapon/reagent_containers/food/snacks/sliceable/creamcheesebread
-
-/datum/recipe/microwave/monkeysdelight
- fruit = list("banana" = 1)
- reagents = list("sodiumchloride" = 1, "blackpepper" = 1, "flour" = 10)
- items = list(
- /obj/item/weapon/reagent_containers/food/snacks/monkeycube
- )
- result = /obj/item/weapon/reagent_containers/food/snacks/monkeysdelight
-
-/datum/recipe/microwave/baguette
- reagents = list("sodiumchloride" = 1, "blackpepper" = 1, "yeast" = 5)
- items = list(
- /obj/item/weapon/reagent_containers/food/snacks/dough,
- /obj/item/weapon/reagent_containers/food/snacks/dough,
- )
- result = /obj/item/weapon/reagent_containers/food/snacks/baguette
-
-/datum/recipe/microwave/croissant
- reagents = list("sodiumchloride" = 1, "water" = 5, "milk" = 5, "yeast" = 5)
- items = list(/obj/item/weapon/reagent_containers/food/snacks/dough)
- result = /obj/item/weapon/reagent_containers/food/snacks/croissant
-
-/datum/recipe/microwave/fishandchips
+/datum/recipe/fishandchips
items = list(
/obj/item/weapon/reagent_containers/food/snacks/fries,
/obj/item/weapon/reagent_containers/food/snacks/carpmeat,
)
result = /obj/item/weapon/reagent_containers/food/snacks/fishandchips
-/datum/recipe/microwave/bread
- reagents = list("yeast" = 5)
- items = list(/obj/item/weapon/reagent_containers/food/snacks/dough)
- result = /obj/item/weapon/reagent_containers/food/snacks/sliceable/bread
-
-/datum/recipe/microwave/sandwich
+/datum/recipe/sandwich
items = list(
/obj/item/weapon/reagent_containers/food/snacks/meatsteak,
/obj/item/weapon/reagent_containers/food/snacks/slice/bread,
@@ -644,13 +260,13 @@ I said no!
)
result = /obj/item/weapon/reagent_containers/food/snacks/sandwich
-/datum/recipe/microwave/toastedsandwich
+/datum/recipe/toastedsandwich
items = list(
/obj/item/weapon/reagent_containers/food/snacks/sandwich
)
result = /obj/item/weapon/reagent_containers/food/snacks/toastedsandwich
-/datum/recipe/microwave/peanutbutterjellysandwich
+/datum/recipe/peanutbutterjellysandwich
reagents = list("cherryjelly" = 5, "peanutbutter" = 5)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/slice/bread,
@@ -658,7 +274,7 @@ I said no!
)
result = /obj/item/weapon/reagent_containers/food/snacks/jellysandwich/peanutbutter
-/datum/recipe/microwave/grilledcheese
+/datum/recipe/grilledcheese
items = list(
/obj/item/weapon/reagent_containers/food/snacks/slice/bread,
/obj/item/weapon/reagent_containers/food/snacks/slice/bread,
@@ -666,12 +282,12 @@ I said no!
)
result = /obj/item/weapon/reagent_containers/food/snacks/grilledcheese
-/datum/recipe/microwave/tomatosoup
+/datum/recipe/tomatosoup
fruit = list("tomato" = 2)
reagents = list("water" = 10)
result = /obj/item/weapon/reagent_containers/food/snacks/tomatosoup
-/datum/recipe/microwave/rofflewaffles
+/datum/recipe/rofflewaffles
reagents = list("psilocybin" = 5, "sugar" = 10)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/dough,
@@ -679,27 +295,27 @@ I said no!
)
result = /obj/item/weapon/reagent_containers/food/snacks/rofflewaffles
-/datum/recipe/microwave/stew
+/datum/recipe/stew
fruit = list("potato" = 1, "tomato" = 1, "carrot" = 1, "eggplant" = 1, "mushroom" = 1)
reagents = list("water" = 10)
items = list(/obj/item/weapon/reagent_containers/food/snacks/meat)
result = /obj/item/weapon/reagent_containers/food/snacks/stew
-/datum/recipe/microwave/slimetoast
+/datum/recipe/slimetoast
reagents = list("slimejelly" = 5)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/slice/bread,
)
result = /obj/item/weapon/reagent_containers/food/snacks/jelliedtoast/slime
-/datum/recipe/microwave/jelliedtoast
+/datum/recipe/jelliedtoast
reagents = list("cherryjelly" = 5)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/slice/bread,
)
result = /obj/item/weapon/reagent_containers/food/snacks/jelliedtoast/cherry
-/datum/recipe/microwave/milosoup
+/datum/recipe/milosoup
reagents = list("water" = 10)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/soydope,
@@ -709,7 +325,7 @@ I said no!
)
result = /obj/item/weapon/reagent_containers/food/snacks/milosoup
-/datum/recipe/microwave/stewedsoymeat
+/datum/recipe/stewedsoymeat
fruit = list("carrot" = 1, "tomato" = 1)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/soydope,
@@ -717,39 +333,28 @@ I said no!
)
result = /obj/item/weapon/reagent_containers/food/snacks/stewedsoymeat
-/*/datum/recipe/microwave/spagetti We have the processor now
- items = list(
- /obj/item/weapon/reagent_containers/food/snacks/doughslice
- )
- result= /obj/item/weapon/reagent_containers/food/snacks/spagetti*/
-
-/datum/recipe/microwave/boiledspagetti
+/datum/recipe/boiledspagetti
reagents = list("water" = 5)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/spagetti,
)
result = /obj/item/weapon/reagent_containers/food/snacks/boiledspagetti
-/datum/recipe/microwave/boiledrice
+/datum/recipe/boiledrice
reagents = list("water" = 5, "rice" = 10)
result = /obj/item/weapon/reagent_containers/food/snacks/boiledrice
-/datum/recipe/microwave/ricepudding
+/datum/recipe/ricepudding
reagents = list("milk" = 5, "rice" = 10)
result = /obj/item/weapon/reagent_containers/food/snacks/ricepudding
-/datum/recipe/microwave/pastatomato
+/datum/recipe/pastatomato
fruit = list("tomato" = 2)
reagents = list("water" = 5)
items = list(/obj/item/weapon/reagent_containers/food/snacks/spagetti)
result = /obj/item/weapon/reagent_containers/food/snacks/pastatomato
-/datum/recipe/microwave/poppypretzel
- fruit = list("poppy" = 1)
- items = list(/obj/item/weapon/reagent_containers/food/snacks/dough)
- result = /obj/item/weapon/reagent_containers/food/snacks/poppypretzel
-
-/datum/recipe/microwave/meatballspagetti
+/datum/recipe/meatballspagetti
reagents = list("water" = 5)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/spagetti,
@@ -758,7 +363,7 @@ I said no!
)
result = /obj/item/weapon/reagent_containers/food/snacks/meatballspagetti
-/datum/recipe/microwave/spesslaw
+/datum/recipe/spesslaw
reagents = list("water" = 5)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/spagetti,
@@ -769,43 +374,17 @@ I said no!
)
result = /obj/item/weapon/reagent_containers/food/snacks/spesslaw
-/datum/recipe/microwave/superbiteburger
- fruit = list("tomato" = 1)
- reagents = list("sodiumchloride" = 5, "blackpepper" = 5)
- items = list(
- /obj/item/weapon/reagent_containers/food/snacks/bigbiteburger,
- /obj/item/weapon/reagent_containers/food/snacks/dough,
- /obj/item/weapon/reagent_containers/food/snacks/meat,
- /obj/item/weapon/reagent_containers/food/snacks/cheesewedge,
- /obj/item/weapon/reagent_containers/food/snacks/boiledegg,
- )
- result = /obj/item/weapon/reagent_containers/food/snacks/superbiteburger
-
-/datum/recipe/microwave/candiedapple
+/datum/recipe/candiedapple
fruit = list("apple" = 1)
reagents = list("water" = 5, "sugar" = 5)
result = /obj/item/weapon/reagent_containers/food/snacks/candiedapple
-/datum/recipe/microwave/applepie
+/datum/recipe/applepie
fruit = list("apple" = 1)
items = list(/obj/item/weapon/reagent_containers/food/snacks/sliceable/flatdough)
result = /obj/item/weapon/reagent_containers/food/snacks/applepie
-/datum/recipe/microwave/slimeburger
- reagents = list("slimejelly" = 5)
- items = list(
- /obj/item/weapon/reagent_containers/food/snacks/bun
- )
- result = /obj/item/weapon/reagent_containers/food/snacks/jellyburger/slime
-
-/datum/recipe/microwave/jellyburger
- reagents = list("cherryjelly" = 5)
- items = list(
- /obj/item/weapon/reagent_containers/food/snacks/bun
- )
- result = /obj/item/weapon/reagent_containers/food/snacks/jellyburger/cherry
-
-/datum/recipe/microwave/twobread
+/datum/recipe/twobread
reagents = list("wine" = 5)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/slice/bread,
@@ -813,7 +392,7 @@ I said no!
)
result = /obj/item/weapon/reagent_containers/food/snacks/twobread
-/datum/recipe/microwave/slimesandwich
+/datum/recipe/slimesandwich
reagents = list("slimejelly" = 5)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/slice/bread,
@@ -821,7 +400,7 @@ I said no!
)
result = /obj/item/weapon/reagent_containers/food/snacks/jellysandwich/slime
-/datum/recipe/microwave/cherrysandwich
+/datum/recipe/cherrysandwich
reagents = list("cherryjelly" = 5)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/slice/bread,
@@ -829,45 +408,46 @@ I said no!
)
result = /obj/item/weapon/reagent_containers/food/snacks/jellysandwich/cherry
-/datum/recipe/microwave/bloodsoup
+/datum/recipe/bloodsoup
reagents = list("blood" = 30)
result = /obj/item/weapon/reagent_containers/food/snacks/bloodsoup
-/datum/recipe/microwave/slimesoup
+/datum/recipe/slimesoup
reagents = list("water" = 10, "slimejelly" = 5)
items = list()
result = /obj/item/weapon/reagent_containers/food/snacks/slimesoup
-/datum/recipe/microwave/boiledslimeextract
+/datum/recipe/boiledslimeextract
reagents = list("water" = 5)
items = list(
/obj/item/slime_extract,
)
result = /obj/item/weapon/reagent_containers/food/snacks/boiledslimecore
-/datum/recipe/microwave/chocolateegg
+/datum/recipe/chocolateegg
items = list(
/obj/item/weapon/reagent_containers/food/snacks/egg,
/obj/item/weapon/reagent_containers/food/snacks/chocolatebar,
)
result = /obj/item/weapon/reagent_containers/food/snacks/chocolateegg
-/datum/recipe/microwave/sausage
+/datum/recipe/sausage
items = list(
/obj/item/weapon/reagent_containers/food/snacks/meatball,
/obj/item/weapon/reagent_containers/food/snacks/cutlet,
)
result = /obj/item/weapon/reagent_containers/food/snacks/sausage
+ result_quantity = 2
-/datum/recipe/microwave/fishfingers
- reagents = list("flour" = 10)
+/datum/recipe/fishfingers
+ reagents = list("flour" = 10, "egg" = 3)
items = list(
- /obj/item/weapon/reagent_containers/food/snacks/egg,
/obj/item/weapon/reagent_containers/food/snacks/carpmeat,
)
result = /obj/item/weapon/reagent_containers/food/snacks/fishfingers
+ reagent_mix = RECIPE_REAGENT_REPLACE
-/datum/recipe/microwave/zestfish
+/datum/recipe/zestfish
fruit = list("lemon" = 1)
reagents = list("sodiumchloride" = 3)
items = list(
@@ -875,7 +455,7 @@ I said no!
)
result = /obj/item/weapon/reagent_containers/food/snacks/zestfish
-/datum/recipe/microwave/limezestfish
+/datum/recipe/limezestfish
fruit = list("lime" = 1)
reagents = list("sodiumchloride" = 3)
items = list(
@@ -883,7 +463,7 @@ I said no!
)
result = /obj/item/weapon/reagent_containers/food/snacks/zestfish
-/datum/recipe/microwave/kudzudonburi
+/datum/recipe/kudzudonburi
fruit = list("kudzu" = 1)
reagents = list("rice" = 10)
items = list(
@@ -891,32 +471,28 @@ I said no!
)
result = /obj/item/weapon/reagent_containers/food/snacks/kudzudonburi
-/datum/recipe/microwave/mysterysoup
- reagents = list("water" = 10)
+/datum/recipe/mysterysoup
+ reagents = list("water" = 10, "egg" = 3)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/badrecipe,
/obj/item/weapon/reagent_containers/food/snacks/tofu,
- /obj/item/weapon/reagent_containers/food/snacks/egg,
/obj/item/weapon/reagent_containers/food/snacks/cheesewedge,
)
+ reagent_mix = RECIPE_REAGENT_REPLACE
result = /obj/item/weapon/reagent_containers/food/snacks/mysterysoup
-/datum/recipe/microwave/pumpkinpie
- fruit = list("pumpkin" = 1)
- reagents = list("milk" = 5, "sugar" = 5, "egg" = 3, "flour" = 10)
- result = /obj/item/weapon/reagent_containers/food/snacks/sliceable/pumpkinpie
-
-/datum/recipe/microwave/plumphelmetbiscuit
+/datum/recipe/plumphelmetbiscuit
fruit = list("plumphelmet" = 1)
reagents = list("water" = 5, "flour" = 5)
result = /obj/item/weapon/reagent_containers/food/snacks/plumphelmetbiscuit
-/datum/recipe/microwave/mushroomsoup
+/datum/recipe/mushroomsoup
fruit = list("mushroom" = 1)
reagents = list("water" = 5, "milk" = 5)
+ reagent_mix = RECIPE_REAGENT_REPLACE
result = /obj/item/weapon/reagent_containers/food/snacks/mushroomsoup
-/datum/recipe/microwave/chawanmushi
+/datum/recipe/chawanmushi
fruit = list("mushroom" = 1)
reagents = list("water" = 5, "soysauce" = 5)
items = list(
@@ -925,85 +501,85 @@ I said no!
)
result = /obj/item/weapon/reagent_containers/food/snacks/chawanmushi
-/datum/recipe/microwave/beetsoup
+/datum/recipe/beetsoup
fruit = list("whitebeet" = 1, "cabbage" = 1)
reagents = list("water" = 10)
result = /obj/item/weapon/reagent_containers/food/snacks/beetsoup
-/datum/recipe/microwave/appletart
- fruit = list("goldapple" = 1)
- reagents = list("sugar" = 5, "milk" = 5, "flour" = 10)
- items = list(
- /obj/item/weapon/reagent_containers/food/snacks/egg
- )
- result = /obj/item/weapon/reagent_containers/food/snacks/appletart
-
-/datum/recipe/microwave/tossedsalad
+/datum/recipe/tossedsalad
fruit = list("cabbage" = 2, "tomato" = 1, "carrot" = 1, "apple" = 1)
result = /obj/item/weapon/reagent_containers/food/snacks/tossedsalad
-/datum/recipe/microwave/flowersalad
+/datum/recipe/flowersalad
fruit = list("harebell" = 1, "poppy" = 1)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/roastedsunflower
)
result = /obj/item/weapon/reagent_containers/food/snacks/flowerchildsalad
-/datum/recipe/microwave/rosesalad
+/datum/recipe/rosesalad
fruit = list("harebell" = 1, "rose" = 1)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/roastedsunflower
)
result = /obj/item/weapon/reagent_containers/food/snacks/rosesalad
-/datum/recipe/microwave/aesirsalad
+/datum/recipe/aesirsalad
fruit = list("goldapple" = 1, "ambrosiadeus" = 1)
result = /obj/item/weapon/reagent_containers/food/snacks/aesirsalad
-/datum/recipe/microwave/validsalad
+/datum/recipe/validsalad
fruit = list("potato" = 1, "ambrosia" = 3)
items = list(/obj/item/weapon/reagent_containers/food/snacks/meatball)
result = /obj/item/weapon/reagent_containers/food/snacks/validsalad
- make_food(var/obj/container as obj)
- var/obj/item/weapon/reagent_containers/food/snacks/validsalad/being_cooked = ..(container)
+
+/datum/recipe/validsalad/make_food(var/obj/container as obj)
+ . = ..(container)
+ for (var/obj/item/weapon/reagent_containers/food/snacks/validsalad/being_cooked in .)
being_cooked.reagents.del_reagent("toxin")
- return being_cooked
-/datum/recipe/microwave/cracker
- reagents = list("sodiumchloride" = 1)
- items = list(
- /obj/item/weapon/reagent_containers/food/snacks/doughslice
- )
- result = /obj/item/weapon/reagent_containers/food/snacks/cracker
-
-/datum/recipe/microwave/stuffing
+/datum/recipe/stuffing
reagents = list("water" = 5, "sodiumchloride" = 1, "blackpepper" = 1)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/sliceable/bread,
)
result = /obj/item/weapon/reagent_containers/food/snacks/stuffing
-/datum/recipe/microwave/tofurkey
+/datum/recipe/tofurkey
items = list(
/obj/item/weapon/reagent_containers/food/snacks/tofu,
/obj/item/weapon/reagent_containers/food/snacks/tofu,
/obj/item/weapon/reagent_containers/food/snacks/stuffing,
)
result = /obj/item/weapon/reagent_containers/food/snacks/tofurkey
+
+/datum/recipe/mashedpotato
+ items = list(
+ /obj/item/weapon/reagent_containers/food/snacks/spreads/butter // to prevent conflicts with yellow curry
+ )
+ fruit = list("potato" = 1)
+ result = /obj/item/weapon/reagent_containers/food/snacks/mashedpotato
+
+/datum/recipe/icecreamsandwich
+ reagents = list("milk" = 5, "ice" = 5)
+ items = list(
+ /obj/item/weapon/reagent_containers/food/snacks/icecream
+ )
+ result = /obj/item/weapon/reagent_containers/food/snacks/icecreamsandwich
// Fuck Science!
-/datum/recipe/microwave/ruinedvirusdish
+/datum/recipe/ruinedvirusdish
items = list(
/obj/item/weapon/virusdish
)
result = /obj/item/weapon/ruinedvirusdish
-/datum/recipe/microwave/onionrings
+/datum/recipe/onionrings
fruit = list("onion" = 1)
reagents = list("flour" = 5)
result = /obj/item/weapon/reagent_containers/food/snacks/onionrings
-/datum/recipe/microwave/onionsoup
+/datum/recipe/onionsoup
fruit = list("onion" = 1)
reagents = list("water" = 10)
result = /obj/item/weapon/reagent_containers/food/snacks/onionsoup
@@ -1012,7 +588,7 @@ I said no!
// bs12 food port stuff
//////////////////////////////////////////
-/datum/recipe/microwave/taco
+/datum/recipe/taco
items = list(
/obj/item/weapon/reagent_containers/food/snacks/doughslice,
/obj/item/weapon/reagent_containers/food/snacks/cutlet,
@@ -1020,56 +596,50 @@ I said no!
)
result = /obj/item/weapon/reagent_containers/food/snacks/taco
-/datum/recipe/microwave/bun
+/datum/recipe/microwavebun
items = list(
/obj/item/weapon/reagent_containers/food/snacks/dough
)
result = /obj/item/weapon/reagent_containers/food/snacks/bun
-/datum/recipe/microwave/flatbread
+/datum/recipe/microwaveflatbread
items = list(
/obj/item/weapon/reagent_containers/food/snacks/sliceable/flatdough
)
result = /obj/item/weapon/reagent_containers/food/snacks/flatbread
-/datum/recipe/microwave/meatball
+/datum/recipe/meatball
items = list(
/obj/item/weapon/reagent_containers/food/snacks/rawmeatball
)
result = /obj/item/weapon/reagent_containers/food/snacks/meatball
-/datum/recipe/microwave/cutlet
+/datum/recipe/cutlet
items = list(
/obj/item/weapon/reagent_containers/food/snacks/rawcutlet
)
result = /obj/item/weapon/reagent_containers/food/snacks/cutlet
-/datum/recipe/microwave/fries
- items = list(
- /obj/item/weapon/reagent_containers/food/snacks/rawsticks
- )
- result = /obj/item/weapon/reagent_containers/food/snacks/fries
-
-/datum/recipe/microwave/roastedsunflowerseeds
+/datum/recipe/roastedsunflowerseeds
reagents = list("sodiumchloride" = 1, "cornoil" = 1)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/rawsunflower
)
result = /obj/item/weapon/reagent_containers/food/snacks/roastedsunflower
-/datum/recipe/microwave/roastedpeanutsunflowerseeds
+/datum/recipe/roastedpeanutsunflowerseeds
reagents = list("sodiumchloride" = 1, "peanutoil" = 1)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/rawsunflower
)
result = /obj/item/weapon/reagent_containers/food/snacks/roastedsunflower
-/datum/recipe/microwave/roastedpeanuts
+/datum/recipe/roastedpeanuts
fruit = list("peanut" = 2)
reagents = list("sodiumchloride" = 2, "cornoil" = 1)
result = /obj/item/weapon/reagent_containers/food/snacks/roastedpeanuts
-/datum/recipe/microwave/mint
+/datum/recipe/mint
reagents = list("sugar" = 5, "frostoil" = 5)
result = /obj/item/weapon/reagent_containers/food/snacks/mint
@@ -1077,7 +647,7 @@ I said no!
// TGstation food ports
////////////////////////
-/datum/recipe/microwave/meatbun
+/datum/recipe/meatbun
fruit = list("cabbage" = 1)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/meatball,
@@ -1085,14 +655,14 @@ I said no!
)
result = /obj/item/weapon/reagent_containers/food/snacks/meatbun
-/datum/recipe/microwave/sashimi
+/datum/recipe/sashimi
reagents = list("soysauce" = 5)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/carpmeat
)
result = /obj/item/weapon/reagent_containers/food/snacks/sashimi
-/datum/recipe/microwave/benedict
+/datum/recipe/benedict
items = list(
/obj/item/weapon/reagent_containers/food/snacks/cutlet,
/obj/item/weapon/reagent_containers/food/snacks/friedegg,
@@ -1100,19 +670,19 @@ I said no!
)
result = /obj/item/weapon/reagent_containers/food/snacks/benedict
-/datum/recipe/microwave/bakedbeans
+/datum/recipe/bakedbeans
fruit = list("soybeans" = 2)
reagents = list("ketchup" = 5)
result = /obj/item/weapon/reagent_containers/food/snacks/beans
-/datum/recipe/microwave/sugarcookie
+/datum/recipe/sugarcookie
items = list(
/obj/item/weapon/reagent_containers/food/snacks/dough
)
reagents = list("sugar" = 5, "egg" = 3)
result = /obj/item/weapon/reagent_containers/food/snacks/sugarcookie
-/datum/recipe/microwave/berrymuffin
+/datum/recipe/berrymuffin
reagents = list("milk" = 5, "sugar" = 5)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/dough
@@ -1120,7 +690,7 @@ I said no!
fruit = list("berries" = 1)
result = /obj/item/weapon/reagent_containers/food/snacks/berrymuffin/berry
-/datum/recipe/microwave/poisonberrymuffin
+/datum/recipe/poisonberrymuffin
reagents = list("milk" = 5, "sugar" = 5)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/dough
@@ -1128,7 +698,7 @@ I said no!
fruit = list("poisonberries" = 1)
result = /obj/item/weapon/reagent_containers/food/snacks/berrymuffin/poison
-/datum/recipe/microwave/ghostmuffin
+/datum/recipe/ghostmuffin
reagents = list("milk" = 5, "sugar" = 5)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/dough,
@@ -1137,7 +707,7 @@ I said no!
fruit = list("berries" = 1)
result = /obj/item/weapon/reagent_containers/food/snacks/ghostmuffin/berry
-/datum/recipe/microwave/poisonghostmuffin
+/datum/recipe/poisonghostmuffin
reagents = list("milk" = 5, "sugar" = 5)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/dough,
@@ -1146,7 +716,7 @@ I said no!
fruit = list("poisonberries" = 1)
result = /obj/item/weapon/reagent_containers/food/snacks/ghostmuffin/poison
-/datum/recipe/microwave/eggroll
+/datum/recipe/eggroll
reagents = list("soysauce" = 10)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/friedegg
@@ -1154,28 +724,29 @@ I said no!
fruit = list("cabbage" = 1)
result = /obj/item/weapon/reagent_containers/food/snacks/eggroll
-/datum/recipe/microwave/fruitsalad
+/datum/recipe/fruitsalad
fruit = list("orange" = 1, "apple" = 1, "grapes" = 1, "watermelon" = 1)
result = /obj/item/weapon/reagent_containers/food/snacks/fruitsalad
-/datum/recipe/microwave/eggbowl
+/datum/recipe/eggbowl
reagents = list("water" = 5, "rice" = 10, "egg" = 3)
result = /obj/item/weapon/reagent_containers/food/snacks/eggbowl
-/datum/recipe/microwave/porkbowl
+/datum/recipe/porkbowl
reagents = list("water" = 5, "rice" = 10)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/cutlet
)
result = /obj/item/weapon/reagent_containers/food/snacks/porkbowl
-/datum/recipe/microwave/tortilla
+/datum/recipe/microwavetortilla
+ reagents = list("flour" = 5, "water" = 5)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/sliceable/flatdough
)
result = /obj/item/weapon/reagent_containers/food/snacks/tortilla
-/datum/recipe/microwave/meatburrito
+/datum/recipe/meatburrito
fruit = list("soybeans" = 1)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/tortilla,
@@ -1184,7 +755,7 @@ I said no!
)
result = /obj/item/weapon/reagent_containers/food/snacks/meatburrito
-/datum/recipe/microwave/cheeseburrito
+/datum/recipe/cheeseburrito
fruit = list("soybeans" = 1)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/tortilla,
@@ -1193,21 +764,21 @@ I said no!
)
result = /obj/item/weapon/reagent_containers/food/snacks/cheeseburrito
-/datum/recipe/microwave/fuegoburrito
+/datum/recipe/fuegoburrito
fruit = list("soybeans" = 1, "chili" = 2)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/tortilla
)
result = /obj/item/weapon/reagent_containers/food/snacks/fuegoburrito
-/datum/recipe/microwave/nachos
+/datum/recipe/nachos
reagents = list("sodiumchloride" = 1)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/tortilla
)
result = /obj/item/weapon/reagent_containers/food/snacks/nachos
-/datum/recipe/microwave/cheesenachos
+/datum/recipe/cheesenachos
reagents = list("sodiumchloride" = 1)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/tortilla,
@@ -1215,7 +786,7 @@ I said no!
)
result = /obj/item/weapon/reagent_containers/food/snacks/cheesenachos
-/datum/recipe/microwave/cubannachos
+/datum/recipe/cubannachos
fruit = list("chili" = 1)
reagents = list("ketchup" = 5)
items = list(
@@ -1223,84 +794,26 @@ I said no!
)
result = /obj/item/weapon/reagent_containers/food/snacks/cubannachos
-/datum/recipe/microwave/curryrice
+/datum/recipe/curryrice
fruit = list("chili" = 1)
reagents = list("rice" = 10)
result = /obj/item/weapon/reagent_containers/food/snacks/curryrice
-/datum/recipe/microwave/piginblanket
+/datum/recipe/piginblanket
items = list(
/obj/item/weapon/reagent_containers/food/snacks/doughslice,
/obj/item/weapon/reagent_containers/food/snacks/sausage
)
result = /obj/item/weapon/reagent_containers/food/snacks/piginblanket
-// Cakes.
-/datum/recipe/microwave/cake
- reagents = list("milk" = 5, "flour" = 15, "sugar" = 15, "egg" = 9, "vanilla" = 1)
- result = /obj/item/weapon/reagent_containers/food/snacks/sliceable/plaincake
-
-/datum/recipe/microwave/cake/carrot
- fruit = list("carrot" = 1)
- reagents = list("milk" = 5, "flour" = 15, "egg" = 9,"sugar" = 5)
- result = /obj/item/weapon/reagent_containers/food/snacks/sliceable/carrotcake
-
-/datum/recipe/microwave/cake/cheese
- reagents = list("milk" = 5, "flour" = 15, "sugar" = 15, "egg" = 9)
- items = list(
- /obj/item/weapon/reagent_containers/food/snacks/cheesewedge,
- /obj/item/weapon/reagent_containers/food/snacks/cheesewedge
- )
- result = /obj/item/weapon/reagent_containers/food/snacks/sliceable/cheesecake
-
-/datum/recipe/microwave/cake/peanut
- fruit = list("peanut" = 3)
- reagents = list("milk" = 5, "flour" = 10, "sugar" = 5, "egg" = 6, "peanutbutter" = 5)
- result = /obj/item/weapon/reagent_containers/food/snacks/sliceable/peanutcake
-
-/datum/recipe/microwave/cake/orange
- fruit = list("orange" = 1)
- reagents = list("milk" = 5, "flour" = 15, "egg" = 9,"sugar" = 5)
- result = /obj/item/weapon/reagent_containers/food/snacks/sliceable/orangecake
-
-/datum/recipe/microwave/cake/lime
- fruit = list("lime" = 1)
- reagents = list("milk" = 5, "flour" = 15, "egg" = 9,"sugar" = 5)
- result = /obj/item/weapon/reagent_containers/food/snacks/sliceable/limecake
-
-/datum/recipe/microwave/cake/lemon
- fruit = list("lemon" = 1)
- reagents = list("milk" = 5, "flour" = 15, "egg" = 9,"sugar" = 5)
- result = /obj/item/weapon/reagent_containers/food/snacks/sliceable/lemoncake
-
-/datum/recipe/microwave/cake/chocolate
- items = list(/obj/item/weapon/reagent_containers/food/snacks/chocolatebar)
- reagents = list("milk" = 5, "flour" = 15, "egg" = 9,"sugar" = 5)
- result = /obj/item/weapon/reagent_containers/food/snacks/sliceable/chocolatecake
-
-/datum/recipe/microwave/cake/birthday
- reagents = list("milk" = 5, "flour" = 15, "sugar" = 15, "egg" = 9)
- items = list(/obj/item/clothing/head/cakehat)
- result = /obj/item/weapon/reagent_containers/food/snacks/sliceable/birthdaycake
-
-/datum/recipe/microwave/cake/apple
- fruit = list("apple" = 1)
- reagents = list("milk" = 5, "flour" = 15, "egg" = 9,"sugar" = 5)
- result = /obj/item/weapon/reagent_containers/food/snacks/sliceable/applecake
-
-/datum/recipe/microwave/cake/brain
- reagents = list("milk" = 5, "flour" = 15, "sugar" = 15, "egg" = 9)
- items = list(/obj/item/organ/internal/brain)
- result = /obj/item/weapon/reagent_containers/food/snacks/sliceable/braincake
-
-/datum/recipe/microwave/bagelplain
+/datum/recipe/bagelplain
reagents = list("water" = 5)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/bun
)
result = /obj/item/weapon/reagent_containers/food/snacks/bagelplain
-/datum/recipe/microwave/bagelsunflower
+/datum/recipe/bagelsunflower
reagents = list("water" = 5)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/bun,
@@ -1308,7 +821,7 @@ I said no!
)
result = /obj/item/weapon/reagent_containers/food/snacks/bagelsunflower
-/datum/recipe/microwave/bagelcheese
+/datum/recipe/bagelcheese
reagents = list("water" = 5)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/bun,
@@ -1316,7 +829,7 @@ I said no!
)
result = /obj/item/weapon/reagent_containers/food/snacks/bagelcheese
-/datum/recipe/microwave/bagelraisin
+/datum/recipe/bagelraisin
reagents = list("water" = 5)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/bun,
@@ -1324,7 +837,7 @@ I said no!
)
result = /obj/item/weapon/reagent_containers/food/snacks/bagelraisin
-/datum/recipe/microwave/bagelpoppy
+/datum/recipe/bagelpoppy
fruit = list("poppy" = 1)
reagents = list("water" = 5)
items = list(
@@ -1332,7 +845,7 @@ I said no!
)
result = /obj/item/weapon/reagent_containers/food/snacks/bagelpoppy
-/datum/recipe/microwave/bageleverything
+/datum/recipe/bageleverything
reagents = list("water" = 5)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/bun,
@@ -1340,10 +853,451 @@ I said no!
)
result = /obj/item/weapon/reagent_containers/food/snacks/bageleverything
-/datum/recipe/microwave/bageltwo
+/datum/recipe/bageltwo
reagents = list("water" = 5)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/bun,
/obj/item/device/soulstone
)
result = /obj/item/weapon/reagent_containers/food/snacks/bageltwo
+
+/////////////////////////////////////////////////////////////
+//Synnono Meme Foods
+//
+//Most recipes replace reagents with RECIPE_REAGENT_REPLACE
+//to simplify the end product and balance the amount of reagents
+//in some foods. Many require the space spice reagent/condiment
+//to reduce the risk of future recipe conflicts.
+/////////////////////////////////////////////////////////////
+
+
+/datum/recipe/redcurry
+ reagents = list("cream" = 5, "spacespice" = 2, "rice" = 5)
+ items = list(
+ /obj/item/weapon/reagent_containers/food/snacks/cutlet,
+ /obj/item/weapon/reagent_containers/food/snacks/cutlet
+ )
+ reagent_mix = RECIPE_REAGENT_REPLACE //Simplify end product
+ result = /obj/item/weapon/reagent_containers/food/snacks/redcurry
+
+/datum/recipe/greencurry
+ reagents = list("cream" = 5, "spacespice" = 2, "rice" = 5)
+ fruit = list("chili" = 1)
+ items = list(
+ /obj/item/weapon/reagent_containers/food/snacks/tofu,
+ /obj/item/weapon/reagent_containers/food/snacks/tofu
+ )
+ reagent_mix = RECIPE_REAGENT_REPLACE //Simplify end product
+ result = /obj/item/weapon/reagent_containers/food/snacks/greencurry
+
+/datum/recipe/yellowcurry
+ reagents = list("cream" = 5, "spacespice" = 2, "rice" = 5)
+ fruit = list("peanut" = 2, "potato" = 1)
+ reagent_mix = RECIPE_REAGENT_REPLACE //Simplify end product
+ result = /obj/item/weapon/reagent_containers/food/snacks/yellowcurry
+
+/datum/recipe/bearchili
+ fruit = list("chili" = 1, "tomato" = 1)
+ items = list(/obj/item/weapon/reagent_containers/food/snacks/bearmeat)
+ reagent_mix = RECIPE_REAGENT_REPLACE //Simplify end product
+ result = /obj/item/weapon/reagent_containers/food/snacks/bearchili
+
+/datum/recipe/bearstew
+ fruit = list("potato" = 1, "tomato" = 1, "carrot" = 1, "eggplant" = 1, "mushroom" = 1)
+ reagents = list("water" = 10)
+ items = list(/obj/item/weapon/reagent_containers/food/snacks/bearmeat)
+ reagent_mix = RECIPE_REAGENT_REPLACE //Simplify end product
+ result = /obj/item/weapon/reagent_containers/food/snacks/bearstew
+
+/datum/recipe/bibimbap
+ fruit = list("carrot" = 1, "cabbage" = 1, "mushroom" = 1)
+ reagents = list("rice" = 5, "spacespice" = 2)
+ items = list(
+ /obj/item/weapon/reagent_containers/food/snacks/egg,
+ /obj/item/weapon/reagent_containers/food/snacks/cutlet
+ )
+ reagent_mix = RECIPE_REAGENT_REPLACE //Simplify end product
+ result = /obj/item/weapon/reagent_containers/food/snacks/bibimbap
+
+/datum/recipe/friedrice
+ reagents = list("water" = 5, "rice" = 10, "soysauce" = 5)
+ fruit = list("carrot" = 1, "cabbage" = 1)
+ reagent_mix = RECIPE_REAGENT_REPLACE //Simplify end product
+ result = /obj/item/weapon/reagent_containers/food/snacks/friedrice
+
+/datum/recipe/lomein
+ reagents = list("water" = 5, "soysauce" = 5)
+ fruit = list("carrot" = 1, "cabbage" = 1)
+ items = list(
+ /obj/item/weapon/reagent_containers/food/snacks/spagetti
+ )
+ reagent_mix = RECIPE_REAGENT_REPLACE //Simplify end product
+ result = /obj/item/weapon/reagent_containers/food/snacks/lomein
+
+/datum/recipe/chickenfillet //Also just combinable, like burgers and hot dogs.
+ items = list(
+ /obj/item/weapon/reagent_containers/food/snacks/chickenkatsu,
+ /obj/item/weapon/reagent_containers/food/snacks/bun
+ )
+ result = /obj/item/weapon/reagent_containers/food/snacks/chickenfillet
+
+/datum/recipe/chilicheesefries
+ items = list(
+ /obj/item/weapon/reagent_containers/food/snacks/fries,
+ /obj/item/weapon/reagent_containers/food/snacks/cheesewedge,
+ /obj/item/weapon/reagent_containers/food/snacks/hotchili
+ )
+ reagent_mix = RECIPE_REAGENT_REPLACE //Simplify end product
+ result = /obj/item/weapon/reagent_containers/food/snacks/chilicheesefries
+
+/datum/recipe/meatbun
+ reagents = list("spacespice" = 1, "water" = 5)
+ items = list(
+ /obj/item/weapon/reagent_containers/food/snacks/doughslice,
+ /obj/item/weapon/reagent_containers/food/snacks/rawcutlet
+ )
+ reagent_mix = RECIPE_REAGENT_REPLACE //Water used up in cooking
+ result = /obj/item/weapon/reagent_containers/food/snacks/meatbun
+
+/datum/recipe/custardbun
+ reagents = list("spacespice" = 1, "water" = 5, "egg" = 3)
+ items = list(
+ /obj/item/weapon/reagent_containers/food/snacks/doughslice
+ )
+ reagent_mix = RECIPE_REAGENT_REPLACE //Water, egg used up in cooking
+ result = /obj/item/weapon/reagent_containers/food/snacks/custardbun
+
+/datum/recipe/chickenmomo
+ reagents = list("spacespice" = 2, "water" = 5)
+ items = list(
+ /obj/item/weapon/reagent_containers/food/snacks/doughslice,
+ /obj/item/weapon/reagent_containers/food/snacks/doughslice,
+ /obj/item/weapon/reagent_containers/food/snacks/doughslice,
+ /obj/item/weapon/reagent_containers/food/snacks/meat/chicken
+ )
+ reagent_mix = RECIPE_REAGENT_REPLACE //Simplify end product
+ result = /obj/item/weapon/reagent_containers/food/snacks/chickenmomo
+
+/datum/recipe/veggiemomo
+ reagents = list("spacespice" = 2, "water" = 5)
+ fruit = list("carrot" = 1, "cabbage" = 1)
+ items = list(
+ /obj/item/weapon/reagent_containers/food/snacks/doughslice,
+ /obj/item/weapon/reagent_containers/food/snacks/doughslice,
+ /obj/item/weapon/reagent_containers/food/snacks/doughslice
+ )
+ reagent_mix = RECIPE_REAGENT_REPLACE //Get that water outta here
+ result = /obj/item/weapon/reagent_containers/food/snacks/veggiemomo
+
+/datum/recipe/risotto
+ reagents = list("wine" = 5, "rice" = 10, "spacespice" = 1)
+ fruit = list("mushroom" = 1)
+ reagent_mix = RECIPE_REAGENT_REPLACE //Get that rice and wine outta here
+ result = /obj/item/weapon/reagent_containers/food/snacks/risotto
+
+/datum/recipe/poachedegg
+ reagents = list("spacespice" = 1, "sodiumchloride" = 1, "blackpepper" = 1, "water" = 5)
+ items = list(
+ /obj/item/weapon/reagent_containers/food/snacks/egg
+ )
+ reagent_mix = RECIPE_REAGENT_REPLACE //Get that water outta here
+ result = /obj/item/weapon/reagent_containers/food/snacks/poachedegg
+
+/datum/recipe/honeytoast
+ reagents = list("honey" = 5)
+ items = list(
+ /obj/item/weapon/reagent_containers/food/snacks/slice/bread
+ )
+ reagent_mix = RECIPE_REAGENT_REPLACE //Simplify end product
+ result = /obj/item/weapon/reagent_containers/food/snacks/honeytoast
+
+/datum/recipe/sashimi
+ reagents = list("soysauce" = 5)
+ items = list(
+ /obj/item/weapon/reagent_containers/food/snacks/carpmeat
+ )
+ result = /obj/item/weapon/reagent_containers/food/snacks/sashimi
+
+/datum/recipe/nugget
+ reagents = list("flour" = 5)
+ items = list(
+ /obj/item/weapon/reagent_containers/food/snacks/meat/chicken
+ )
+ reagent_mix = RECIPE_REAGENT_REPLACE
+ result = /obj/item/weapon/reagent_containers/food/snacks/nugget
+
+// Chip update
+/datum/recipe/tortila
+ reagents = list("flour" = 5,"water" = 5)
+ result = /obj/item/weapon/reagent_containers/food/snacks/tortilla
+ reagent_mix = RECIPE_REAGENT_REPLACE //no gross flour or water
+
+/datum/recipe/taconew
+ items = list(
+ /obj/item/weapon/reagent_containers/food/snacks/tortilla,
+ /obj/item/weapon/reagent_containers/food/snacks/cutlet,
+ /obj/item/weapon/reagent_containers/food/snacks/cheesewedge
+ )
+ result = /obj/item/weapon/reagent_containers/food/snacks/taco
+
+/datum/recipe/chips
+ reagents = list("sodiumchloride" = 1)
+ items = list(
+ /obj/item/weapon/reagent_containers/food/snacks/tortilla
+ )
+ result = /obj/item/weapon/reagent_containers/food/snacks/chipplate
+
+/datum/recipe/nachos
+ items = list(
+ /obj/item/weapon/reagent_containers/food/snacks/chipplate,
+ /obj/item/weapon/reagent_containers/food/snacks/cheesewedge
+ )
+ result = /obj/item/weapon/reagent_containers/food/snacks/chipplate/nachos
+
+/datum/recipe/salsa
+ fruit = list("chili" = 1, "tomato" = 1, "lime" = 1)
+ reagents = list("spacespice" = 1, "blackpepper" = 1,"sodiumchloride" = 1)
+ result = /obj/item/weapon/reagent_containers/food/snacks/dip/salsa
+ reagent_mix = RECIPE_REAGENT_REPLACE //Ingredients are mixed together.
+
+/datum/recipe/guac
+ fruit = list("chili" = 1, "lime" = 1)
+ reagents = list("spacespice" = 1, "blackpepper" = 1,"sodiumchloride" = 1)
+ items = list(
+ /obj/item/weapon/reagent_containers/food/snacks/tofu
+ )
+ result = /obj/item/weapon/reagent_containers/food/snacks/dip/guac
+ reagent_mix = RECIPE_REAGENT_REPLACE //Ingredients are mixed together.
+
+/datum/recipe/cheesesauce
+ fruit = list("chili" = 1, "tomato" = 1)
+ reagents = list("spacespice" = 1, "blackpepper" = 1,"sodiumchloride" = 1)
+ items = list(
+ /obj/item/weapon/reagent_containers/food/snacks/cheesewedge
+ )
+ result = /obj/item/weapon/reagent_containers/food/snacks/dip
+ reagent_mix = RECIPE_REAGENT_REPLACE //Ingredients are mixed together.
+
+/datum/recipe/burrito
+ items = list(
+ /obj/item/weapon/reagent_containers/food/snacks/tortilla,
+ /obj/item/weapon/reagent_containers/food/snacks/meatball,
+ /obj/item/weapon/reagent_containers/food/snacks/meatball
+ )
+ reagents = list("spacespice" = 1)
+ result = /obj/item/weapon/reagent_containers/food/snacks/burrito
+
+/datum/recipe/burrito_vegan
+ items = list(
+ /obj/item/weapon/reagent_containers/food/snacks/tortilla,
+ /obj/item/weapon/reagent_containers/food/snacks/tofu
+ )
+ result = /obj/item/weapon/reagent_containers/food/snacks/burrito_vegan
+
+/datum/recipe/burrito_spicy
+ fruit = list("chili" = 2)
+ items = list(
+ /obj/item/weapon/reagent_containers/food/snacks/burrito
+ )
+ result = /obj/item/weapon/reagent_containers/food/snacks/burrito_spicy
+
+/datum/recipe/burrito_cheese
+ items = list(
+ /obj/item/weapon/reagent_containers/food/snacks/burrito,
+ /obj/item/weapon/reagent_containers/food/snacks/cheesewedge
+ )
+ result = /obj/item/weapon/reagent_containers/food/snacks/burrito_cheese
+
+/datum/recipe/burrito_cheese_spicy
+ fruit = list("chili" = 2)
+ items = list(
+ /obj/item/weapon/reagent_containers/food/snacks/burrito,
+ /obj/item/weapon/reagent_containers/food/snacks/cheesewedge
+ )
+ result = /obj/item/weapon/reagent_containers/food/snacks/burrito_cheese_spicy
+
+/datum/recipe/burrito_hell
+ fruit = list("chili" = 10)
+ items = list(
+ /obj/item/weapon/reagent_containers/food/snacks/burrito_spicy
+ )
+ result = /obj/item/weapon/reagent_containers/food/snacks/burrito_hell
+ reagent_mix = RECIPE_REAGENT_REPLACE //Already hot sauce
+
+/datum/recipe/breakfast_wrap
+ items = list(
+ /obj/item/weapon/reagent_containers/food/snacks/bacon,
+ /obj/item/weapon/reagent_containers/food/snacks/tortilla,
+ /obj/item/weapon/reagent_containers/food/snacks/cheesewedge,
+ /obj/item/weapon/reagent_containers/food/snacks/egg
+ )
+ result = /obj/item/weapon/reagent_containers/food/snacks/breakfast_wrap
+
+/datum/recipe/burrito_mystery
+ items = list(
+ /obj/item/weapon/reagent_containers/food/snacks/burrito,
+ /obj/item/weapon/reagent_containers/food/snacks/mysterysoup
+ )
+ result = /obj/item/weapon/reagent_containers/food/snacks/burrito_mystery
+
+//Ligger food, and also bacon.
+
+/datum/recipe/bacon
+ items = list(
+ /obj/item/weapon/reagent_containers/food/snacks/rawbacon
+ )
+ result = /obj/item/weapon/reagent_containers/food/snacks/bacon
+
+/datum/recipe/chilied_eggs
+ items = list(
+ /obj/item/weapon/reagent_containers/food/snacks/hotchili,
+ /obj/item/weapon/reagent_containers/food/snacks/boiledegg,
+ /obj/item/weapon/reagent_containers/food/snacks/boiledegg,
+ /obj/item/weapon/reagent_containers/food/snacks/boiledegg
+ )
+ result = /obj/item/weapon/reagent_containers/food/snacks/chilied_eggs
+
+/datum/recipe/red_sun_special
+ items = list(
+ /obj/item/weapon/reagent_containers/food/snacks/sausage,
+ /obj/item/weapon/reagent_containers/food/snacks/cheesewedge
+
+ )
+ result = /obj/item/weapon/reagent_containers/food/snacks/red_sun_special
+
+/datum/recipe/hatchling_suprise
+ items = list(
+ /obj/item/weapon/reagent_containers/food/snacks/poachedegg,
+ /obj/item/weapon/reagent_containers/food/snacks/bacon,
+ /obj/item/weapon/reagent_containers/food/snacks/bacon,
+ /obj/item/weapon/reagent_containers/food/snacks/bacon
+
+ )
+ result = /obj/item/weapon/reagent_containers/food/snacks/hatchling_suprise
+
+/datum/recipe/riztizkzi_sea
+ items = list(
+ /obj/item/weapon/reagent_containers/food/snacks/egg,
+ /obj/item/weapon/reagent_containers/food/snacks/egg,
+ /obj/item/weapon/reagent_containers/food/snacks/egg
+ )
+ reagents = list("blood" = 15)
+ result = /obj/item/weapon/reagent_containers/food/snacks/riztizkzi_sea
+
+/datum/recipe/father_breakfast
+ items = list(
+ /obj/item/weapon/reagent_containers/food/snacks/sausage,
+ /obj/item/weapon/reagent_containers/food/snacks/omelette,
+ /obj/item/weapon/reagent_containers/food/snacks/meatsteak
+ )
+ result = /obj/item/weapon/reagent_containers/food/snacks/father_breakfast
+
+/datum/recipe/stuffed_meatball
+ items = list(
+ /obj/item/weapon/reagent_containers/food/snacks/meatball,
+ /obj/item/weapon/reagent_containers/food/snacks/cheesewedge
+ )
+ fruit = list("cabbage" = 1)
+ result = /obj/item/weapon/reagent_containers/food/snacks/stuffed_meatball
+
+/datum/recipe/egg_pancake
+ items = list(
+ /obj/item/weapon/reagent_containers/food/snacks/meatball,
+ /obj/item/weapon/reagent_containers/food/snacks/meatball,
+ /obj/item/weapon/reagent_containers/food/snacks/meatball,
+ /obj/item/weapon/reagent_containers/food/snacks/omelette
+ )
+ result = /obj/item/weapon/reagent_containers/food/snacks/egg_pancake
+
+/datum/recipe/grilled_carp
+ items = list(
+ /obj/item/weapon/reagent_containers/food/snacks/carpmeat,
+ /obj/item/weapon/reagent_containers/food/snacks/carpmeat,
+ /obj/item/weapon/reagent_containers/food/snacks/carpmeat,
+ /obj/item/weapon/reagent_containers/food/snacks/carpmeat,
+ /obj/item/weapon/reagent_containers/food/snacks/carpmeat,
+ /obj/item/weapon/reagent_containers/food/snacks/carpmeat
+ )
+ reagents = list("spacespice" = 1)
+ fruit = list("cabbage" = 1, "lime" = 1)
+ result = /obj/item/weapon/reagent_containers/food/snacks/sliceable/grilled_carp
+
+/datum/recipe/bacon_stick
+ items = list(
+ /obj/item/weapon/reagent_containers/food/snacks/bacon,
+ /obj/item/weapon/reagent_containers/food/snacks/boiledegg
+ )
+ result = /obj/item/weapon/reagent_containers/food/snacks/bacon_stick
+
+/datum/recipe/cheese_cracker
+ items = list(
+ /obj/item/weapon/reagent_containers/food/snacks/spreads/butter,
+ /obj/item/weapon/reagent_containers/food/snacks/slice/bread,
+ /obj/item/weapon/reagent_containers/food/snacks/cheesewedge
+ )
+ reagents = list("spacespice" = 1)
+ result = /obj/item/weapon/reagent_containers/food/snacks/cheese_cracker
+ result_quantity = 4
+
+/datum/recipe/bacon_and_eggs
+ items = list(
+ /obj/item/weapon/reagent_containers/food/snacks/bacon,
+ /obj/item/weapon/reagent_containers/food/snacks/friedegg
+ )
+ result = /obj/item/weapon/reagent_containers/food/snacks/bacon_and_eggs
+
+/datum/recipe/ntmuffin
+ items = list(
+ /obj/item/weapon/reagent_containers/food/snacks/plumphelmetbiscuit,
+ /obj/item/weapon/reagent_containers/food/snacks/sausage,
+ /obj/item/weapon/reagent_containers/food/snacks/friedegg,
+ /obj/item/weapon/reagent_containers/food/snacks/cheesewedge
+ )
+ result = /obj/item/weapon/reagent_containers/food/snacks/nt_muffin
+
+/datum/recipe/fish_taco
+ fruit = list("chili" = 1, "lemon" = 1)
+ items = list(
+ /obj/item/weapon/reagent_containers/food/snacks/carpmeat,
+ /obj/item/weapon/reagent_containers/food/snacks/tortilla
+ )
+ result = /obj/item/weapon/reagent_containers/food/snacks/fish_taco
+
+/datum/recipe/blt
+ fruit = list("tomato" = 1, "cabbage" = 1)
+ items = list(
+ /obj/item/weapon/reagent_containers/food/snacks/slice/bread,
+ /obj/item/weapon/reagent_containers/food/snacks/slice/bread,
+ /obj/item/weapon/reagent_containers/food/snacks/bacon,
+ /obj/item/weapon/reagent_containers/food/snacks/bacon
+ )
+ result = /obj/item/weapon/reagent_containers/food/snacks/blt
+
+/datum/recipe/onionrings
+ fruit = list("onion" = 1)
+ items = list(
+ /obj/item/weapon/reagent_containers/food/snacks/doughslice
+ )
+ result = /obj/item/weapon/reagent_containers/food/snacks/onionrings
+
+/datum/recipe/berrymuffin
+ reagents = list("milk" = 5, "sugar" = 5)
+ reagent_mix = RECIPE_REAGENT_REPLACE
+ items = list(
+ /obj/item/weapon/reagent_containers/food/snacks/dough
+ )
+ fruit = list("berries" = 1)
+ result = /obj/item/weapon/reagent_containers/food/snacks/muffin
+
+/datum/recipe/onionsoup
+ fruit = list("onion" = 1)
+ reagents = list("water" = 10)
+ result = /obj/item/weapon/reagent_containers/food/snacks/soup/onion
+
+/datum/recipe/porkbowl
+ reagents = list("water" = 5, "rice" = 10)
+ reagent_mix = RECIPE_REAGENT_REPLACE
+ items = list(
+ /obj/item/weapon/reagent_containers/food/snacks/bacon
+ )
+ result = /obj/item/weapon/reagent_containers/food/snacks/porkbowl
diff --git a/code/modules/food/recipes_oven.dm b/code/modules/food/recipes_oven.dm
new file mode 100644
index 0000000000..7a477cf943
--- /dev/null
+++ b/code/modules/food/recipes_oven.dm
@@ -0,0 +1,560 @@
+/datum/recipe/ovenchips
+ appliance = OVEN
+ items = list(
+ /obj/item/weapon/reagent_containers/food/snacks/rawsticks
+ )
+ result = /obj/item/weapon/reagent_containers/food/snacks/ovenchips
+
+
+
+/datum/recipe/dionaroast
+ appliance = OVEN
+ fruit = list("apple" = 1)
+ reagents = list("pacid" = 5) //It dissolves the carapace. Still poisonous, though.
+ items = list(/obj/item/weapon/holder/diona)
+ result = /obj/item/weapon/reagent_containers/food/snacks/dionaroast
+ reagent_mix = RECIPE_REAGENT_REPLACE //No eating polyacid
+
+
+/datum/recipe/ribplate //Putting this here for not seeing a roast section.
+ appliance = OVEN
+ reagents = list("honey" = 5, "spacespice" = 2, "blackpepper" = 1)
+ items = list(/obj/item/weapon/reagent_containers/food/snacks/meat)
+ reagent_mix = RECIPE_REAGENT_REPLACE
+ result = /obj/item/weapon/reagent_containers/food/snacks/ribplate
+
+
+
+
+//Predesigned breads
+//================================
+/datum/recipe/bread
+ appliance = OVEN
+ items = list(
+ /obj/item/weapon/reagent_containers/food/snacks/dough,
+ /obj/item/weapon/reagent_containers/food/snacks/dough,
+ /obj/item/weapon/reagent_containers/food/snacks/dough,
+ /obj/item/weapon/reagent_containers/food/snacks/dough
+ )
+ reagents = list("sodiumchloride" = 1, "yeast" = 5)
+ result = /obj/item/weapon/reagent_containers/food/snacks/sliceable/bread
+
+/datum/recipe/baguette
+ appliance = OVEN
+ reagents = list("sodiumchloride" = 1, "blackpepper" = 1, "yeast" = 5)
+ items = list(
+ /obj/item/weapon/reagent_containers/food/snacks/dough,
+ /obj/item/weapon/reagent_containers/food/snacks/dough
+ )
+ result = /obj/item/weapon/reagent_containers/food/snacks/baguette
+
+
+/datum/recipe/tofubread
+ appliance = OVEN
+ items = list(
+ /obj/item/weapon/reagent_containers/food/snacks/dough,
+ /obj/item/weapon/reagent_containers/food/snacks/dough,
+ /obj/item/weapon/reagent_containers/food/snacks/dough,
+ /obj/item/weapon/reagent_containers/food/snacks/tofu,
+ /obj/item/weapon/reagent_containers/food/snacks/tofu,
+ /obj/item/weapon/reagent_containers/food/snacks/tofu,
+ /obj/item/weapon/reagent_containers/food/snacks/cheesewedge,
+ /obj/item/weapon/reagent_containers/food/snacks/cheesewedge,
+ /obj/item/weapon/reagent_containers/food/snacks/cheesewedge
+ )
+ result = /obj/item/weapon/reagent_containers/food/snacks/sliceable/tofubread
+
+
+/datum/recipe/creamcheesebread
+ appliance = OVEN
+ items = list(
+ /obj/item/weapon/reagent_containers/food/snacks/dough,
+ /obj/item/weapon/reagent_containers/food/snacks/dough,
+ /obj/item/weapon/reagent_containers/food/snacks/cheesewedge,
+ /obj/item/weapon/reagent_containers/food/snacks/cheesewedge
+ )
+ result = /obj/item/weapon/reagent_containers/food/snacks/sliceable/creamcheesebread
+
+/datum/recipe/flatbread
+ appliance = OVEN
+ items = list(
+ /obj/item/weapon/reagent_containers/food/snacks/sliceable/flatdough
+ )
+ result = /obj/item/weapon/reagent_containers/food/snacks/flatbread
+
+/datum/recipe/tortilla
+ appliance = OVEN
+ reagents = list("flour" = 5)
+ items = list(
+ /obj/item/weapon/reagent_containers/food/snacks/sliceable/flatdough
+ )
+ result = /obj/item/weapon/reagent_containers/food/snacks/tortilla
+
+/datum/recipe/meatbread
+ appliance = OVEN
+ items = list(
+ /obj/item/weapon/reagent_containers/food/snacks/dough,
+ /obj/item/weapon/reagent_containers/food/snacks/dough,
+ /obj/item/weapon/reagent_containers/food/snacks/dough,
+ /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/cheesewedge,
+ /obj/item/weapon/reagent_containers/food/snacks/cheesewedge,
+ /obj/item/weapon/reagent_containers/food/snacks/cheesewedge
+ )
+ result = /obj/item/weapon/reagent_containers/food/snacks/sliceable/meatbread
+
+/datum/recipe/syntibread
+ appliance = OVEN
+ items = list(
+ /obj/item/weapon/reagent_containers/food/snacks/dough,
+ /obj/item/weapon/reagent_containers/food/snacks/dough,
+ /obj/item/weapon/reagent_containers/food/snacks/dough,
+ /obj/item/weapon/reagent_containers/food/snacks/meat/syntiflesh,
+ /obj/item/weapon/reagent_containers/food/snacks/meat/syntiflesh,
+ /obj/item/weapon/reagent_containers/food/snacks/meat/syntiflesh,
+ /obj/item/weapon/reagent_containers/food/snacks/cheesewedge,
+ /obj/item/weapon/reagent_containers/food/snacks/cheesewedge,
+ /obj/item/weapon/reagent_containers/food/snacks/cheesewedge
+ )
+ result = /obj/item/weapon/reagent_containers/food/snacks/sliceable/meatbread
+
+/datum/recipe/xenomeatbread
+ appliance = OVEN
+ items = list(
+ /obj/item/weapon/reagent_containers/food/snacks/dough,
+ /obj/item/weapon/reagent_containers/food/snacks/dough,
+ /obj/item/weapon/reagent_containers/food/snacks/dough,
+ /obj/item/weapon/reagent_containers/food/snacks/xenomeat,
+ /obj/item/weapon/reagent_containers/food/snacks/xenomeat,
+ /obj/item/weapon/reagent_containers/food/snacks/xenomeat,
+ /obj/item/weapon/reagent_containers/food/snacks/cheesewedge,
+ /obj/item/weapon/reagent_containers/food/snacks/cheesewedge,
+ /obj/item/weapon/reagent_containers/food/snacks/cheesewedge
+ )
+ result = /obj/item/weapon/reagent_containers/food/snacks/sliceable/xenomeatbread
+
+/datum/recipe/bananabread
+ appliance = OVEN
+ fruit = list("banana" = 1)
+ reagents = list("milk" = 5, "sugar" = 15)
+ items = list(
+ /obj/item/weapon/reagent_containers/food/snacks/dough,
+ /obj/item/weapon/reagent_containers/food/snacks/dough,
+ /obj/item/weapon/reagent_containers/food/snacks/dough
+ )
+ result = /obj/item/weapon/reagent_containers/food/snacks/sliceable/bananabread
+
+
+/datum/recipe/bun
+ appliance = OVEN
+ items = list(
+ /obj/item/weapon/reagent_containers/food/snacks/dough
+ )
+ result = /obj/item/weapon/reagent_containers/food/snacks/bun
+
+//Predesigned pies
+//=======================
+
+/datum/recipe/meatpie
+ appliance = OVEN
+ items = list(
+ /obj/item/weapon/reagent_containers/food/snacks/sliceable/flatdough,
+ /obj/item/weapon/reagent_containers/food/snacks/meat
+ )
+ result = /obj/item/weapon/reagent_containers/food/snacks/meatpie
+
+/datum/recipe/tofupie
+ appliance = OVEN
+ items = list(
+ /obj/item/weapon/reagent_containers/food/snacks/sliceable/flatdough,
+ /obj/item/weapon/reagent_containers/food/snacks/tofu
+ )
+ result = /obj/item/weapon/reagent_containers/food/snacks/tofupie
+
+/datum/recipe/xemeatpie
+ appliance = OVEN
+ items = list(
+ /obj/item/weapon/reagent_containers/food/snacks/sliceable/flatdough,
+ /obj/item/weapon/reagent_containers/food/snacks/xenomeat
+ )
+ result = /obj/item/weapon/reagent_containers/food/snacks/xemeatpie
+
+/datum/recipe/pie
+ appliance = OVEN
+ fruit = list("banana" = 1)
+ reagents = list("sugar" = 5)
+ items = list(/obj/item/weapon/reagent_containers/food/snacks/sliceable/flatdough)
+ result = /obj/item/weapon/reagent_containers/food/snacks/pie
+
+/datum/recipe/cherrypie
+ appliance = OVEN
+ fruit = list("cherries" = 1)
+ reagents = list("sugar" = 10)
+ items = list(
+ /obj/item/weapon/reagent_containers/food/snacks/sliceable/flatdough
+ )
+ result = /obj/item/weapon/reagent_containers/food/snacks/cherrypie
+
+
+/datum/recipe/amanita_pie
+ appliance = OVEN
+ reagents = list("amatoxin" = 5)
+ items = list(/obj/item/weapon/reagent_containers/food/snacks/sliceable/flatdough)
+ result = /obj/item/weapon/reagent_containers/food/snacks/amanita_pie
+
+/datum/recipe/plump_pie
+ appliance = OVEN
+ fruit = list("plumphelmet" = 1)
+ items = list(/obj/item/weapon/reagent_containers/food/snacks/sliceable/flatdough)
+ result = /obj/item/weapon/reagent_containers/food/snacks/plump_pie
+
+
+/datum/recipe/pumpkinpie
+ appliance = OVEN
+ fruit = list("pumpkin" = 1)
+ reagents = list("milk" = 5, "sugar" = 5, "egg" = 3, "flour" = 10)
+ result = /obj/item/weapon/reagent_containers/food/snacks/sliceable/pumpkinpie
+ reagent_mix = RECIPE_REAGENT_REPLACE //We dont want raw egg in the result
+
+/datum/recipe/appletart
+ appliance = OVEN
+ fruit = list("goldapple" = 1)
+ reagents = list("sugar" = 5, "milk" = 5, "flour" = 10, "egg" = 3)
+ result = /obj/item/weapon/reagent_containers/food/snacks/appletart
+ reagent_mix = RECIPE_REAGENT_REPLACE
+
+/datum/recipe/keylimepie
+ appliance = OVEN
+ fruit = list("lime" = 2)
+ reagents = list("milk" = 5, "sugar" = 5, "egg" = 3, "flour" = 10)
+ result = /obj/item/weapon/reagent_containers/food/snacks/sliceable/keylimepie
+ reagent_mix = RECIPE_REAGENT_REPLACE //No raw egg in finished product, protein after cooking causes magic meatballs otherwise
+
+/datum/recipe/quiche
+ appliance = OVEN
+ reagents = list("milk" = 5, "egg" = 9, "flour" = 10)
+ items = list(/obj/item/weapon/reagent_containers/food/snacks/cheesewedge)
+ result = /obj/item/weapon/reagent_containers/food/snacks/sliceable/quiche
+ reagent_mix = RECIPE_REAGENT_REPLACE //No raw egg in finished product, protein after cooking causes magic meatballs otherwise
+
+//Baked sweets:
+//---------------
+
+/datum/recipe/cookie
+ appliance = OVEN
+ reagents = list("milk" = 10, "sugar" = 10)
+ items = list(
+ /obj/item/weapon/reagent_containers/food/snacks/dough,
+ /obj/item/weapon/reagent_containers/food/snacks/chocolatebar
+ )
+ result = /obj/item/weapon/reagent_containers/food/snacks/cookie
+ result_quantity = 4
+ reagent_mix = RECIPE_REAGENT_REPLACE
+
+/datum/recipe/ovenfortunecookie
+ appliance = OVEN
+ reagents = list("sugar" = 5)
+ items = list(
+ /obj/item/weapon/reagent_containers/food/snacks/doughslice,
+ /obj/item/weapon/paper
+ )
+ result = /obj/item/weapon/reagent_containers/food/snacks/fortunecookie
+
+/datum/recipe/poppypretzel
+ appliance = OVEN
+ fruit = list("poppy" = 1)
+ items = list(/obj/item/weapon/reagent_containers/food/snacks/dough)
+ result = /obj/item/weapon/reagent_containers/food/snacks/poppypretzel
+ result_quantity = 2
+
+
+/datum/recipe/cracker
+ appliance = OVEN
+ reagents = list("sodiumchloride" = 1)
+ items = list(
+ /obj/item/weapon/reagent_containers/food/snacks/doughslice
+ )
+ result = /obj/item/weapon/reagent_containers/food/snacks/cracker
+
+/datum/recipe/brownies
+ appliance = OVEN
+ reagents = list("browniemix" = 10, "egg" = 3)
+ reagent_mix = RECIPE_REAGENT_REPLACE //No egg or mix in final recipe
+ result = /obj/item/weapon/reagent_containers/food/snacks/sliceable/brownies
+
+
+/datum/recipe/cosmicbrownies
+ appliance = OVEN
+ reagents = list("browniemix" = 10, "egg" = 3)
+ fruit = list("ambrosia" = 1)
+ reagent_mix = RECIPE_REAGENT_REPLACE //No egg or mix in final recipe
+ result = /obj/item/weapon/reagent_containers/food/snacks/sliceable/cosmicbrownies
+
+
+
+
+//Pizzas
+//=========================
+/datum/recipe/pizzamargherita
+ appliance = OVEN
+ fruit = list("tomato" = 1)
+ items = list(
+ /obj/item/weapon/reagent_containers/food/snacks/sliceable/flatdough,
+ /obj/item/weapon/reagent_containers/food/snacks/cheesewedge,
+ /obj/item/weapon/reagent_containers/food/snacks/cheesewedge,
+ /obj/item/weapon/reagent_containers/food/snacks/cheesewedge,
+ /obj/item/weapon/reagent_containers/food/snacks/cheesewedge
+ )
+ result = /obj/item/weapon/reagent_containers/food/snacks/sliceable/pizza/margherita
+
+/datum/recipe/meatpizza
+ appliance = OVEN
+ fruit = list("tomato" = 1)
+ items = list(
+ /obj/item/weapon/reagent_containers/food/snacks/sliceable/flatdough,
+ /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/cheesewedge
+ )
+ result = /obj/item/weapon/reagent_containers/food/snacks/sliceable/pizza/meatpizza
+
+/datum/recipe/syntipizza
+ appliance = OVEN
+ fruit = list("tomato" = 1)
+ items = list(
+ /obj/item/weapon/reagent_containers/food/snacks/sliceable/flatdough,
+ /obj/item/weapon/reagent_containers/food/snacks/meat/syntiflesh,
+ /obj/item/weapon/reagent_containers/food/snacks/meat/syntiflesh,
+ /obj/item/weapon/reagent_containers/food/snacks/meat/syntiflesh,
+ /obj/item/weapon/reagent_containers/food/snacks/cheesewedge
+ )
+ result = /obj/item/weapon/reagent_containers/food/snacks/sliceable/pizza/meatpizza
+
+/datum/recipe/mushroompizza
+ appliance = OVEN
+ fruit = list("mushroom" = 5, "tomato" = 1)
+ items = list(
+ /obj/item/weapon/reagent_containers/food/snacks/sliceable/flatdough,
+ /obj/item/weapon/reagent_containers/food/snacks/cheesewedge
+ )
+
+ reagent_mix = RECIPE_REAGENT_REPLACE //No vomit taste in finished product from chanterelles
+ result = /obj/item/weapon/reagent_containers/food/snacks/sliceable/pizza/mushroompizza
+
+/datum/recipe/vegetablepizza
+ appliance = OVEN
+ fruit = list("eggplant" = 1, "carrot" = 1, "corn" = 1, "tomato" = 1)
+ items = list(
+ /obj/item/weapon/reagent_containers/food/snacks/sliceable/flatdough,
+ /obj/item/weapon/reagent_containers/food/snacks/cheesewedge
+ )
+ result = /obj/item/weapon/reagent_containers/food/snacks/sliceable/pizza/vegetablepizza
+
+/datum/recipe/pineapplepizza
+ appliance = OVEN
+ fruit = list("tomato" = 1)
+ items = list(
+ /obj/item/weapon/reagent_containers/food/snacks/sliceable/flatdough,
+ /obj/item/weapon/reagent_containers/food/snacks/cheesewedge,
+ /obj/item/weapon/reagent_containers/food/snacks/pineapple_ring,
+ /obj/item/weapon/reagent_containers/food/snacks/pineapple_ring
+ )
+ result = /obj/item/weapon/reagent_containers/food/snacks/sliceable/pizza/pineapple
+
+//Spicy
+//================
+/datum/recipe/enchiladas
+ appliance = OVEN
+ fruit = list("chili" = 2, "corn" = 1)
+ items = list(/obj/item/weapon/reagent_containers/food/snacks/cutlet)
+ result = /obj/item/weapon/reagent_containers/food/snacks/enchiladas
+
+/datum/recipe/monkeysdelight
+ appliance = OVEN
+ fruit = list("banana" = 1)
+ reagents = list("sodiumchloride" = 1, "blackpepper" = 1, "flour" = 10)
+ items = list(
+ /obj/item/weapon/reagent_containers/food/snacks/monkeycube
+ )
+ result = /obj/item/weapon/reagent_containers/food/snacks/monkeysdelight
+ reagent_mix = RECIPE_REAGENT_REPLACE
+
+
+
+
+
+// Cakes.
+//============
+/datum/recipe/cake
+ appliance = OVEN
+ reagents = list("milk" = 5, "flour" = 15, "sugar" = 15, "egg" = 9, "vanilla" = 1)
+ result = /obj/item/weapon/reagent_containers/food/snacks/sliceable/plaincake
+ reagent_mix = RECIPE_REAGENT_REPLACE
+
+/datum/recipe/cake/carrot
+ appliance = OVEN
+ fruit = list("carrot" = 3)
+ reagents = list("milk" = 5, "flour" = 15, "egg" = 9,"sugar" = 5)
+ result = /obj/item/weapon/reagent_containers/food/snacks/sliceable/carrotcake
+
+/datum/recipe/cake/cheese
+ appliance = OVEN
+ reagents = list("milk" = 5, "flour" = 15, "sugar" = 15, "egg" = 9)
+ items = list(
+ /obj/item/weapon/reagent_containers/food/snacks/cheesewedge,
+ /obj/item/weapon/reagent_containers/food/snacks/cheesewedge
+ )
+ result = /obj/item/weapon/reagent_containers/food/snacks/sliceable/cheesecake
+
+/datum/recipe/cake/peanut
+ fruit = list("peanut" = 3)
+ reagents = list("milk" = 5, "flour" = 10, "sugar" = 5, "egg" = 6, "peanutbutter" = 5)
+ result = /obj/item/weapon/reagent_containers/food/snacks/sliceable/peanutcake
+
+/datum/recipe/cake/orange
+ appliance = OVEN
+ fruit = list("orange" = 1)
+ reagents = list("milk" = 5, "flour" = 15, "egg" = 9, "sugar" = 5)
+ result = /obj/item/weapon/reagent_containers/food/snacks/sliceable/orangecake
+
+/datum/recipe/cake/lime
+ appliance = OVEN
+ fruit = list("lime" = 1)
+ reagents = list("milk" = 5, "flour" = 15, "egg" = 9, "limejuice" = 3, "sugar" = 5)
+ result = /obj/item/weapon/reagent_containers/food/snacks/sliceable/limecake
+
+/datum/recipe/cake/lemon
+ appliance = OVEN
+ fruit = list("lemon" = 1)
+ reagents = list("milk" = 5, "flour" = 15, "egg" = 9, "lemonjuice" = 3, "sugar" = 5)
+ result = /obj/item/weapon/reagent_containers/food/snacks/sliceable/lemoncake
+
+/datum/recipe/cake/chocolate
+ appliance = OVEN
+ items = list(/obj/item/weapon/reagent_containers/food/snacks/chocolatebar)
+ reagents = list("milk" = 5, "flour" = 15, "egg" = 9, "coco" = 4, "sugar" = 5)
+ result = /obj/item/weapon/reagent_containers/food/snacks/sliceable/chocolatecake
+
+/datum/recipe/cake/birthday
+ appliance = OVEN
+ reagents = list("milk" = 5, "flour" = 15, "sugar" = 15, "egg" = 9)
+ items = list(/obj/item/clothing/head/cakehat)
+ result = /obj/item/weapon/reagent_containers/food/snacks/sliceable/birthdaycake
+
+/datum/recipe/cake/apple
+ appliance = OVEN
+ fruit = list("apple" = 2)
+ reagents = list("milk" = 5, "flour" = 15, "egg" = 9,"sugar" = 5)
+ result = /obj/item/weapon/reagent_containers/food/snacks/sliceable/applecake
+
+/datum/recipe/cake/brain
+ appliance = OVEN
+ reagents = list("milk" = 5, "flour" = 15, "sugar" = 15, "egg" = 9)
+ items = list(/obj/item/organ/internal/brain)
+ result = /obj/item/weapon/reagent_containers/food/snacks/sliceable/braincake
+
+/datum/recipe/pancakes
+ appliance = OVEN
+ fruit = list("blueberries" = 2)
+ items = list(
+ /obj/item/weapon/reagent_containers/food/snacks/sliceable/flatdough,
+ /obj/item/weapon/reagent_containers/food/snacks/sliceable/flatdough
+ )
+ result = /obj/item/weapon/reagent_containers/food/snacks/pancakes
+
+/datum/recipe/lasagna
+ appliance = OVEN
+ fruit = list("tomato" = 2, "eggplant" = 1)
+ items = list(
+ /obj/item/weapon/reagent_containers/food/snacks/sliceable/flatdough,
+ /obj/item/weapon/reagent_containers/food/snacks/sliceable/flatdough,
+ /obj/item/weapon/reagent_containers/food/snacks/cutlet,
+ /obj/item/weapon/reagent_containers/food/snacks/cutlet
+ )
+ result = /obj/item/weapon/reagent_containers/food/snacks/lasagna
+ reagent_mix = RECIPE_REAGENT_REPLACE
+
+/datum/recipe/honeybun
+ appliance = OVEN
+ items = list(
+ /obj/item/weapon/reagent_containers/food/snacks/dough
+ )
+ reagents = list("milk" = 5, "egg" = 3,"honey" = 5)
+ result = /obj/item/weapon/reagent_containers/food/snacks/honeybun
+
+/datum/recipe/enchiladas_new
+ appliance = OVEN
+ fruit = list("chili" = 2)
+ items = list(
+ /obj/item/weapon/reagent_containers/food/snacks/cutlet,
+ /obj/item/weapon/reagent_containers/food/snacks/tortilla
+ )
+ result = /obj/item/weapon/reagent_containers/food/snacks/enchiladas
+
+//Bacon
+/datum/recipe/bacon_oven
+ appliance = OVEN
+ items = list(
+ /obj/item/weapon/reagent_containers/food/snacks/rawbacon,
+ /obj/item/weapon/reagent_containers/food/snacks/rawbacon,
+ /obj/item/weapon/reagent_containers/food/snacks/rawbacon,
+ /obj/item/weapon/reagent_containers/food/snacks/rawbacon,
+ /obj/item/weapon/reagent_containers/food/snacks/rawbacon,
+ /obj/item/weapon/reagent_containers/food/snacks/rawbacon,
+ /obj/item/weapon/reagent_containers/food/snacks/spreads
+ )
+ result = /obj/item/weapon/reagent_containers/food/snacks/bacon/oven
+ result_quantity = 6
+
+/datum/recipe/meat_pocket
+ appliance = OVEN
+ items = list(
+ /obj/item/weapon/reagent_containers/food/snacks/sliceable/flatdough,
+ /obj/item/weapon/reagent_containers/food/snacks/meatball,
+ /obj/item/weapon/reagent_containers/food/snacks/cheesewedge
+ )
+ result = /obj/item/weapon/reagent_containers/food/snacks/meat_pocket
+ result_quantity = 2
+
+/datum/recipe/bacon_flatbread
+ appliance = OVEN
+ fruit = list("tomato" = 2)
+ items = list(
+ /obj/item/weapon/reagent_containers/food/snacks/sliceable/flatdough,
+ /obj/item/weapon/reagent_containers/food/snacks/cheesewedge,
+ /obj/item/weapon/reagent_containers/food/snacks/bacon,
+ /obj/item/weapon/reagent_containers/food/snacks/bacon,
+ /obj/item/weapon/reagent_containers/food/snacks/bacon,
+ /obj/item/weapon/reagent_containers/food/snacks/bacon
+ )
+ result = /obj/item/weapon/reagent_containers/food/snacks/bacon_flatbread
+
+/datum/recipe/truffle
+ appliance = OVEN
+ reagents = list("sugar" = 5, "cream" = 5)
+ items = list(
+ /obj/item/weapon/reagent_containers/food/snacks/chocolatebar
+ )
+ reagent_mix = RECIPE_REAGENT_REPLACE
+ result = /obj/item/weapon/reagent_containers/food/snacks/truffle
+ result_quantity = 4
+
+/datum/recipe/croissant
+ appliance = OVEN
+ reagents = list("sodiumchloride" = 1, "water" = 5, "milk" = 5, "yeast" = 5)
+ reagent_mix = RECIPE_REAGENT_REPLACE
+ items = list(/obj/item/weapon/reagent_containers/food/snacks/dough)
+ result = /obj/item/weapon/reagent_containers/food/snacks/croissant
+
+/datum/recipe/macncheese
+ appliance = OVEN
+ reagents = list("milk" = 5)
+ reagent_mix = RECIPE_REAGENT_REPLACE
+ items = list(
+ /obj/item/weapon/reagent_containers/food/snacks/spagetti,
+ /obj/item/weapon/reagent_containers/food/snacks/cheesewedge
+ )
+ result = /obj/item/weapon/reagent_containers/food/snacks/macncheese
\ No newline at end of file
diff --git a/code/modules/mob/living/silicon/robot/drone/drone_items.dm b/code/modules/mob/living/silicon/robot/drone/drone_items.dm
index 3a11f3ae7c..b689753365 100644
--- a/code/modules/mob/living/silicon/robot/drone/drone_items.dm
+++ b/code/modules/mob/living/silicon/robot/drone/drone_items.dm
@@ -153,7 +153,9 @@
/obj/item/weapon/reagent_containers/glass,
/obj/item/weapon/reagent_containers/food,
/obj/item/seeds,
- /obj/item/weapon/grown
+ /obj/item/weapon/grown,
+ /obj/item/trash,
+ /obj/item/weapon/reagent_containers/cooking_container
)
/obj/item/weapon/gripper/gravekeeper //Used for handling grave things, flowers, etc.
diff --git a/code/modules/reagents/Chemistry-Holder.dm b/code/modules/reagents/Chemistry-Holder.dm
index 467d7c37a9..33f666e6f3 100644
--- a/code/modules/reagents/Chemistry-Holder.dm
+++ b/code/modules/reagents/Chemistry-Holder.dm
@@ -282,6 +282,34 @@
trans_to(target, amount, multiplier, copy)
+/datum/reagents/proc/trans_type_to(var/target, var/rtype, var/amount = 1)
+ if (!target)
+ return
+
+ var/datum/reagent/transfering_reagent = get_reagent(rtype)
+
+ if (istype(target, /atom))
+ var/atom/A = target
+ if (!A.reagents || !A.simulated)
+ return
+
+ amount = min(amount, transfering_reagent.volume)
+
+ if(!amount)
+ return
+
+
+ var/datum/reagents/F = new /datum/reagents(amount)
+ var/tmpdata = get_data(rtype)
+ F.add_reagent(rtype, amount, tmpdata)
+ remove_reagent(rtype, amount)
+
+
+ if (istype(target, /atom))
+ return F.trans_to(target, amount) // Let this proc check the atom's type
+ else if (istype(target, /datum/reagents))
+ return F.trans_to_holder(target, amount)
+
/datum/reagents/proc/trans_id_to(var/atom/target, var/id, var/amount = 1)
if (!target || !target.reagents)
return
@@ -396,3 +424,61 @@
/atom/proc/create_reagents(var/max_vol)
reagents = new/datum/reagents(max_vol, src)
+
+// Aurora Cooking Port
+/datum/reagents/proc/get_reagent(var/id) // Returns reference to reagent matching passed ID
+ for(var/datum/reagent/A in reagent_list)
+ if (A.id == id)
+ return A
+
+ return null
+
+//Spreads the contents of this reagent holder all over the vicinity of the target turf.
+/datum/reagents/proc/splash_area(var/turf/epicentre, var/range = 3, var/portion = 1.0, var/multiplier = 1, var/copy = 0)
+ var/list/things = dview(range, epicentre, INVISIBILITY_LIGHTING)
+ var/list/turfs = list()
+ for (var/turf/T in things)
+ turfs += T
+ if (!turfs.len)
+ return//Nowhere to splash to, somehow
+ //Create a temporary holder to hold all the amount that will be spread
+ var/datum/reagents/R = new /datum/reagents(total_volume * portion * multiplier)
+ trans_to_holder(R, total_volume * portion, multiplier, copy)
+ //The exact amount that will be given to each turf
+ var/turfportion = R.total_volume / turfs.len
+ for (var/turf/T in turfs)
+ var/datum/reagents/TR = new /datum/reagents(turfportion)
+ R.trans_to_holder(TR, turfportion, 1, 0)
+ TR.splash_turf(T)
+ qdel(R)
+
+
+//Spreads the contents of this reagent holder all over the target turf, dividing among things in it.
+//50% is divided between mobs, 20% between objects, and whatever is left on the turf itself
+/datum/reagents/proc/splash_turf(var/turf/T, var/amount = null, var/multiplier = 1, var/copy = 0)
+ if (isnull(amount))
+ amount = total_volume
+ else
+ amount = min(amount, total_volume)
+ if (amount <= 0)
+ return
+ var/list/mobs = list()
+ for (var/mob/M in T)
+ mobs += M
+ var/list/objs = list()
+ for (var/obj/O in T)
+ objs += O
+ if (objs.len)
+ var/objportion = (amount * 0.2) / objs.len
+ for (var/o in objs)
+ var/obj/O = o
+ trans_to(O, objportion, multiplier, copy)
+ amount = min(amount, total_volume)
+ if (mobs.len)
+ var/mobportion = (amount * 0.5) / mobs.len
+ for (var/m in mobs)
+ var/mob/M = m
+ trans_to(M, mobportion, multiplier, copy)
+ trans_to(T, total_volume, multiplier, copy)
+ if (total_volume <= 0)
+ qdel(src)
\ No newline at end of file
diff --git a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Food-Drinks.dm b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Food-Drinks.dm
index d536dc585e..f1e991ae42 100644
--- a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Food-Drinks.dm
+++ b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Food-Drinks.dm
@@ -48,6 +48,192 @@
M.adjust_nutrition(nutriment_factor * removed)
M.add_chemical_effect(CE_BLOODRESTORE, 4 * removed)
+// Aurora Cooking Port Insertion Begin
+
+/*
+ Coatings are used in cooking. Dipping food items in a reagent container with a coating in it
+ allows it to be covered in that, which will add a masked overlay to the sprite.
+ Coatings have both a raw and a cooked image. Raw coating is generally unhealthy
+ Generally coatings are intended for deep frying foods
+*/
+/datum/reagent/nutriment/coating
+ nutriment_factor = 6 //Less dense than the food itself, but coatings still add extra calories
+ var/messaged = 0
+ var/icon_raw
+ var/icon_cooked
+ var/coated_adj = "coated"
+ var/cooked_name = "coating"
+
+/datum/reagent/nutriment/coating/affect_ingest(var/mob/living/carbon/M, var/alien, var/removed)
+
+ //We'll assume that the batter isnt going to be regurgitated and eaten by someone else. Only show this once
+ if(data["cooked"] != 1)
+ if (!messaged)
+ to_chat(M, "Ugh, this raw [name] tastes disgusting.")
+ nutriment_factor *= 0.5
+ messaged = 1
+
+ //Raw coatings will sometimes cause vomiting. 75% chance of this happening.
+ if(prob(75))
+ M.vomit()
+ ..()
+
+/datum/reagent/nutriment/coating/initialize_data(var/newdata) // Called when the reagent is created.
+ ..()
+ if (!data)
+ data = list()
+ else
+ if (isnull(data["cooked"]))
+ data["cooked"] = 0
+ return
+ data["cooked"] = 0
+ if (holder && holder.my_atom && istype(holder.my_atom,/obj/item/weapon/reagent_containers/food/snacks))
+ data["cooked"] = 1
+ name = cooked_name
+
+ //Batter which is part of objects at compiletime spawns in a cooked state
+
+
+//Handles setting the temperature when oils are mixed
+/datum/reagent/nutriment/coating/mix_data(var/newdata, var/newamount)
+ if (!data)
+ data = list()
+
+ data["cooked"] = newdata["cooked"]
+
+/datum/reagent/nutriment/coating/batter
+ name = "batter mix"
+ cooked_name = "batter"
+ id = "batter"
+ color = "#f5f4e9"
+ reagent_state = LIQUID
+ icon_raw = "batter_raw"
+ icon_cooked = "batter_cooked"
+ coated_adj = "battered"
+
+/datum/reagent/nutriment/coating/beerbatter
+ name = "beer batter mix"
+ cooked_name = "beer batter"
+ id = "beerbatter"
+ color = "#f5f4e9"
+ reagent_state = LIQUID
+ icon_raw = "batter_raw"
+ icon_cooked = "batter_cooked"
+ coated_adj = "beer-battered"
+
+/datum/reagent/nutriment/coating/beerbatter/affect_ingest(var/mob/living/carbon/M, var/alien, var/removed)
+ ..()
+ M.add_chemical_effect(CE_ALCOHOL, 0.02) //Very slightly alcoholic
+
+//=========================
+//Fats
+//=========================
+/datum/reagent/nutriment/triglyceride
+ name = "triglyceride"
+ id = "triglyceride"
+ description = "More commonly known as fat, the third macronutrient, with over double the energy content of carbs and protein"
+
+ reagent_state = SOLID
+ nutriment_factor = 27//The caloric ratio of carb/protein/fat is 4:4:9
+ color = "#CCCCCC"
+
+/datum/reagent/nutriment/triglyceride/oil
+ //Having this base class incase we want to add more variants of oil
+ name = "Oil"
+ id = "oil"
+ description = "Oils are liquid fats."
+ reagent_state = LIQUID
+ color = "#c79705"
+ touch_met = 1.5
+ var/lastburnmessage = 0
+
+/datum/reagent/nutriment/triglyceride/oil/touch_turf(var/turf/simulated/T)
+ if(!istype(T))
+ return
+
+ var/hotspot = (locate(/obj/fire) in T)
+ if(hotspot && !istype(T, /turf/space))
+ var/datum/gas_mixture/lowertemp = T.remove_air(T:air:total_moles)
+ lowertemp.temperature = max(min(lowertemp.temperature-2000, lowertemp.temperature / 2), 0)
+ lowertemp.react()
+ T.assume_air(lowertemp)
+ qdel(hotspot)
+
+ if(volume >= 3)
+ T.wet_floor(2)
+
+/datum/reagent/nutriment/triglyceride/oil/initialize_data(var/newdata) // Called when the reagent is created.
+ ..()
+ if (!data)
+ data = list("temperature" = T20C)
+
+//Handles setting the temperature when oils are mixed
+/datum/reagent/nutriment/triglyceride/oil/mix_data(var/newdata, var/newamount)
+
+ if (!data)
+ data = list()
+
+ var/ouramount = volume - newamount
+ if (ouramount <= 0 || !data["temperature"] || !volume)
+ //If we get here, then this reagent has just been created, just copy the temperature exactly
+ data["temperature"] = newdata["temperature"]
+
+ else
+ //Our temperature is set to the mean of the two mixtures, taking volume into account
+ var/total = (data["temperature"] * ouramount) + (newdata["temperature"] * newamount)
+ data["temperature"] = total / volume
+
+ return ..()
+
+
+//Calculates a scaling factor for scalding damage, based on the temperature of the oil and creature's heat resistance
+/datum/reagent/nutriment/triglyceride/oil/proc/heatdamage(var/mob/living/carbon/M)
+ var/threshold = 360//Human heatdamage threshold
+ var/datum/species/S = M.get_species(1)
+ if (S && istype(S))
+ threshold = S.heat_level_1
+
+ //If temperature is too low to burn, return a factor of 0. no damage
+ if (data["temperature"] < threshold)
+ return 0
+
+ //Step = degrees above heat level 1 for 1.0 multiplier
+ var/step = 60
+ if (S && istype(S))
+ step = (S.heat_level_2 - S.heat_level_1)*1.5
+
+ . = data["temperature"] - threshold
+ . /= step
+ . = min(., 2.5)//Cap multiplier at 2.5
+
+/datum/reagent/nutriment/triglyceride/oil/affect_touch(var/mob/living/carbon/M, var/alien, var/removed)
+ var/dfactor = heatdamage(M)
+ if (dfactor)
+ M.take_organ_damage(0, removed * 1.5 * dfactor)
+ data["temperature"] -= (6 * removed) / (1 + volume*0.1)//Cools off as it burns you
+ if (lastburnmessage+100 < world.time )
+ to_chat(M, "Searing hot oil burns you, wash it off quick!")
+ lastburnmessage = world.time
+
+/datum/reagent/nutriment/triglyceride/oil/corn
+ name = "Corn Oil"
+ id = "cornoil"
+ description = "An oil derived from various types of corn."
+ taste_description = "oil"
+ taste_mult = 0.1
+ reagent_state = LIQUID
+
+/datum/reagent/nutriment/triglyceride/oil/peanut
+ name = "Peanut Oil"
+ id = "peanutoil"
+ description = "An oil derived from various types of nuts."
+ taste_description = "nuts"
+ taste_mult = 0.3
+ nutriment_factor = 15
+ color = "#4F3500"
+
+// Aurora Cooking Port Insertion End
+
/datum/reagent/nutriment/glucose
name = "Glucose"
id = "glucose"
@@ -79,6 +265,24 @@
return
..()
+/datum/reagent/nutriment/protein/tofu
+ name = "tofu protein"
+ id = "tofu"
+ color = "#fdffa8"
+ taste_description = "tofu"
+
+/datum/reagent/nutriment/protein/seafood
+ name = "seafood protein"
+ id = "seafood"
+ color = "#f5f4e9"
+ taste_description = "fish"
+
+/datum/reagent/nutriment/protein/cheese // Also bad for skrell.
+ name = "cheese"
+ id = "cheese"
+ color = "#EDB91F"
+ taste_description = "cheese"
+
/datum/reagent/nutriment/protein/egg // Also bad for skrell.
name = "egg yolk"
id = "egg"
@@ -251,56 +455,6 @@
nutriment_factor = 1
color = "#801E28"
-/datum/reagent/nutriment/cornoil
- name = "Corn Oil"
- id = "cornoil"
- description = "An oil derived from various types of corn."
- taste_description = "slime"
- taste_mult = 0.1
- reagent_state = LIQUID
- nutriment_factor = 20
- color = "#302000"
-
-/datum/reagent/nutriment/cornoil/touch_turf(var/turf/simulated/T)
- if(!istype(T))
- return
-
- var/hotspot = (locate(/obj/fire) in T)
- if(hotspot && !istype(T, /turf/space))
- var/datum/gas_mixture/lowertemp = T.remove_air(T:air:total_moles)
- lowertemp.temperature = max(min(lowertemp.temperature-2000, lowertemp.temperature / 2), 0)
- lowertemp.react()
- T.assume_air(lowertemp)
- qdel(hotspot)
-
- if(volume >= 3)
- T.wet_floor()
-
-/datum/reagent/nutriment/peanutoil
- name = "Peanut Oil"
- id = "peanutoil"
- description = "An oil derived from various types of nuts."
- taste_description = "nuts"
- taste_mult = 0.3
- reagent_state = LIQUID
- nutriment_factor = 15
- color = "#4F3500"
-
-/datum/reagent/nutriment/peanutoil/touch_turf(var/turf/simulated/T)
- if(!istype(T))
- return
-
- var/hotspot = (locate(/obj/fire) in T)
- if(hotspot && !istype(T, /turf/space))
- var/datum/gas_mixture/lowertemp = T.remove_air(T:air:total_moles)
- lowertemp.temperature = max(min(lowertemp.temperature-2000, lowertemp.temperature / 2), 0)
- lowertemp.react()
- T.assume_air(lowertemp)
- qdel(hotspot)
-
- if(volume >= 5)
- T.wet_floor()
-
/datum/reagent/nutriment/peanutbutter
name = "Peanut Butter"
id = "peanutbutter"
@@ -424,6 +578,22 @@
reagent_state = LIQUID
color = "#365E30"
overdose = REAGENTS_OVERDOSE
+
+//SYNNONO MEME FOODS EXPANSION - Credit to Synnono
+
+/datum/reagent/spacespice
+ name = "Space Spice"
+ id = "spacespice"
+ description = "An exotic blend of spices for cooking. Definitely not worms."
+ reagent_state = SOLID
+ color = "#e08702"
+
+/datum/reagent/browniemix
+ name = "Brownie Mix"
+ id = "browniemix"
+ description = "A dry mix for making delicious brownies."
+ reagent_state = SOLID
+ color = "#441a03"
/datum/reagent/frostoil
name = "Frost Oil"
diff --git a/code/modules/reagents/Chemistry-Recipes.dm b/code/modules/reagents/Chemistry-Recipes.dm
index 44e1f60621..a43adf26b5 100644
--- a/code/modules/reagents/Chemistry-Recipes.dm
+++ b/code/modules/reagents/Chemistry-Recipes.dm
@@ -1314,6 +1314,7 @@
id = "dough"
result = null
required_reagents = list("egg" = 3, "flour" = 10)
+ inhibitors = list("water" = 1, "beer" = 1) //To prevent it messing with batter recipes
result_amount = 1
/datum/chemical_reaction/food/dough/on_reaction(var/datum/reagents/holder, var/created_volume)
@@ -2602,3 +2603,50 @@
required_reagents = list("radium" = 1, "spidertoxin" = 1, "sifsap" = 1)
catalysts = list("sifsap" = 10)
result_amount = 2
+
+/*
+====================
+ Aurora Food
+====================
+*/
+
+/datum/chemical_reaction/coating/batter
+ name = "Batter"
+ id = "batter"
+ result = "batter"
+ required_reagents = list("egg" = 3, "flour" = 10, "water" = 5, "sodiumchloride" = 2)
+ result_amount = 20
+
+/datum/chemical_reaction/coating/beerbatter
+ name = "Beer Batter"
+ id = "beerbatter"
+ result = "beerbatter"
+ required_reagents = list("egg" = 3, "flour" = 10, "beer" = 5, "sodiumchloride" = 2)
+ result_amount = 20
+
+/datum/chemical_reaction/browniemix
+ name = "Brownie Mix"
+ id = "browniemix"
+ result = "browniemix"
+ required_reagents = list("flour" = 5, "coco" = 5, "sugar" = 5)
+ result_amount = 15
+
+/datum/chemical_reaction/butter
+ name = "Butter"
+ id = "butter"
+ result = null
+ required_reagents = list("cream" = 20, "sodiumchloride" = 1)
+ result_amount = 1
+
+/datum/chemical_reaction/butter/on_reaction(var/datum/reagents/holder, var/created_volume)
+ var/location = get_turf(holder.my_atom)
+ for(var/i = 1, i <= created_volume, i++)
+ new /obj/item/weapon/reagent_containers/food/snacks/spreads/butter(location)
+ return
+
+/datum/chemical_reaction/browniemix
+ name = "Brownie Mix"
+ id = "browniemix"
+ result = "browniemix"
+ required_reagents = list("flour" = 5, "coco" = 5, "sugar" = 5)
+ result_amount = 15
\ No newline at end of file
diff --git a/code/modules/reagents/reagent_dispenser.dm b/code/modules/reagents/reagent_dispenser.dm
index eb792fda70..129af30fe9 100644
--- a/code/modules/reagents/reagent_dispenser.dm
+++ b/code/modules/reagents/reagent_dispenser.dm
@@ -390,3 +390,27 @@
/obj/structure/reagent_dispensers/acid/Initialize()
. = ..()
reagents.add_reagent("sacid", 1000)
+
+//Cooking oil refill tank
+/obj/structure/reagent_dispensers/cookingoil
+ name = "cooking oil tank"
+ desc = "A fifty-litre tank of commercial-grade corn oil, intended for use in large scale deep fryers. Store in a cool, dark place"
+ icon = 'icons/obj/objects.dmi'
+ icon_state = "oiltank"
+ amount_per_transfer_from_this = 120
+
+/obj/structure/reagent_dispensers/cookingoil/New()
+ ..()
+ reagents.add_reagent("cornoil",5000)
+
+/obj/structure/reagent_dispensers/cookingoil/bullet_act(var/obj/item/projectile/Proj)
+ if(Proj.get_structure_damage())
+ explode()
+
+/obj/structure/reagent_dispensers/cookingoil/ex_act()
+ explode()
+
+/obj/structure/reagent_dispensers/cookingoil/proc/explode()
+ reagents.splash_area(get_turf(src), 3)
+ visible_message(span("danger", "The [src] bursts open, spreading oil all over the area."))
+ qdel(src)
diff --git a/code/modules/research/designs/circuits/circuits.dm b/code/modules/research/designs/circuits/circuits.dm
index e59546ed68..d670f7f538 100644
--- a/code/modules/research/designs/circuits/circuits.dm
+++ b/code/modules/research/designs/circuits/circuits.dm
@@ -613,13 +613,48 @@ CIRCUITS BELOW
req_tech = list(TECH_DATA = 4, TECH_BIO = 3)
build_path = /obj/item/weapon/circuitboard/aicore
sort_string = "XAAAA"
+// Cooking Appliances
+/datum/design/circuit/microwave
+ name = "microwave board"
+ id = "microwave_board"
+ req_tech = list(TECH_MAGNET = 2, TECH_ENGINEERING = 2)
+ build_path = /obj/item/weapon/circuitboard/microwave
+ sort_string = "HACAM"
+
+/datum/design/circuit/oven
+ name = "oven board"
+ id = "oven_board"
+ req_tech = list(TECH_MAGNET = 2, TECH_ENGINEERING = 2)
+ build_path = /obj/item/weapon/circuitboard/oven
+ sort_string = "HACAN"
+
+/datum/design/circuit/fryer
+ name = "deep fryer board"
+ id = "fryer_board"
+ req_tech = list(TECH_MAGNET = 2, TECH_ENGINEERING = 2)
+ build_path = /obj/item/weapon/circuitboard/fryer
+ sort_string = "HACAO"
+
+/datum/design/circuit/cerealmaker
+ name = "cereal maker board"
+ id = "cerealmaker_board"
+ req_tech = list(TECH_MAGNET = 2, TECH_ENGINEERING = 2)
+ build_path = /obj/item/weapon/circuitboard/cerealmaker
+ sort_string = "HACAP"
+
+/datum/design/circuit/candymaker
+ name = "candy machine board"
+ id = "candymachine_board"
+ req_tech = list(TECH_MAGNET = 2, TECH_ENGINEERING = 2)
+ build_path = /obj/item/weapon/circuitboard/candymachine
+ sort_string = "HACAQ"
/datum/design/circuit/microwave/advanced
name = "deluxe microwave"
id = "deluxe microwave"
req_tech = list(TECH_DATA = 5, TECH_ENGINEERING = 5, TECH_BLUESPACE = 4)
build_path = /obj/item/weapon/circuitboard/microwave/advanced
- sort_string = "MAAAC"
+ sort_string = "HACAA"
/* I have no idea how this was even running before, but it doesn't seem to be necessary.
diff --git a/html/changelogs/rykka-stormheart-pr-7344.yml b/html/changelogs/rykka-stormheart-pr-7344.yml
new file mode 100644
index 0000000000..e8394c72cb
--- /dev/null
+++ b/html/changelogs/rykka-stormheart-pr-7344.yml
@@ -0,0 +1,43 @@
+################################
+# Example Changelog File
+#
+# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb.
+#
+# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.)
+# When it is, any changes listed below will disappear.
+#
+# Valid Prefixes:
+# bugfix
+# wip (For works in progress)
+# tweak
+# soundadd
+# sounddel
+# rscadd (general adding of nice things)
+# rscdel (general deleting of nice things)
+# imageadd
+# imagedel
+# maptweak
+# spellcheck (typo fixes)
+# experiment
+#################################
+
+# Your name.
+author: Rykka Stormheart
+
+# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again.
+delete-after: True
+
+# Any changes you've made. See valid prefix list above.
+# INDENT WITH TWO SPACES. NOT TABS. SPACES.
+# SCREW THIS UP AND IT WON'T WORK.
+# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries.
+# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog.
+changes:
+ - rscadd: "Ported over Aurora Cooking from AuroraStation and Citadel-RP!"
+ - rscadd: "Refactored Recipes to be separated per-appliance, and all appliances have a use!"
+ - rscadd: "Please take note, Chefs, to pre-heat you appliances at the start of your shift."
+ - rscadd: "Fryer Recipes require batter before they can be made!"
+ - rscadd: "Fire alarms will go off if you burn food!"
+ - rscadd: "The largest change - Cooking takes TIME. Around 6 minutes for the largest recipes in the game."
+ - rscadd: "Too many other changes to list - refer to PR #7344 https://github.com/PolarisSS13/Polaris/pull/7344"
+ - rscdel: "Removed fun, and any sense of joy in the game."
diff --git a/icons/obj/cooking_machines.dmi b/icons/obj/cooking_machines.dmi
index 666a31b9d0..2badbd97e9 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 64f4753b7b..32057eeb6c 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 0000000000..f794f3f7de
Binary files /dev/null and b/icons/obj/food_syn.dmi differ
diff --git a/icons/obj/objects.dmi b/icons/obj/objects.dmi
index 6973896c3c..5b19f0d43b 100644
Binary files a/icons/obj/objects.dmi and b/icons/obj/objects.dmi differ
diff --git a/icons/obj/trash.dmi b/icons/obj/trash.dmi
index e55d92293d..436ebe657d 100644
Binary files a/icons/obj/trash.dmi and b/icons/obj/trash.dmi differ
diff --git a/maps/northern_star/polaris-1.dmm b/maps/northern_star/polaris-1.dmm
index e6740cebd4..8c75ee31ed 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/mixer/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/mixer/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 13fc6a8b74..1bf367399d 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/mixer/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/mixer/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/random/maintenance/clean,/obj/random/maintenance/clean,/obj/random/crate,/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)
diff --git a/maps/southern_cross/southern_cross-6.dmm b/maps/southern_cross/southern_cross-6.dmm
index 755bcf0cb8..b7a4a729f4 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/mixer/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/mixer/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)
diff --git a/maps/submaps/surface_submaps/plains/Diner.dmm b/maps/submaps/surface_submaps/plains/Diner.dmm
index 5abfd1a211..9aeacf0d48 100644
--- a/maps/submaps/surface_submaps/plains/Diner.dmm
+++ b/maps/submaps/surface_submaps/plains/Diner.dmm
@@ -1,81 +1,459 @@
-"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)
+//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/mixer/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) = {"
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
diff --git a/maps/submaps/surface_submaps/wilderness/Manor1.dmm b/maps/submaps/surface_submaps/wilderness/Manor1.dmm
index e343d57686..435595ace3 100644
--- a/maps/submaps/surface_submaps/wilderness/Manor1.dmm
+++ b/maps/submaps/surface_submaps/wilderness/Manor1.dmm
@@ -48,9 +48,9 @@
"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)
+"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/cooker/grill,/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)
diff --git a/nano/README.md b/nano/README.md
index 5497050a2e..280996e92b 100644
--- a/nano/README.md
+++ b/nano/README.md
@@ -7,8 +7,237 @@ NanoUI uses doT (https://olado.github.io/doT/index.html) as its templating engin
Markup tags are used to add dynamic content to the template.
TODO - This documentation is incomplete.
-### Print Tag
-- The print tag outputs variable as text to the UI.
+### Credit goes to Neersighted of /tg/station for the styling and large chunks of content of this README.
+
+NanoUI is one of the three primary user interface libraries currently in use
+on Polaris (browse(), /datum/browser, NanoUI). It is the most complex of the three,
+but offers quite a few advantages, most notably in default features.
+
+NanoUI adds a `ui_interact()` proc to all atoms, which, ideally, should be called
+via `interact()`; However, the current standardized layout is `ui_interact()` being
+directly called from anywhere in the atom, generally `attack_hand()` or `attack_self()`.
+The `ui_interact()` proc should not contain anything but NanoUI data and code.
+
+Here is a simple example from
+[poolcontroller.dm @ ParadiseSS13/Paradise](https://github.com/ParadiseSS13/Paradise/blob/master/code/game/machinery/poolcontroller.dm).
+
+```
+ /obj/machinery/poolcontroller/attack_hand(mob/user)
+ ui_interact(user)
+
+ /obj/machinery/poolcontroller/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1)
+ var/data[0]
+
+ data["currentTemp"] = temperature
+ data["emagged"] = emagged
+ data["TempColor"] = temperaturecolor
+
+ ui = SSnano.try_update_ui(user, src, ui_key, ui, data, force_open)
+ if(!ui)
+ ui = new(user, src, ui_key, "poolcontroller.tmpl", "Pool Controller Interface", 520, 410)
+ ui.set_initial_data(data)
+ ui.open()
+```
+
+
+
+## Components
+
+### `ui_interact()`
+
+The `ui_interact()` proc is used to open a NanoUI (or update it if already open).
+As NanoUI will call this proc to update your UI, you should include the data list
+within it. On /tg/station, this is handled via `get_ui_data()`, however, as it would
+take quite a long time to convert every single one of the 100~ UI's to using such a method,
+it is instead just directly created within `ui_interact()`.
+
+The parameters for `try_update_ui` and `/datum/nanoui/New()` are documented in
+the code [here](https://github.com/PolarisSS13/Polaris/tree/master/code/modules/nano).
+
+For:
+`/datum/nanoui/New(nuser, nsrc_object, nui_key, ntemplate_filename, ntitle = 0, nwidth = 0, nheight = 0, var/atom/nref = null, var/datum/nanoui/master_ui = null, var/datum/topic_state/state = default_state)`
+Most of the parameters are fairly self explanatory.
+ - `nuser` is the person who gets to see the UI window
+ - `nsrc_obj` is the thing you want to call Topic() on
+ - `nui_key` should almost always be `main`
+ - `ntemplate_filename` is the filename with `.tmpl` extension in /nano/templates/
+ - `ntitle` is what you want to show at the top of the UI window
+ - `nwidth` is the width of the new window
+ - `nheight` is the height of the new window
+ - `nref` is used for onclose()
+ - `master_ui` is used for UIs that have multiple children, see code for examples
+ - And finally, `state`.
+
+The most interesting parameter here is `state`, which allows the object to choose the
+checks that allow the UI to be interacted with.
+
+The default state (`default_state`) checks that the user is alive, conscious,
+and within a few tiles. It allows universal access to silicons. Other states
+exist, and may be more appropriate for different interfaces. For example,
+`physical_state` requires the user to be nearby, even if they are a silicon.
+`inventory_state` checks that the user has the object in their first-level
+(not container) inventory, this is suitable for devices such as radios;
+`admin_state` checks that the user is an admin (good for admin tools).
+
+```
+ /obj/item/the/thing/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, force_open = 0)
+ var/data[0]
+
+ ui = SSnano.try_update_ui(user, src, ui_key, ui, data, force_open = force_open)
+ if(!ui)
+ ui = new(user, src, ui_key, "template_name_here.tmpl", title, width, height)
+ ui.set_initial_data(data)
+ ui.open()
+```
+
+### `Topic()`
+
+`Topic()` handles input from the UI. Typically you will recieve some data from
+a button press, or pop up a input dialog to take a numerical value from the
+user. Sanity checking is useful here, as `Topic()` is trivial to spoof with
+arbitrary data.
+
+The `Topic()` interface is just the same as with more conventional,
+stringbuilder-based UIs, and this needs little explanation.
+
+```
+ /obj/item/weapon/tank/Topic(href, href_list)
+ if(..())
+ return 1
+
+ if(href_list["dist_p"])
+ if(href_list["dist_p"] == "custom")
+ var/custom = input(usr, "What rate do you set the regulator to? The dial reads from 0 to [TANK_MAX_RELEASE_PRESSURE].") as null|num
+ if(isnum(custom))
+ href_list["dist_p"] = custom
+ .()
+ else if(href_list["dist_p"] == "reset")
+ distribute_pressure = TANK_DEFAULT_RELEASE_PRESSURE
+ else if(href_list["dist_p"] == "min")
+ distribute_pressure = TANK_MIN_RELEASE_PRESSURE
+ else if(href_list["dist_p"] == "max")
+ distribute_pressure = TANK_MAX_RELEASE_PRESSURE
+ else
+ distribute_pressure = text2num(href_list["dist_p"])
+ distribute_pressure = min(max(round(distribute_pressure), TANK_MIN_RELEASE_PRESSURE), TANK_MAX_RELEASE_PRESSURE)
+ if(href_list["stat"])
+ if(istype(loc,/mob/living/carbon))
+ var/mob/living/carbon/location = loc
+ if(location.internal == src)
+ location.internal = null
+ location.internals.icon_state = "internal0"
+ to_chat(usr, "You close the tank release valve.")
+ if(location.internals)
+ location.internals.icon_state = "internal0"
+ else
+ if(location.wear_mask && (location.wear_mask.flags & MASKINTERNALS))
+ location.internal = src
+ to_chat(usr, "You open \the [src] valve.")
+ if(location.internals)
+ location.internals.icon_state = "internal1"
+ else
+ to_chat(usr, "You need something to connect to \the [src]!")
+```
+
+### Template (doT)
+
+NanoUI templates are written in a customized version of
+[doT](https://olado.github.io/doT/index.html),
+a Javascript template engine. Data is accessed from the `data` object,
+configuration (not used in pratice) from the `config` object, and template
+helpers are accessed from the `helper` object.
+
+It is worth explaining that Polaris's version of doT uses custom syntax
+for the templates. The `?` operator is split into `if`, `else if parameter`, and `else`,
+instead of `?`, `?? paramater`, `??`, and the `=` operator is replaced with `:`. Refer
+to the chart below for a full comparison.
+
+#### Helpers
+
+##### Link
+
+`{{:helpers.link(text, icon, {'parameter': true}, status, class, id)}}`
+
+Used to create a link (button), which will pass its parameters to `Topic()`.
+
+* Text: The text content of the link/button
+* Icon: The icon shown to the left of the link (http://fontawesome.io/)
+* Parameters: The values to be passed to `Topic()`'s `href_list`.
+* Status: `null` for clickable, a class for selected/unclickable.
+* Class: Styling to apply to the link.
+* ID: Sets the element ID.
+
+Status and Class have almost the same effect. However, changing a link's status
+from `null` to something else makes it unclickable, while setting a custom Class
+does not.
+
+Ternary operators are often used to avoid writing many `if` statements.
+For example, depending on if a value in `data` is true or false we can set a
+button to clickable or selected:
+
+`{{:helper.link('Close', 'lock', {'stat': 1}, data.valveOpen ? null : 'selected')}}`
+
+Available classes/statuses are:
+
+* null (normal)
+* selected
+* disabled
+* yellowButton
+* redButton
+* linkDanger
+
+##### displayBar
+
+`{{:helpers.displayBar(value, min, max, class, text)}}`
+
+Used to create a bar, to display a numerical value visually. Min and Max default
+to 0 and 100, but you can change them to avoid doing your own percent calculations.
+
+* Value: Defaults to a percentage but can be a straight number if Min/Max are set
+* Min: The minimum value (left hand side) of the bar
+* Max: The maximum value (right hand side) of the bar
+* Class: The color of the bar (null/normal, good, average, bad)
+* Text: The text label for the data contained in the bar (often just number form)
+
+As with buttons, ternary operators are quite useful:
+
+`{{:helper.bar(data.tankPressure, 0, 1013, (data.tankPressure > 200) ? 'good' : ((data.tankPressure > 100) ? 'average' : 'bad'))}}`
+
+
+#### doT
+
+doT is a simple template language, with control statements mixed in with
+regular HTML and interpolation expressions.
+
+However, Polaris uses a custom version with a different syntax. Refer
+to the chart below for the differences.
+
+Operator | doT | equiv |
+|-----------|------------|-------------------|
+|Conditional| ? | if |
+| | ?? | else |
+| | ?? (param) | else if(param) |
+|Interpolate| = | : |
+|^ + Encode | ! | > |
+|Evaluation | # | # |
+|Defines | ## # | ## # |
+|Iteration | ~ (param) | for (param) |
+
+Here is a simple example from tanks, checking if a variable is true:
+
+```
+ {{if data.maskConnected}}
+ The regulator is connected to a mask.
+ {{else if}}
+ The regulator is not connected to a mask.
+ {{/if}}
+```
+
+The doT tutorial is [here](https://olado.github.io/doT/tutorial.html).
+
+__Print Tag__
+- The print tag outputs the given expression as text to the UI.
+
`{{:data.variable}}`
### If Tag
diff --git a/polaris.dme b/polaris.dme
index ba15805ebf..084611b59c 100644
--- a/polaris.dme
+++ b/polaris.dme
@@ -262,7 +262,6 @@
#include "code\datums\organs.dm"
#include "code\datums\position_point_vector.dm"
#include "code\datums\progressbar.dm"
-#include "code\datums\recipe.dm"
#include "code\datums\riding.dm"
#include "code\datums\soul_link.dm"
#include "code\datums\sun.dm"
@@ -1075,6 +1074,7 @@
#include "code\game\objects\items\weapons\circuitboards\machinery\cloning.dm"
#include "code\game\objects\items\weapons\circuitboards\machinery\engineering.dm"
#include "code\game\objects\items\weapons\circuitboards\machinery\jukebox.dm"
+#include "code\game\objects\items\weapons\circuitboards\machinery\kitchen_appliances.dm"
#include "code\game\objects\items\weapons\circuitboards\machinery\mech_recharger.dm"
#include "code\game\objects\items\weapons\circuitboards\machinery\mining_drill.dm"
#include "code\game\objects\items\weapons\circuitboards\machinery\pacman.dm"
@@ -1755,8 +1755,12 @@
#include "code\modules\flufftext\look_up.dm"
#include "code\modules\flufftext\TextFilters.dm"
#include "code\modules\food\food.dm"
+#include "code\modules\food\recipe.dm"
#include "code\modules\food\recipe_dump.dm"
+#include "code\modules\food\recipes_fryer.dm"
+#include "code\modules\food\recipes_grill.dm"
#include "code\modules\food\recipes_microwave.dm"
+#include "code\modules\food\recipes_oven.dm"
#include "code\modules\food\drinkingglass\drinkingglass.dm"
#include "code\modules\food\drinkingglass\extras.dm"
#include "code\modules\food\drinkingglass\glass_boxes.dm"
@@ -1782,10 +1786,13 @@
#include "code\modules\food\kitchen\icecream.dm"
#include "code\modules\food\kitchen\microwave.dm"
#include "code\modules\food\kitchen\smartfridge.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\_mixer.dm"
#include "code\modules\food\kitchen\cooking_machines\candy.dm"
#include "code\modules\food\kitchen\cooking_machines\cereal.dm"
+#include "code\modules\food\kitchen\cooking_machines\container.dm"
#include "code\modules\food\kitchen\cooking_machines\fryer.dm"
#include "code\modules\food\kitchen\cooking_machines\grill.dm"
#include "code\modules\food\kitchen\cooking_machines\oven.dm"
diff --git a/sound/machines/fryer/deep_fryer_1.ogg b/sound/machines/fryer/deep_fryer_1.ogg
index 7b726c9de6..ee7a748667 100644
Binary files a/sound/machines/fryer/deep_fryer_1.ogg and b/sound/machines/fryer/deep_fryer_1.ogg differ
diff --git a/sound/machines/fryer/deep_fryer_2.ogg b/sound/machines/fryer/deep_fryer_2.ogg
index 4bd4be7d77..b423f44229 100644
Binary files a/sound/machines/fryer/deep_fryer_2.ogg and b/sound/machines/fryer/deep_fryer_2.ogg differ
diff --git a/sound/machines/fryer/deep_fryer_emerge.ogg b/sound/machines/fryer/deep_fryer_emerge.ogg
index a803dd4c67..4fb29de1c1 100644
Binary files a/sound/machines/fryer/deep_fryer_emerge.ogg and b/sound/machines/fryer/deep_fryer_emerge.ogg differ
diff --git a/sound/machines/fryer/deep_fryer_immerse.ogg b/sound/machines/fryer/deep_fryer_immerse.ogg
index 3c06b865ca..76960ec664 100644
Binary files a/sound/machines/fryer/deep_fryer_immerse.ogg and b/sound/machines/fryer/deep_fryer_immerse.ogg differ
diff --git a/sound/machines/hatch_open.ogg b/sound/machines/hatch_open.ogg
new file mode 100644
index 0000000000..142248416c
Binary files /dev/null and b/sound/machines/hatch_open.ogg differ
|