diff --git a/code/modules/cooking/recipes/cultural/recipes_earth.dm b/code/modules/cooking/recipes/cultural/recipes_earth.dm
index a496f84b687..3b049d697b0 100644
--- a/code/modules/cooking/recipes/cultural/recipes_earth.dm
+++ b/code/modules/cooking/recipes/cultural/recipes_earth.dm
@@ -313,3 +313,16 @@
/obj/item/reagent_containers/food/snacks/cheesewedge
)
result = /obj/item/reagent_containers/food/snacks/taco
+
+// Peanuts
+/decl/recipe/peanuts_bowl
+ appliance = OVEN
+ fruit = list("peanut" = 10)
+ result = /obj/item/reagent_containers/food/snacks/chipplate/peanuts_bowl
+ reagent_mix = RECIPE_REAGENT_REPLACE // So the output isn't 40u total
+
+/decl/recipe/peanuts_bowl_dry
+ appliance = OVEN
+ fruit = list("dried peanut" = 10)
+ result = /obj/item/reagent_containers/food/snacks/chipplate/peanuts_bowl
+ reagent_mix = RECIPE_REAGENT_REPLACE
\ No newline at end of file
diff --git a/code/modules/cooking/recipes/recipes_breads.dm b/code/modules/cooking/recipes/recipes_breads.dm
index e4c0cfe4224..a6a5884849a 100644
--- a/code/modules/cooking/recipes/recipes_breads.dm
+++ b/code/modules/cooking/recipes/recipes_breads.dm
@@ -150,6 +150,39 @@
//================================
// Toasts and Toasted Sandwiches
//================================
+/decl/recipe/toast // Needs to be here otherwise it fucking kills itself
+ appliance = SKILLET
+ reagents = list(/decl/reagent/nutriment/triglyceride = 1)
+ items = list(
+ /obj/item/reagent_containers/food/snacks/breadslice
+ )
+ reagent_mix = RECIPE_REAGENT_REPLACE
+ result = /obj/item/reagent_containers/food/snacks/toast
+
+/decl/recipe/slimetoast_alt
+ appliance = MIX
+ reagents = list(/decl/reagent/slimejelly = 5)
+ items = list(
+ /obj/item/reagent_containers/food/snacks/toast
+ )
+ result = /obj/item/reagent_containers/food/snacks/jelliedtoast/slime
+
+/decl/recipe/jelliedtoast_alt
+ appliance = MIX
+ reagents = list(/decl/reagent/nutriment/cherryjelly = 5)
+ items = list(
+ /obj/item/reagent_containers/food/snacks/toast
+ )
+ result = /obj/item/reagent_containers/food/snacks/jelliedtoast/cherry
+
+/decl/recipe/pbtoast_alt
+ appliance = MIX
+ reagents = list(/decl/reagent/nutriment/peanutbutter = 5)
+ items = list(
+ /obj/item/reagent_containers/food/snacks/toast
+ )
+ result = /obj/item/reagent_containers/food/snacks/pbtoast
+
/decl/recipe/slimetoast
appliance = SKILLET
reagents = list(/decl/reagent/slimejelly = 5)
@@ -166,6 +199,14 @@
)
result = /obj/item/reagent_containers/food/snacks/jelliedtoast/cherry
+/decl/recipe/pbtoast
+ appliance = SKILLET
+ reagents = list(/decl/reagent/nutriment/peanutbutter = 5)
+ items = list(
+ /obj/item/reagent_containers/food/snacks/breadslice
+ )
+ result = /obj/item/reagent_containers/food/snacks/pbtoast
+
/decl/recipe/toastedsandwich
appliance = SKILLET
items = list(
@@ -181,3 +222,21 @@
/obj/item/reagent_containers/food/snacks/cheesewedge
)
result = /obj/item/reagent_containers/food/snacks/grilledcheese
+
+/decl/recipe/egginthebasket
+ appliance = SKILLET
+ items = list(
+ /obj/item/reagent_containers/food/snacks/egg,
+ /obj/item/reagent_containers/food/snacks/breadslice
+ )
+ result = /obj/item/reagent_containers/food/snacks/egginthebasket
+
+/decl/recipe/garlicbread
+ appliance = SKILLET | OVEN
+ reagents = list(/decl/reagent/nutriment/garlicsauce = 5)
+ items = list(
+ /obj/item/reagent_containers/food/snacks/spreads/butter,
+ /obj/item/reagent_containers/food/snacks/breadslice
+ )
+ reagent_mix = RECIPE_REAGENT_REPLACE // Yeah that butter though
+ result = /obj/item/reagent_containers/food/snacks/garlicbread
\ No newline at end of file
diff --git a/code/modules/cooking/recipes/recipes_mix.dm b/code/modules/cooking/recipes/recipes_mix.dm
index 642d8050b27..98a8a90ac41 100644
--- a/code/modules/cooking/recipes/recipes_mix.dm
+++ b/code/modules/cooking/recipes/recipes_mix.dm
@@ -122,6 +122,18 @@
)
result = /obj/item/reagent_containers/food/snacks/bunbun
+/decl/recipe/reubensandwich
+ reagents = list(/decl/reagent/nutriment/mayonnaise = 5, /decl/reagent/nutriment/ketchup = 5)
+ items = list(
+ /obj/item/reagent_containers/food/snacks/toast,
+ /obj/item/reagent_containers/food/snacks/cheesewedge,
+ /obj/item/reagent_containers/food/snacks/sauerkraut,
+ /obj/item/reagent_containers/food/snacks/cutlet,
+ /obj/item/reagent_containers/food/snacks/toast
+ )
+ reagent_mix = RECIPE_REAGENT_MIN
+ result = /obj/item/reagent_containers/food/snacks/reubensandwich
+
/decl/recipe/superbiteburger
fruit = list("tomato" = 1)
reagents = list(/decl/reagent/sodiumchloride = 5, /decl/reagent/blackpepper = 5)
@@ -178,6 +190,14 @@
)
result = /obj/item/reagent_containers/food/snacks/jellysandwich/cherry
+/decl/recipe/pbjsandwich
+ reagents = list(/decl/reagent/nutriment/cherryjelly = 5, /decl/reagent/nutriment/peanutbutter = 5)
+ items = list(
+ /obj/item/reagent_containers/food/snacks/breadslice,
+ /obj/item/reagent_containers/food/snacks/breadslice
+ )
+ result = /obj/item/reagent_containers/food/snacks/pbjsandwich
+
/decl/recipe/tossedsalad
fruit = list("cabbage" = 2, "tomato" = 1, "carrot" = 1, "apple" = 1)
result = /obj/item/reagent_containers/food/snacks/salad/tossedsalad
@@ -321,3 +341,10 @@
)
result = /obj/item/reagent_containers/food/snacks/lardwich
reagent_mix = RECIPE_REAGENT_REPLACE
+
+/decl/recipe/sauerkraut
+ appliance = MIX
+ fruit = list("cabbage" = 1)
+ reagents = list(/decl/reagent/enzyme = 5)
+ result = /obj/item/reagent_containers/food/snacks/sauerkraut
+ reagent_mix = RECIPE_REAGENT_REPLACE
diff --git a/code/modules/hydroponics/seed_datums/vegetables.dm b/code/modules/hydroponics/seed_datums/vegetables.dm
index 2e874814385..9abc33a935b 100644
--- a/code/modules/hydroponics/seed_datums/vegetables.dm
+++ b/code/modules/hydroponics/seed_datums/vegetables.dm
@@ -151,8 +151,8 @@
set_trait(TRAIT_PRODUCTION,6)
set_trait(TRAIT_YIELD,6)
set_trait(TRAIT_POTENCY,10)
- set_trait(TRAIT_PRODUCT_ICON,"potato")
- set_trait(TRAIT_PRODUCT_COLOUR,"#C4AE7A")
+ set_trait(TRAIT_PRODUCT_ICON,"nuts")
+ set_trait(TRAIT_PRODUCT_COLOUR,"#F2B369")
set_trait(TRAIT_PLANT_ICON,"bush2")
set_trait(TRAIT_IDEAL_LIGHT, 6)
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 38af0fded7c..908be9df3b4 100644
--- a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Food-Drinks.dm
+++ b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Food-Drinks.dm
@@ -327,6 +327,15 @@
condiment_desc = "A delicious oil used in cooking. Made from corn."
condiment_icon_state = "oliveoil"
+/decl/reagent/nutriment/triglyceride/oil/peanut
+ name = "Peanut Oil"
+ description = "A flavourful oil derived from roasted peanuts."
+ color = "#ba8002"
+ taste_description = "smoky peanut oil"
+ taste_mult = 1
+ condiment_name = "peanut oil"
+ condiment_desc = "Tasteful and rich peanut oil used in cooking. Made from roasted peanuts."
+ condiment_icon_state = "peanutoil"
/decl/reagent/nutriment/honey
name = "Honey"
@@ -462,6 +471,35 @@
color = "#801E28"
taste_description = "cherry"
taste_mult = 1.3
+ condiment_name = "cherry jelly jar"
+ condiment_desc = "Great with peanut butter!"
+ condiment_icon_state = "jellyjar"
+ condiment_center_of_mass = list("x"=16, "y"=8)
+
+/decl/reagent/nutriment/peanutbutter
+ name = "Peanut Butter"
+ description = "Clearer the better spread, exception for those who are deathly allergic."
+ reagent_state = LIQUID
+ nutriment_factor = 5
+ color = "#AD7937"
+ taste_description = "peanut butter"
+ taste_mult = 2
+ condiment_name = "peanut butter jar"
+ condiment_desc = "Great with jelly!"
+ condiment_icon_state = "pbjar"
+ condiment_center_of_mass = list("x"=16, "y"=8)
+
+/decl/reagent/nutriment/groundpeanuts
+ name = "Ground Roasted Peanuts"
+ description = "Roughly ground roasted peanuts."
+ reagent_state = SOLID
+ nutriment_factor = 5
+ color = "#AD7937"
+ taste_description = "roasted peanuts"
+ taste_mult = 2
+ condiment_name = "ground roasted peanuts sack"
+ condiment_icon_state = "peanut_sack"
+ condiment_center_of_mass = list("x"=16, "y"=8)
/decl/reagent/nutriment/virusfood
name = "Virus Food"
@@ -530,6 +568,18 @@
condiment_name = "garlic sauce"
condiment_desc = "Perfect for repelling vampires and/or potential dates."
+/decl/reagent/nutriment/mayonnaise
+ name = "Mayonnaise"
+ description = "Mayonnaise, a staple classic for sandwiches."
+ taste_description = "mayonnaise"
+ reagent_state = LIQUID
+ nutriment_factor = 4
+ color = "#F0EBD8"
+ condiment_name = "mayonnaise"
+ condiment_desc = "Great for sandwiches!"
+ condiment_icon_state = "mayojar"
+ condiment_center_of_mass = list("x"=16, "y"=8)
+
/* Non-food stuff like condiments */
/decl/reagent/sodiumchloride
diff --git a/code/modules/reagents/Chemistry-Recipes.dm b/code/modules/reagents/Chemistry-Recipes.dm
index b24a7494f21..34f3a2da51d 100644
--- a/code/modules/reagents/Chemistry-Recipes.dm
+++ b/code/modules/reagents/Chemistry-Recipes.dm
@@ -1551,6 +1551,20 @@
required_reagents = list(/decl/reagent/drink/garlicjuice = 1, /decl/reagent/nutriment/triglyceride/oil/corn = 1)
result_amount = 2
+/datum/chemical_reaction/peanutbutter // Yes, this doesn't make sense. No, I don't know how to do this better
+ name = "Peanut Butter"
+ id = "peanutbutter"
+ result = /decl/reagent/nutriment/peanutbutter
+ required_reagents = list(/decl/reagent/nutriment/groundpeanuts = 5, /decl/reagent/sugar = 1, /decl/reagent/sodiumchloride = 1)
+ result_amount = 5
+
+/datum/chemical_reaction/mayonnaise
+ name = "Mayonnaise"
+ id = "mayonnaise"
+ result = /decl/reagent/nutriment/mayonnaise
+ required_reagents = list(/decl/reagent/nutriment/protein/egg = 3, /decl/reagent/drink/lemonjuice = 2, /decl/reagent/nutriment/triglyceride/oil/corn = 10)
+ result_amount = 15
+
/datum/chemical_reaction/cheesewheel
name = "Cheesewheel"
id = "cheesewheel"
diff --git a/code/modules/reagents/reagent_containers/food/snacks.dm b/code/modules/reagents/reagent_containers/food/snacks.dm
index 855a9165438..14c516befdf 100644
--- a/code/modules/reagents/reagent_containers/food/snacks.dm
+++ b/code/modules/reagents/reagent_containers/food/snacks.dm
@@ -1920,6 +1920,16 @@
reagent_data = list(/decl/reagent/nutriment = list("bread" = 3, "cheese" = 3))
bitesize = 2
+/obj/item/reagent_containers/food/snacks/reubensandwich
+ name = "reuben sandwich"
+ desc = "A toasted sandwich packed with savory, meat and sour goodness!"
+ icon_state = "reubensandwich"
+ filling_color = "#BF8E60"
+ reagents_to_add = list(/decl/reagent/nutriment = 8, /decl/reagent/nutriment/protein = 4, /decl/reagent/nutriment/ketchup = 2, /decl/reagent/nutriment/mayonnaise = 2)
+ reagent_data = list(/decl/reagent/nutriment = list("a savory blend of sweet and salty ingredients" = 6, "toasted bread" = 2))
+ bitesize = 3
+ trash = /obj/item/trash/plate
+
/obj/item/reagent_containers/food/snacks/toastedsandwich
name = "toasted sandwich"
desc = "Now if you only had a pepper bar."
@@ -1931,6 +1941,39 @@
reagent_data = list(/decl/reagent/nutriment = list("toasted bread" = 3, "cheese" = 3))
bitesize = 2
+/obj/item/reagent_containers/food/snacks/toast
+ name = "toasted bread"
+ desc = "Plain, but consistent and reliable toast."
+ icon_state = "toast"
+ item_state = "toast"
+ slot_flags = SLOT_MASK
+ contained_sprite = TRUE
+ trash = /obj/item/trash/plate
+ filling_color = "#D9BE29"
+ reagents_to_add = list(/decl/reagent/nutriment = 2)
+ reagent_data = list(/decl/reagent/nutriment = list("toasted bread" = 2))
+ bitesize = 1
+
+/obj/item/reagent_containers/food/snacks/egginthebasket
+ name = "egg in the basket"
+ desc = "Egg in the basket, also known as egg in a hole, or bullseye egg, or egg in a nest, or framed egg, or..."
+ icon_state = "egginthebasket"
+ trash = /obj/item/trash/plate
+ filling_color = "#D9BE29"
+ reagents_to_add = list(/decl/reagent/nutriment = 2)
+ reagent_data = list(/decl/reagent/nutriment = list("toasted bread" = 2))
+ bitesize = 2
+
+/obj/item/reagent_containers/food/snacks/garlicbread
+ name = "garlic bread"
+ desc = "Delicious garlic bread, but you probably shouldn't eat it for every meal."
+ icon_state = "garlicbread"
+ trash = /obj/item/trash/plate
+ filling_color = "#D9BE29"
+ reagents_to_add = list(/decl/reagent/nutriment = 5, /decl/reagent/nutriment/garlicsauce = 3)
+ reagent_data = list(/decl/reagent/nutriment = list("toasted bread" = 2, "flavorful butter" = 3))
+ bitesize = 3
+
/obj/item/reagent_containers/food/snacks/grilledcheese
name = "grilled cheese sandwich"
desc = "Goes great with Tomato soup!"
@@ -1999,6 +2042,17 @@
/obj/item/reagent_containers/food/snacks/jelliedtoast/slime/reagents_to_add = list(/decl/reagent/slimejelly = 5)
+/obj/item/reagent_containers/food/snacks/pbtoast
+ name = "peanut butter toast"
+ desc = "A slice of bread covered with appetizing peanut butter."
+ icon_state = "pbtoast"
+ trash = /obj/item/trash/plate
+ filling_color = "#B572AB"
+ center_of_mass = list("x"=16, "y"=8)
+ reagents_to_add = list(/decl/reagent/nutriment = 1)
+ reagent_data = list(/decl/reagent/nutriment = list("toasted bread" = 2))
+ bitesize = 2
+
/obj/item/reagent_containers/food/snacks/burger/jelly
name = "jelly burger"
desc = "Culinary delight..?"
@@ -2181,6 +2235,16 @@
/obj/item/reagent_containers/food/snacks/jellysandwich/cherry/reagents_to_add = list(/decl/reagent/nutriment/cherryjelly = 5)
+/obj/item/reagent_containers/food/snacks/pbjsandwich
+ name = "pbj sandwich"
+ desc = "A staple classic lunch of gooey jelly and peanut butter."
+ icon_state = "pbjsandwich"
+ trash = /obj/item/trash/plate
+ filling_color = "#BB6A54"
+ reagents_to_add = list(/decl/reagent/nutriment = 2)
+ reagent_data = list(/decl/reagent/nutriment = list("bread" = 2))
+ bitesize = 2
+
/obj/item/reagent_containers/food/snacks/mint
name = "mint"
desc = "It is only wafer thin."
@@ -4291,6 +4355,25 @@
reagent_data = list(/decl/reagent/nutriment = list("guacmole" = 20))
filling_color = "#35961D"
+// Roasted Peanuts (under chips/nachos because finger food)
+/obj/item/reagent_containers/food/snacks/roasted_peanut
+ name = "roasted peanut"
+ desc = "A singular roasted peanut. How peanut-ful."
+ icon_state = "roast_peanut"
+ bitesize = 2
+ filling_color = "#D89E37"
+
+/obj/item/reagent_containers/food/snacks/chipplate/peanuts_bowl
+ name = "bowl of roasted peanuts"
+ desc = "Peanuts roasted to flavourful and rich perfection."
+ icon_state = "roast_peanuts_bowl"
+ trash = /obj/item/trash/dipbowl
+ vendingobject = /obj/item/reagent_containers/food/snacks/roasted_peanut
+ bitesize = 4
+ reagents_to_add = list(/decl/reagent/nutriment/groundpeanuts = 15, /decl/reagent/nutriment/triglyceride/oil/peanut = 5)
+ unitname = "roasted peanut"
+ filling_color = "#D89E37"
+
//burritos
/obj/item/reagent_containers/food/snacks/burrito
name = "meat burrito"
@@ -5336,3 +5419,13 @@
reagents_to_add = list(/decl/reagent/toxin/phoron = 25)
bitesize = 5
trash = /obj/item/trash/phoroncandy
+
+/obj/item/reagent_containers/food/snacks/sauerkraut
+ name = "sauerkraut"
+ desc = "Finely cut and fermented cabbage. A light pickled delight!"
+ icon_state = "sauerkraut"
+ filling_color = "#EBE699"
+ reagents_to_add = list(/decl/reagent/nutriment = 4)
+ reagent_data = list(/decl/reagent/nutriment = list("pickled lettuce" = 4))
+ bitesize = 2
+ trash = /obj/item/trash/plate
diff --git a/html/changelogs/peanuts_and_toasts_and_more.yml b/html/changelogs/peanuts_and_toasts_and_more.yml
new file mode 100644
index 00000000000..b5414100a12
--- /dev/null
+++ b/html/changelogs/peanuts_and_toasts_and_more.yml
@@ -0,0 +1,10 @@
+author: Vrow, Granodd
+
+delete-after: True
+
+changes:
+ - rscadd: "Added various bread-related recipes! Toast, Garlic Bread, Eggs in the basket, Peanut Butter Toast, PBJ Sandwich, and Reuben Sandwich!"
+ - rscadd: "Added Sauerkraut, Mayonnaise, and Roasted Peanuts! You can also make Peanut Oil and Peanut Butter!"
+ - rscadd: "You can also put toast in your mask slot for the funsies."
+ - imageadd: "Added several more sprites for the new recipes and unique condiment bottle sprites for Mayonnaise, Cherry Jelly, Peanut Butter, Ground Roasted Peanuts, and Peanut Oil."
+ - imageadd: "Ports the Garlic Bread sprite from tgstation."
diff --git a/icons/obj/food.dmi b/icons/obj/food.dmi
index 0498fa593bd..1b16d96148e 100644
Binary files a/icons/obj/food.dmi and b/icons/obj/food.dmi differ