diff --git a/code/datums/trading/traders/food.dm b/code/datums/trading/traders/food.dm
index 148940297ac..0b5d4cc9d93 100644
--- a/code/datums/trading/traders/food.dm
+++ b/code/datums/trading/traders/food.dm
@@ -60,7 +60,7 @@
/obj/item/chems/condiment/capsaicin = TRADER_THIS_TYPE,
/obj/item/food/chazuke = TRADER_THIS_TYPE,
/obj/item/food/katsucurry = TRADER_THIS_TYPE,
- /obj/item/food/meatkabob = TRADER_THIS_TYPE,
+ /obj/item/food/skewer/meat = TRADER_THIS_TYPE,
/obj/item/food/boiledegg = TRADER_THIS_TYPE,
/obj/item/food/boiledrice = TRADER_THIS_TYPE,
/obj/item/food/ricepudding = TRADER_THIS_TYPE,
@@ -126,7 +126,6 @@
/obj/item/food/processed_grown = TRADER_BLACKLIST_ALL,
/obj/item/food/slice = TRADER_BLACKLIST_ALL,
/obj/item/food/grown = TRADER_BLACKLIST_ALL,
- /obj/item/food/human = TRADER_BLACKLIST_ALL,
/obj/item/food/sliceable/braincake = TRADER_BLACKLIST,
/obj/item/food/butchery/meat/human = TRADER_BLACKLIST,
/obj/item/food/variable = TRADER_BLACKLIST_ALL
@@ -188,10 +187,10 @@
/obj/item/food/sliceable/pizza = TRADER_BLACKLIST_ALL,
/obj/item/food/sliceable/xenomeatbread = TRADER_BLACKLIST,
/obj/item/food/piecrust = TRADER_BLACKLIST,
- /obj/item/food/unleaveneddough = TRADER_BLACKLIST,
+ /obj/item/food/sliceable/unleaveneddough = TRADER_BLACKLIST,
/obj/item/food/dough = TRADER_BLACKLIST,
/obj/item/food/sliceable/flatdough = TRADER_BLACKLIST,
/obj/item/food/sliceable/braincake = TRADER_BLACKLIST,
- /obj/item/food/pie = TRADER_THIS_TYPE,
+ /obj/item/food/bananapie = TRADER_THIS_TYPE,
/obj/item/food/applepie = TRADER_THIS_TYPE
)
\ No newline at end of file
diff --git a/code/datums/trading/traders/misc.dm b/code/datums/trading/traders/misc.dm
index bf5df515da4..4366e0fede4 100644
--- a/code/datums/trading/traders/misc.dm
+++ b/code/datums/trading/traders/misc.dm
@@ -114,7 +114,7 @@
/obj/item/backpack/clown = TRADER_THIS_TYPE,
/obj/item/bananapeel = TRADER_THIS_TYPE,
/obj/item/gun/launcher/money = TRADER_THIS_TYPE,
- /obj/item/food/pie = TRADER_THIS_TYPE,
+ /obj/item/food/bananapie = TRADER_THIS_TYPE,
/obj/item/bikehorn = TRADER_THIS_TYPE,
/obj/item/chems/spray/waterflower = TRADER_THIS_TYPE,
/obj/item/gun/launcher/pneumatic/small = TRADER_THIS_TYPE,
diff --git a/code/datums/trading/traders/unique.dm b/code/datums/trading/traders/unique.dm
index 666e20bad59..d5c98f8e392 100644
--- a/code/datums/trading/traders/unique.dm
+++ b/code/datums/trading/traders/unique.dm
@@ -31,7 +31,6 @@
origin = "SGS Severance"
possible_wanted_items = list(
- /obj/item/food/human = TRADER_SUBTYPES_ONLY,
/obj/item/food/butchery/meat/human = TRADER_THIS_TYPE,
/mob/living/human = TRADER_ALL
)
diff --git a/code/game/machinery/kitchen/cooking_machines/_cooker_output.dm b/code/game/machinery/kitchen/cooking_machines/_cooker_output.dm
index 766faee42b1..91aac2326a7 100644
--- a/code/game/machinery/kitchen/cooking_machines/_cooker_output.dm
+++ b/code/game/machinery/kitchen/cooking_machines/_cooker_output.dm
@@ -1,7 +1,7 @@
// Wrapper obj for cooked food. Appearance is set in the cooking code, not on spawn.
/obj/item/food/variable
name = "cooked food"
- icon = 'icons/obj/food_custom.dmi'
+ icon = 'icons/obj/food/custom/custom.dmi'
desc = "If you can see this description then something is wrong. Please report the bug on the tracker."
nutriment_amt = 5
bitesize = 2
diff --git a/code/game/machinery/kitchen/cooking_machines/cereal.dm b/code/game/machinery/kitchen/cooking_machines/cereal.dm
index cd2ecc4f88a..69e3ce24a9f 100644
--- a/code/game/machinery/kitchen/cooking_machines/cereal.dm
+++ b/code/game/machinery/kitchen/cooking_machines/cereal.dm
@@ -12,7 +12,7 @@
product.SetName("box of [cooking_obj.name] cereal")
/obj/machinery/cooker/cereal/change_product_appearance(var/obj/item/food/product)
- product.icon = 'icons/obj/food.dmi'
+ product.icon = 'icons/obj/food/custom/custom.dmi'
product.icon_state = "cereal_box"
product.filling_color = cooking_obj.color
diff --git a/code/game/machinery/vending/food.dm b/code/game/machinery/vending/food.dm
index 263d2eea4ba..c435303b96a 100644
--- a/code/game/machinery/vending/food.dm
+++ b/code/game/machinery/vending/food.dm
@@ -13,17 +13,17 @@
/obj/item/clothing/mask/chewable/candy/lolli = 8,
/obj/item/chewables/candy/gum = 4,
/obj/item/chewables/candy/cookies = 4,
- /obj/item/food/candy = 6,
+ /obj/item/food/junk/candy = 6,
/obj/item/chems/drinks/dry_ramen = 6,
- /obj/item/food/chips = 6,
- /obj/item/food/sosjerky = 6,
- /obj/item/food/no_raisin = 6,
- /obj/item/food/spacetwinkie = 6,
- /obj/item/food/cheesiehonkers = 6,
- /obj/item/food/tastybread = 6
+ /obj/item/food/junk/chips = 6,
+ /obj/item/food/junk/sosjerky = 6,
+ /obj/item/food/junk/no_raisin = 6,
+ /obj/item/food/junk/spacetwinkie = 6,
+ /obj/item/food/junk/cheesiehonkers = 6,
+ /obj/item/food/junk/tastybread = 6
)
contraband = list(
- /obj/item/food/syndicake = 6
+ /obj/item/food/junk/syndicake = 6
)
//a food variant of the boda machine - It carries slavic themed foods. Mostly beer snacks
@@ -37,13 +37,13 @@
icon_state = "snix"
icon_vend = "snix-vend"
icon_deny = "snix-deny"
- products = list(/obj/item/food/semki = 7,
+ products = list(/obj/item/food/junk/semki = 7,
/obj/item/food/can/caviar = 7,
- /obj/item/food/squid = 7,
- /obj/item/food/croutons = 7,
- /obj/item/food/salo = 7,
- /obj/item/food/driedfish = 7,
- /obj/item/food/pistachios = 7,
+ /obj/item/food/junk/squid = 7,
+ /obj/item/food/junk/croutons = 7,
+ /obj/item/food/junk/salo = 7,
+ /obj/item/food/junk/driedfish = 7,
+ /obj/item/food/junk/pistachios = 7,
)
contraband = list(/obj/item/food/can/caviar/true = 1)
@@ -62,16 +62,16 @@
icon_vend = "solsnack-vend"
icon_deny = "solsnack-deny"
products = list(
- /obj/item/food/lunacake = 8,
- /obj/item/food/lunacake/mochicake = 8,
- /obj/item/food/lunacake/mooncake = 8,
- /obj/item/food/pluto = 8,
- /obj/item/food/triton = 8,
- /obj/item/food/saturn = 8,
- /obj/item/food/jupiter = 8,
- /obj/item/food/mars = 8,
- /obj/item/food/venus = 8,
- /obj/item/food/oort = 8
+ /obj/item/food/junk/lunacake = 8,
+ /obj/item/food/junk/lunacake/mochicake = 8,
+ /obj/item/food/junk/lunacake/mooncake = 8,
+ /obj/item/food/junk/pluto = 8,
+ /obj/item/food/junk/triton = 8,
+ /obj/item/food/junk/saturn = 8,
+ /obj/item/food/junk/jupiter = 8,
+ /obj/item/food/junk/mars = 8,
+ /obj/item/food/junk/venus = 8,
+ /obj/item/food/junk/oort = 8
)
/obj/machinery/vending/weeb
@@ -83,11 +83,11 @@
icon_vend = "weeb-vend"
icon_deny = "weeb-deny"
products = list(
- /obj/item/food/weebonuts = 8,
- /obj/item/food/ricecake = 8,
- /obj/item/food/dango = 8,
- /obj/item/food/pokey = 8,
- /obj/item/food/chocobanana = 8
+ /obj/item/food/junk/weebonuts = 8,
+ /obj/item/food/junk/ricecake = 8,
+ /obj/item/food/junk/dango = 8,
+ /obj/item/food/junk/pokey = 8,
+ /obj/item/food/junk/chocobanana = 8
)
/obj/machinery/vending/weeb/on_update_icon()
@@ -236,7 +236,7 @@
)
contraband = list(
/obj/item/chems/drinks/cans/thirteenloko = 5,
- /obj/item/food/liquidfood = 6
+ /obj/item/food/junk/liquidfood = 6
)
idle_power_usage = 211 //refrigerator - believe it or not, this is actually the average power consumption of a refrigerated vending machine according to NRCan.
@@ -256,7 +256,7 @@
/obj/item/chems/drinks/cans/waterbottle = 8,
/obj/item/chems/drinks/glass2/fitnessflask/proteinshake = 8,
/obj/item/chems/drinks/glass2/fitnessflask = 8,
- /obj/item/food/candy/proteinbar = 8,
+ /obj/item/food/junk/candy/proteinbar = 8,
/obj/item/mre/random = 8,
/obj/item/mre/menu9 = 4,
/obj/item/mre/menu10 = 4,
diff --git a/code/game/objects/effects/decals/Cleanable/misc.dm b/code/game/objects/effects/decals/Cleanable/misc.dm
index e5c4f79ce73..4abf329fd59 100644
--- a/code/game/objects/effects/decals/Cleanable/misc.dm
+++ b/code/game/objects/effects/decals/Cleanable/misc.dm
@@ -128,3 +128,12 @@
random_icon_states = list("mfloor1", "mfloor2", "mfloor3", "mfloor4", "mfloor5", "mfloor6", "mfloor7")
persistent = TRUE
generic_filth = TRUE
+
+/obj/effect/decal/cleanable/champagne
+ name = "champagne"
+ desc = "Someone got a bit too excited."
+ gender = PLURAL
+ icon = 'icons/effects/effects.dmi'
+ icon_state = "fchampagne1"
+ color = COLOR_BRASS
+ random_icon_states = list("fchampagne1", "fchampagne2", "fchampagne3", "fchampagne4")
diff --git a/code/game/objects/items/weapons/storage/boxes.dm b/code/game/objects/items/weapons/storage/boxes.dm
index d8ae8b665c0..499ffb5d858 100644
--- a/code/game/objects/items/weapons/storage/boxes.dm
+++ b/code/game/objects/items/weapons/storage/boxes.dm
@@ -79,7 +79,7 @@
/obj/item/chems/hypospray/autoinjector/stabilizer,
/obj/item/stack/medical/bandage,
/obj/item/flashlight/flare/glowstick,
- /obj/item/food/candy/proteinbar,
+ /obj/item/food/junk/candy/proteinbar,
/obj/item/oxycandle,
/obj/item/crowbar/cheap
)
@@ -98,7 +98,7 @@
/obj/item/chems/hypospray/autoinjector/antirad,
/obj/item/stack/medical/bandage,
/obj/item/flashlight/flare/glowstick,
- /obj/item/food/candy/proteinbar,
+ /obj/item/food/junk/candy/proteinbar,
/obj/item/oxycandle
)
@@ -672,22 +672,22 @@
desc = "A box full of snack foods."
/obj/item/box/snack/WillContain()
- return list(/obj/item/food/sosjerky = 7)
+ return list(/obj/item/food/junk/sosjerky = 7)
/obj/item/box/snack/noraisin/WillContain()
- return list(/obj/item/food/no_raisin = 7)
+ return list(/obj/item/food/junk/no_raisin = 7)
/obj/item/box/snack/cheesehonks/WillContain()
- return list(/obj/item/food/cheesiehonkers = 7)
+ return list(/obj/item/food/junk/cheesiehonkers = 7)
/obj/item/box/snack/tastybread/WillContain()
- return list(/obj/item/food/tastybread = 7)
+ return list(/obj/item/food/junk/tastybread = 7)
/obj/item/box/snack/candy/WillContain()
- return list(/obj/item/food/candy = 7)
+ return list(/obj/item/food/junk/candy = 7)
/obj/item/box/snack/chips/WillContain()
- return list(/obj/item/food/chips = 7)
+ return list(/obj/item/food/junk/chips = 7)
/obj/item/box/snack/buns/WillContain()
return list(/obj/item/food/bun = 7)
diff --git a/code/game/objects/items/weapons/storage/mre.dm b/code/game/objects/items/weapons/storage/mre.dm
index da3b18971f5..49c82c43891 100644
--- a/code/game/objects/items/weapons/storage/mre.dm
+++ b/code/game/objects/items/weapons/storage/mre.dm
@@ -99,7 +99,7 @@ MRE Stuff
/obj/item/mre/menu10/WillContain()
. = list(
main_meal,
- /obj/item/food/candy/proteinbar,
+ /obj/item/food/junk/candy/proteinbar,
/obj/item/chems/packet/protein,
/obj/random/mre/sauce/sugarfree,
/obj/item/utensil/spoon/plastic
@@ -177,7 +177,7 @@ MRE Stuff
return list(/obj/item/food/boiledrice)
/obj/item/mrebag/menu10/WillContain()
- return list(/obj/item/food/meatcube)
+ return list(/obj/item/food/junk/meatcube)
/obj/item/mrebag/dessert
name = "dessert"
diff --git a/code/game/objects/random/subtypes/food.dm b/code/game/objects/random/subtypes/food.dm
index ff9459e2e28..f390e57cf5d 100644
--- a/code/game/objects/random/subtypes/food.dm
+++ b/code/game/objects/random/subtypes/food.dm
@@ -53,8 +53,8 @@
/obj/random/mre/dessert/spawn_choices()
var/static/list/spawnable_choices = list(
- /obj/item/food/candy,
- /obj/item/food/candy/proteinbar,
+ /obj/item/food/junk/candy,
+ /obj/item/food/junk/candy/proteinbar,
/obj/item/food/donut,
/obj/item/food/donut/jelly,
/obj/item/food/chocolatebar,
@@ -70,7 +70,7 @@
/obj/random/mre/dessert/vegan/spawn_choices()
var/static/list/spawnable_choices = list(
- /obj/item/food/candy,
+ /obj/item/food/junk/candy,
/obj/item/food/chocolatebar,
/obj/item/food/donut/jelly,
/obj/item/food/plumphelmetbiscuit
@@ -168,22 +168,22 @@
/obj/random/snack
name = "random snack"
desc = "This is a random snack item."
- icon = 'icons/obj/food.dmi'
+ icon = 'icons/obj/food/junk/junkfood.dmi'
icon_state = "sosjerky"
/obj/random/snack/spawn_choices()
var/static/list/spawnable_choices = list(
- /obj/item/food/liquidfood,
- /obj/item/food/candy,
+ /obj/item/food/junk/liquidfood,
+ /obj/item/food/junk/candy,
/obj/item/chems/drinks/dry_ramen,
- /obj/item/food/chips,
- /obj/item/food/sosjerky,
- /obj/item/food/no_raisin,
- /obj/item/food/spacetwinkie,
- /obj/item/food/cheesiehonkers,
- /obj/item/food/tastybread,
- /obj/item/food/candy/proteinbar,
- /obj/item/food/syndicake,
+ /obj/item/food/junk/chips,
+ /obj/item/food/junk/sosjerky,
+ /obj/item/food/junk/no_raisin,
+ /obj/item/food/junk/spacetwinkie,
+ /obj/item/food/junk/cheesiehonkers,
+ /obj/item/food/junk/tastybread,
+ /obj/item/food/junk/candy/proteinbar,
+ /obj/item/food/junk/syndicake,
/obj/item/food/donut,
/obj/item/food/donut/jelly,
/obj/item/pizzabox/meat,
diff --git a/code/game/objects/structures/crates_lockers/closets/secure/scientist.dm b/code/game/objects/structures/crates_lockers/closets/secure/scientist.dm
index 651dd2ca6f2..710f7d92d05 100644
--- a/code/game/objects/structures/crates_lockers/closets/secure/scientist.dm
+++ b/code/game/objects/structures/crates_lockers/closets/secure/scientist.dm
@@ -76,7 +76,7 @@
/obj/item/clothing/gloves/black,
/obj/item/radio/headset/headset_sci,
/obj/item/flashlight,
- /obj/item/food/liquidfood,
+ /obj/item/food/junk/liquidfood,
/obj/item/chems/drinks/cans/waterbottle,
/obj/item/box/flares,
/obj/item/cell/device,
diff --git a/code/modules/butchery/butchery_data_animal.dm b/code/modules/butchery/butchery_data_animal.dm
index d3b44a7f762..5cdf1b96919 100644
--- a/code/modules/butchery/butchery_data_animal.dm
+++ b/code/modules/butchery/butchery_data_animal.dm
@@ -31,7 +31,7 @@
/decl/butchery_data/animal/space_bear
meat_name = "bear"
- meat_type = /obj/item/food/bearmeat
+ meat_type = /obj/item/food/butchery/meat/bear
meat_amount = 10
bone_amount = 20
skin_amount = 20
@@ -99,7 +99,7 @@
/decl/butchery_data/animal/antlion
meat_name = "insect"
- meat_type = /obj/item/food/xenomeat
+ meat_type = /obj/item/food/butchery/meat/xeno
meat_amount = 5
skin_material = /decl/material/solid/organic/skin/insect
skin_amount = 15
diff --git a/code/modules/butchery/butchery_products.dm b/code/modules/butchery/butchery_products.dm
index b29bcf55f64..7d2f0d8a6bb 100644
--- a/code/modules/butchery/butchery_products.dm
+++ b/code/modules/butchery/butchery_products.dm
@@ -99,7 +99,7 @@
/obj/item/food/butchery/offal
name = "offal"
desc = "An assortmant of organs and lumps of unidentified gristle. Packed with nutrients and bile."
- icon = 'icons/obj/items/butchery/offal.dmi'
+ icon = 'icons/obj/food/butchery/offal.dmi'
material = /decl/material/solid/organic/meat/gut
nutriment_amt = 15
slice_path = /obj/item/food/butchery/offal/small
@@ -158,7 +158,7 @@
return ..()
/obj/item/food/butchery/offal/small
- icon = 'icons/obj/items/butchery/offal_small.dmi'
+ icon = 'icons/obj/food/butchery/offal_small.dmi'
nutriment_amt = 5
w_class = ITEM_SIZE_SMALL
slice_path = null
@@ -173,7 +173,7 @@
/obj/item/food/butchery/haunch
name = "haunch"
desc = "A severed leg of some unfortunate beast, cleaned and ready for cooking."
- icon = 'icons/obj/items/butchery/haunch.dmi'
+ icon = 'icons/obj/food/butchery/haunch.dmi'
slice_num = 2
slice_path = /obj/item/food/butchery/meat
w_class = ITEM_SIZE_LARGE
@@ -210,7 +210,7 @@
/obj/item/food/butchery/haunch/side
name = "side of meat"
desc = "Approximately half the torso and body of an unfortunate animal, split lengthways, cleaned, and ready for cooking."
- icon = 'icons/obj/items/butchery/side.dmi'
+ icon = 'icons/obj/food/butchery/side.dmi'
w_class = ITEM_SIZE_HUGE
/obj/item/food/butchery/haunch/side/Initialize(mapload, material_key, skip_plate = FALSE, mob/living/donor)
@@ -229,7 +229,7 @@
/obj/item/food/butchery/stomach
name = "stomach"
desc = "The stomach of a large animal. It would probably make a decent waterskin if properly treated."
- icon = 'icons/obj/items/butchery/ruminant_stomach.dmi'
+ icon = 'icons/obj/food/butchery/ruminant_stomach.dmi'
material = /decl/material/solid/organic/meat/gut
nutriment_amt = 8
dried_type = /obj/item/chems/waterskin
diff --git a/code/modules/butchery/butchery_products_chopped.dm b/code/modules/butchery/butchery_products_chopped.dm
index ccf600683ef..400418476ee 100644
--- a/code/modules/butchery/butchery_products_chopped.dm
+++ b/code/modules/butchery/butchery_products_chopped.dm
@@ -1,7 +1,7 @@
/obj/item/food/butchery/chopped
name = "chopped meat"
desc = "A handful of chopped meat."
- icon = 'icons/obj/items/butchery/chopped.dmi'
+ icon = 'icons/obj/food/butchery/chopped.dmi'
bitesize = 2
nutriment_amt = 1
w_class = ITEM_SIZE_TINY
diff --git a/code/modules/butchery/butchery_products_cutlet.dm b/code/modules/butchery/butchery_products_cutlet.dm
index 20b1fc037e6..984c8a4d583 100644
--- a/code/modules/butchery/butchery_products_cutlet.dm
+++ b/code/modules/butchery/butchery_products_cutlet.dm
@@ -1,7 +1,7 @@
/obj/item/food/butchery/cutlet
name = "cutlet"
desc = "A tasty meat slice."
- icon = 'icons/obj/items/butchery/cutlet.dmi'
+ icon = 'icons/obj/food/butchery/cutlet.dmi'
bitesize = 2
nutriment_amt = 1
center_of_mass = @'{"x":17,"y":20}'
diff --git a/code/modules/butchery/butchery_products_meat.dm b/code/modules/butchery/butchery_products_meat.dm
index abbe45402d8..0c65f0f83eb 100644
--- a/code/modules/butchery/butchery_products_meat.dm
+++ b/code/modules/butchery/butchery_products_meat.dm
@@ -1,7 +1,7 @@
/obj/item/food/butchery/meat
name = "slab"
desc = "A slab of meat."
- icon = 'icons/obj/items/butchery/meat1.dmi'
+ icon = 'icons/obj/food/butchery/meat1.dmi'
icon_state = ICON_STATE_WORLD
slice_path = /obj/item/food/butchery/cutlet/raw
slice_num = 3
@@ -19,9 +19,9 @@
/obj/item/food/butchery/meat/proc/get_meat_icons()
var/static/list/meat_icons = list(
- 'icons/obj/items/butchery/meat1.dmi',
- 'icons/obj/items/butchery/meat2.dmi',
- 'icons/obj/items/butchery/meat3.dmi'
+ 'icons/obj/food/butchery/meat1.dmi',
+ 'icons/obj/food/butchery/meat2.dmi',
+ 'icons/obj/food/butchery/meat3.dmi'
)
return meat_icons
@@ -62,3 +62,26 @@
/obj/item/food/butchery/meat/corgi
desc = "Tastes like... well you know..."
meat_name = "dog"
+
+
+/obj/item/food/butchery/meat/xeno
+ desc = "A slab of green meat. Smells like acid."
+ icon_state = "xenomeat"
+ meat_name = "xeno"
+ color = "#43de18"
+ center_of_mass = @'{"x":16,"y":10}'
+ bitesize = 6
+
+/obj/item/food/butchery/meat/xeno/populate_reagents()
+ . = ..()
+ add_to_reagents(/decl/material/liquid/acid/polyacid, 6)
+
+
+/obj/item/food/butchery/meat/bear
+ meat_name = "bear"
+ desc = "A very manly slab of meat."
+ icon_state = "bearmeat"
+
+/obj/item/food/butchery/meat/bear/populate_reagents()
+ . = ..()
+ add_to_reagents(/decl/material/liquid/amphetamines, 5)
diff --git a/code/modules/butchery/butchery_products_meat_fish.dm b/code/modules/butchery/butchery_products_meat_fish.dm
index 9ea86bfacd6..ae64e5d1c18 100644
--- a/code/modules/butchery/butchery_products_meat_fish.dm
+++ b/code/modules/butchery/butchery_products_meat_fish.dm
@@ -1,7 +1,7 @@
/obj/item/food/butchery/meat/fish
name = "fillet"
desc = "A fillet of fish."
- icon = 'icons/obj/items/butchery/fish.dmi'
+ icon = 'icons/obj/food/butchery/fish.dmi'
filling_color = "#ffdefe"
center_of_mass = @'{"x":17,"y":13}'
bitesize = 6
@@ -19,7 +19,7 @@
/obj/item/food/butchery/meat/fish/get_meat_icons()
var/static/list/meat_icons = list(
- 'icons/obj/items/butchery/fish.dmi'
+ 'icons/obj/food/butchery/fish.dmi'
)
return meat_icons
@@ -37,7 +37,7 @@
icon_state = "grilledfish"
nutriment_amt = 8
bitesize = 2
- icon = 'icons/obj/items/butchery/fish_grilled.dmi'
+ icon = 'icons/obj/food/butchery/fish_grilled.dmi'
nutriment_desc = list("flaky grilled fish" = 5)
drying_wetness = 0
dried_type = null
@@ -54,7 +54,7 @@
/obj/item/food/butchery/meat/fish/get_meat_icons()
var/static/list/meat_icons = list(
- 'icons/obj/items/butchery/fish_grilled.dmi'
+ 'icons/obj/food/butchery/fish_grilled.dmi'
)
return meat_icons
diff --git a/code/modules/food/assembled.dm b/code/modules/food/assembled.dm
index aa026d89cb4..bab06fe4b12 100644
--- a/code/modules/food/assembled.dm
+++ b/code/modules/food/assembled.dm
@@ -131,7 +131,7 @@
/obj/item/holder/corgi = /obj/item/food/classichotdog,
/obj/item/food/butchery/cutlet = /obj/item/food/burger,
/obj/item/organ/internal/brain = /obj/item/food/brainburger,
- /obj/item/food/xenomeat = /obj/item/food/xenoburger,
+ /obj/item/food/butchery/meat/xeno = /obj/item/food/xenoburger,
/obj/item/food/butchery/meat/fish = /obj/item/food/fishburger,
/obj/item/food/tofu = /obj/item/food/tofuburger,
/obj/item/ectoplasm = /obj/item/food/ghostburger,
@@ -148,7 +148,7 @@
)
return combined_food_products
-/obj/item/food/doughslice/get_combined_food_products()
+/obj/item/food/unleaveneddoughslice/get_combined_food_products()
var/static/list/combined_food_products = list(
/obj/item/food/meatball = /obj/item/food/donkpocket,
/obj/item/food/meatball/raw = list(
@@ -171,12 +171,6 @@
)
return combined_food_products
-/obj/item/food/human/burger/get_combined_food_products()
- var/static/list/combined_food_products = list(
- /obj/item/food/dairy/cheese/wedge = /obj/item/food/cheeseburger
- )
- return combined_food_products
-
// Spaghetti + meatball = spaghetti with meatball(s)
/obj/item/food/boiledspagetti/get_combined_food_products()
var/static/list/combined_food_products = list(
@@ -211,11 +205,11 @@
)
return combined_food_products
-/obj/item/food/sliceable/piecrust/get_combined_food_products()
+/obj/item/food/piecrust/get_combined_food_products()
var/static/list/combined_food_products = list(
/obj/item/food/butchery/cutlet = /obj/item/food/meatpie/raw,
/obj/item/food/tofu = /obj/item/food/tofupie/raw,
- /obj/item/food/xenomeat = /obj/item/food/xemeatpie/raw,
+ /obj/item/food/butchery/meat/xeno = /obj/item/food/xemeatpie/raw,
"apple" = /obj/item/food/applepie/raw,
"berries" = /obj/item/food/berryclafoutis/raw,
"plumphelmet" = /obj/item/food/plump_pie/raw
diff --git a/code/modules/food/cooking/recipes/recipe_assembled.dm b/code/modules/food/cooking/recipes/recipe_assembled.dm
index 4a0ee15baca..db38ad62101 100644
--- a/code/modules/food/cooking/recipes/recipe_assembled.dm
+++ b/code/modules/food/cooking/recipes/recipe_assembled.dm
@@ -38,7 +38,7 @@
/decl/recipe/taco
items = list(
- /obj/item/food/doughslice,
+ /obj/item/food/unleaveneddoughslice,
/obj/item/food/butchery/cutlet,
/obj/item/food/dairy/cheese/wedge
)
diff --git a/code/modules/food/cooking/recipes/recipe_baked.dm b/code/modules/food/cooking/recipes/recipe_baked.dm
index 48cddc3a499..90bb8ad590d 100644
--- a/code/modules/food/cooking/recipes/recipe_baked.dm
+++ b/code/modules/food/cooking/recipes/recipe_baked.dm
@@ -41,27 +41,27 @@
/decl/recipe/baked/amanita_pie
reagents = list(/decl/material/liquid/amatoxin = 5)
- items = list(/obj/item/food/unleaveneddough)
+ items = list(/obj/item/food/piecrust)
result = /obj/item/food/amanita_pie
/decl/recipe/baked/pumpkinpie
fruit = list("pumpkin" = 1)
reagents = list(/decl/material/liquid/nutriment/sugar = 5)
- items = list(/obj/item/food/unleaveneddough)
+ items = list(/obj/item/food/piecrust)
reagent_mix = REAGENT_REPLACE // no raw flour
result = /obj/item/food/sliceable/pumpkinpie
/decl/recipe/baked/bananapie
fruit = list("banana" = 1)
reagents = list(/decl/material/liquid/nutriment/sugar = 5)
- items = list(/obj/item/food/unleaveneddough)
+ items = list(/obj/item/food/piecrust)
result = /obj/item/food/bananapie
/decl/recipe/baked/cherrypie
fruit = list("cherries" = 1)
reagents = list(/decl/material/liquid/nutriment/sugar = 10)
items = list(
- /obj/item/food/unleaveneddough,
+ /obj/item/food/piecrust,
)
result = /obj/item/food/cherrypie
@@ -101,7 +101,7 @@
/decl/recipe/baked/xenomeatbread
items = list(
/obj/item/food/dough = 2,
- /obj/item/food/xenomeat = 2,
+ /obj/item/food/butchery/meat/xeno = 2,
/obj/item/food/dairy/cheese/wedge = 2,
)
result = /obj/item/food/sliceable/xenomeatbread
@@ -145,7 +145,7 @@
/decl/recipe/baked/fortunecookie
reagents = list(/decl/material/liquid/nutriment/sugar = 5)
items = list(
- /obj/item/food/doughslice,
+ /obj/item/food/unleaveneddoughslice,
/obj/item/paper,
)
result = /obj/item/food/fortunecookie
@@ -248,7 +248,7 @@
/decl/recipe/baked/cracker
reagents = list(/decl/material/solid/sodiumchloride = 1)
items = list(
- /obj/item/food/doughslice
+ /obj/item/food/unleaveneddoughslice
)
result = /obj/item/food/cracker
@@ -262,13 +262,13 @@
/decl/recipe/baked/bun
display_name = "plain bun"
items = list(
- /obj/item/food/dough
+ /obj/item/food/doughslice
)
result = /obj/item/food/bun
/decl/recipe/baked/flatbread
items = list(
- /obj/item/food/unleaveneddough
+ /obj/item/food/sliceable/unleaveneddough
)
result = /obj/item/food/flatbread
diff --git a/code/modules/food/cooking/recipes/recipe_grilled.dm b/code/modules/food/cooking/recipes/recipe_grilled.dm
index 13186d3e2c8..d2e4e234090 100644
--- a/code/modules/food/cooking/recipes/recipe_grilled.dm
+++ b/code/modules/food/cooking/recipes/recipe_grilled.dm
@@ -70,12 +70,12 @@
/obj/item/stack/material/rods,
/obj/item/food/butchery/cutlet = 2
)
- result = /obj/item/food/meatkabob
+ result = /obj/item/food/skewer/meat
/decl/recipe/grilled/tofukabob
items = list(
/obj/item/stack/material/rods,
/obj/item/food/tofu = 2,
)
- result = /obj/item/food/tofukabob
+ result = /obj/item/food/skewer/tofu
completion_message = "The tofu sizzles and browns as it is cooked through."
diff --git a/code/modules/materials/definitions/solids/materials_solid_butchery.dm b/code/modules/materials/definitions/solids/materials_solid_butchery.dm
index 34696320201..c106771d16f 100644
--- a/code/modules/materials/definitions/solids/materials_solid_butchery.dm
+++ b/code/modules/materials/definitions/solids/materials_solid_butchery.dm
@@ -49,6 +49,12 @@
uid = "solid_meat_chicken"
color = "#e98a8a"
+/decl/material/solid/organic/meat/xeno
+ name = "alien meat"
+ codex_name = "xenoprotein"
+ uid = "solid_meat_xeno"
+ color = COLOR_LIME
+
/decl/material/solid/organic/meat/gut
name = "gut"
codex_name = null
diff --git a/code/modules/reagents/chems/chems_ethanol.dm b/code/modules/reagents/chems/chems_ethanol.dm
index d23d0e22736..ebac6288399 100644
--- a/code/modules/reagents/chems/chems_ethanol.dm
+++ b/code/modules/reagents/chems/chems_ethanol.dm
@@ -545,3 +545,14 @@
glass_name = "kvass"
glass_desc = "An alcoholic drink commonly made from bread."
+
+/decl/material/liquid/ethanol/champagne
+ name = "champagne"
+ lore_text = "Sparkling wine made from exquisite grape."
+ taste_description = "bitter taste"
+ color = "#a89410"
+ strength = 18
+
+ glass_name = "champagne"
+ glass_desc = "Wow, it's bubbling!"
+ glass_special = list(DRINK_FIZZ)
diff --git a/code/modules/reagents/reactions/reaction_recipe_food.dm b/code/modules/reagents/reactions/reaction_recipe_food.dm
index 469c67b5cde..124eba8fb90 100644
--- a/code/modules/reagents/reactions/reaction_recipe_food.dm
+++ b/code/modules/reagents/reactions/reaction_recipe_food.dm
@@ -136,7 +136,7 @@
/decl/material/liquid/water = 10
)
mix_message = "The solution swells into a round of unleavened dough."
- obj_result = /obj/item/food/unleaveneddough
+ obj_result = /obj/item/food/sliceable/unleaveneddough
inhibitors = list(/decl/material/liquid/nutriment/yeast)
/decl/chemical_reaction/recipe/food/syntiflesh
diff --git a/code/modules/reagents/reagent_containers/drinks/bottle.dm b/code/modules/reagents/reagent_containers/drinks/bottle.dm
index 44a0aea2f51..22c64325c31 100644
--- a/code/modules/reagents/reagent_containers/drinks/bottle.dm
+++ b/code/modules/reagents/reagent_containers/drinks/bottle.dm
@@ -453,15 +453,44 @@
/obj/item/chems/drinks/bottle/sake/populate_reagents()
add_to_reagents(/decl/material/liquid/ethanol/sake, reagents.maximum_volume)
+
/obj/item/chems/drinks/bottle/champagne
- name = "Murcelano Vinyard's Premium Champagne"
- desc = "The regal drink of celebrities and royalty."
+ name = "champagne bottle"
+ desc = "Sparkling wine made from exquisite grape varieties by the method of secondary fermentation in a bottle. Bubbling."
icon_state = "champagne"
- center_of_mass = @'{"x":16,"y":4}'
+ center_of_mass = @'{"x":12,"y":5}'
+ atom_flags = 0 //starts closed
+ var/opening
/obj/item/chems/drinks/bottle/champagne/populate_reagents()
add_to_reagents(/decl/material/liquid/ethanol/champagne, reagents.maximum_volume)
+/obj/item/chems/drinks/bottle/champagne/open(mob/user)
+ if(ATOM_IS_OPEN_CONTAINER(src))
+ to_chat(user, SPAN_NOTICE("\The [src] is already open."))
+ return
+ if(!opening)
+ user.visible_message(SPAN_NOTICE("\The [user] tries to open \the [src]!"))
+ opening = TRUE
+ else
+ to_chat(user, SPAN_WARNING("You are already trying to open \the [src]."))
+ return
+ if(!do_after(user, 3 SECONDS, src))
+ if(QDELETED(user) || QDELETED(src))
+ return
+ user.visible_message(SPAN_NOTICE("\The [user] fails to open \the [src]."))
+ opening = FALSE
+ return
+ playsound(src,'sound/effects/champagne_open.ogg', 100, 1)
+ if(!user.skill_check(SKILL_COOKING, SKILL_BASIC))
+ sleep(4)
+ playsound(src,'sound/effects/champagne_psh.ogg', 100)
+ user.visible_message(SPAN_WARNING("\The [user] clumsily pops the cork out of \the [src], wasting fizz and getting foam everywhere."))
+ new /obj/effect/decal/cleanable/champagne(get_turf(user))
+ else
+ user.visible_message(SPAN_NOTICE("\The [user] pops the cork out of \the [src] with a professional flourish."))
+ atom_flags |= ATOM_FLAG_OPEN_CONTAINER
+
/obj/item/chems/drinks/bottle/jagermeister
name = "Kaisermeister Deluxe"
desc = "Jagermeister. This drink just demands a party."
@@ -569,6 +598,7 @@
smash_duration = 1
atom_flags = 0 //starts closed
rag_underlay = "rag_small"
+ abstract_type = /obj/item/chems/drinks/bottle/small
/obj/item/chems/drinks/bottle/small/beer
name = "space beer"
diff --git a/code/modules/reagents/reagent_containers/drinks/cans.dm b/code/modules/reagents/reagent_containers/drinks/cans.dm
index ac6d82e688d..4caf4c5fa41 100644
--- a/code/modules/reagents/reagent_containers/drinks/cans.dm
+++ b/code/modules/reagents/reagent_containers/drinks/cans.dm
@@ -3,6 +3,7 @@
amount_per_transfer_from_this = 5
atom_flags = 0 //starts closed
material = /decl/material/solid/metal/aluminium
+ abstract_type = /obj/item/chems/drinks/cans
/obj/item/chems/drinks/cans/update_container_desc()
return
diff --git a/code/modules/reagents/reagent_containers/drinks/champagne.dm b/code/modules/reagents/reagent_containers/drinks/champagne.dm
deleted file mode 100644
index 3a380131da9..00000000000
--- a/code/modules/reagents/reagent_containers/drinks/champagne.dm
+++ /dev/null
@@ -1,64 +0,0 @@
-/decl/material/liquid/ethanol/champagne
- name = "champagne"
- lore_text = "Sparkling wine made from exquisite grape."
- taste_description = "bitter taste"
- color = "#a89410"
- strength = 18
-
- glass_name = "champagne"
- glass_desc = "Wow, it's bubbling!"
- glass_special = list(DRINK_FIZZ)
-
-/obj/effect/decal/cleanable/champagne
- name = "champagne"
- desc = "Is this a gold?"
- gender = PLURAL
- icon = 'icons/effects/effects.dmi'
- icon_state = "fchampagne1"
- color = COLOR_BRASS
- random_icon_states = list("fchampagne1", "fchampagne2", "fchampagne3", "fchampagne4")
-
-/obj/item/chems/drinks/bottle/champagne
- name = "champagne bottle"
- desc = "Sparkling wine made from exquisite grape varieties by the method of secondary fermentation in a bottle. Bubbling."
- icon = 'icons/obj/food.dmi'
- icon_state = "champagne"
- center_of_mass = @'{"x":12,"y":5}'
- atom_flags = 0 //starts closed
-
- var/opening
-
-/obj/item/chems/drinks/bottle/champagne/populate_reagents()
- add_to_reagents(/decl/material/liquid/ethanol/champagne, reagents.maximum_volume)
-
-/obj/item/chems/drinks/bottle/champagne/open(mob/user)
- if(ATOM_IS_OPEN_CONTAINER(src))
- to_chat(user, SPAN_NOTICE("\The [src] is already open."))
- return
-
- if(!opening)
- user.visible_message(SPAN_NOTICE("\The [user] tries to open \the [src]!"))
- opening = TRUE
- else
- to_chat(user, SPAN_WARNING("You are already trying to open \the [src]."))
- return
-
- if(!do_after(user, 3 SECONDS, src))
- if(QDELETED(user) || QDELETED(src))
- return
-
- user.visible_message(SPAN_NOTICE("\The [user] fails to open \the [src]."))
- opening = FALSE
- return
-
- playsound(src,'sound/effects/champagne_open.ogg', 100, 1)
-
- if(!user.skill_check(SKILL_COOKING, SKILL_BASIC))
- sleep(4)
- playsound(src,'sound/effects/champagne_psh.ogg', 100)
- user.visible_message(SPAN_WARNING("\The [user] clumsily pops the cork out of \the [src], wasting fizz and getting foam everywhere."))
- new /obj/effect/decal/cleanable/champagne(get_turf(user))
- else
- user.visible_message(SPAN_NOTICE("\The [user] pops the cork out of \the [src] with a professional flourish."))
-
- atom_flags |= ATOM_FLAG_OPEN_CONTAINER
diff --git a/code/modules/reagents/reagent_containers/food.dm b/code/modules/reagents/reagent_containers/food.dm
index 825842d2570..9c05a01e347 100644
--- a/code/modules/reagents/reagent_containers/food.dm
+++ b/code/modules/reagents/reagent_containers/food.dm
@@ -9,10 +9,11 @@
// it. Try to stick to existing reagents when possible (so if you want a stronger healing effect, just use regenerative serum).
/obj/item/food
+ abstract_type = /obj/item/food
name = "snack"
desc = "Yummy!"
- icon = 'icons/obj/food.dmi'
- icon_state = null
+ icon = 'icons/obj/food/error.dmi'
+ icon_state = ICON_STATE_WORLD
randpixel = 6
item_flags = null
material = /decl/material/liquid/nutriment
diff --git a/code/modules/reagents/reagent_containers/food/baked_goods.dm b/code/modules/reagents/reagent_containers/food/baking/baked_goods.dm
similarity index 78%
rename from code/modules/reagents/reagent_containers/food/baked_goods.dm
rename to code/modules/reagents/reagent_containers/food/baking/baked_goods.dm
index e3d5f3fcccc..a03d9f836f0 100644
--- a/code/modules/reagents/reagent_containers/food/baked_goods.dm
+++ b/code/modules/reagents/reagent_containers/food/baking/baked_goods.dm
@@ -5,7 +5,7 @@
/obj/item/food/muffin
name = "muffin"
desc = "A delicious and spongy little cake."
- icon_state = "muffin"
+ icon = 'icons/obj/food/baked/muffin.dmi'
filling_color = "#e0cf9b"
center_of_mass = @'{"x":17,"y":4}'
nutriment_desc = list("sweetness" = 3, "muffin" = 3)
@@ -15,7 +15,7 @@
/obj/item/food/bananapie
name = "banana cream pie"
desc = "Just like back home, on clown planet! HONK!"
- icon_state = "pie"
+ icon = 'icons/obj/food/baked/pies/pie.dmi'
plate = /obj/item/plate
filling_color = "#fbffb8"
center_of_mass = @'{"x":16,"y":13}'
@@ -27,7 +27,7 @@
. = ..()
add_to_reagents(/decl/material/liquid/nutriment/banana_cream, 5)
-/obj/item/food/pie/throw_impact(atom/hit_atom)
+/obj/item/food/bananapie/throw_impact(atom/hit_atom)
..()
new/obj/effect/decal/cleanable/pie_smudge(src.loc)
src.visible_message("\The [src.name] splats.","You hear a splat.")
@@ -36,7 +36,7 @@
/obj/item/food/berryclafoutis
name = "berry clafoutis"
desc = "No black birds, this is a good sign."
- icon_state = "berryclafoutis"
+ icon = 'icons/obj/food/baked/pies/berry.dmi'
plate = /obj/item/plate
center_of_mass = @'{"x":16,"y":13}'
nutriment_desc = list("sweetness" = 2, "pie" = 3)
@@ -50,7 +50,7 @@
/obj/item/food/waffles
name = "waffles"
desc = "Mmm, waffles."
- icon_state = "waffles"
+ icon = 'icons/obj/food/baked/waffles/plain.dmi'
trash = /obj/item/trash/waffles
filling_color = "#e6deb5"
center_of_mass = @'{"x":15,"y":11}'
@@ -61,7 +61,7 @@
/obj/item/food/rofflewaffles
name = "waffles(?)"
desc = "There's something funny about these waffles."
- icon_state = "rofflewaffles"
+ icon = 'icons/obj/food/baked/waffles/blue.dmi'
trash = /obj/item/trash/waffles
filling_color = "#ff00f7"
center_of_mass = @'{"x":15,"y":11}'
@@ -76,7 +76,7 @@
/obj/item/food/pancakes
name = "pancakes"
desc = "Pancakes without blueberries, still delicious."
- icon_state = "pancakes"
+ icon = 'icons/obj/food/fried/pancakes.dmi'
plate = /obj/item/plate
center_of_mass = @'{"x":15,"y":11}'
nutriment_desc = list("pancake" = 8)
@@ -86,7 +86,7 @@
/obj/item/food/pancakesblu
name = "blueberry pancakes"
desc = "Pancakes with blueberries, delicious."
- icon_state = "pancakes"
+ icon = 'icons/obj/food/fried/pancakes.dmi'
plate = /obj/item/plate
center_of_mass = @'{"x":15,"y":11}'
nutriment_desc = list("pancake" = 8)
@@ -96,7 +96,7 @@
/obj/item/food/eggplantparm
name = "eggplant parmigiana"
desc = "The only good recipe for eggplant."
- icon_state = "eggplantparm"
+ icon = 'icons/obj/food/baked/eggplant_parmigiana.dmi'
plate = /obj/item/plate
filling_color = "#4d2f5e"
center_of_mass = @'{"x":16,"y":11}'
@@ -107,7 +107,7 @@
/obj/item/food/soylentgreen
name = "\improper Soylent Green"
desc = "Not made of people. Honest."//Totally people.
- icon_state = "soylent_green"
+ icon = 'icons/obj/food/baked/waffles/green.dmi'
trash = /obj/item/trash/waffles
filling_color = "#b8e6b5"
center_of_mass = @'{"x":15,"y":11}'
@@ -120,7 +120,7 @@
/obj/item/food/soylenviridians
name = "\improper Soylen Virdians"
desc = "Not made of people. Honest."//Actually honest for once.
- icon_state = "soylent_yellow"
+ icon = 'icons/obj/food/baked/waffles/blue.dmi'
trash = /obj/item/trash/waffles
filling_color = "#e6fa61"
center_of_mass = @'{"x":15,"y":11}'
@@ -130,7 +130,7 @@
/obj/item/food/meatpie
name = "meat-pie"
- icon_state = "meatpie"
+ icon = 'icons/obj/food/baked/pies/meat.dmi'
desc = "An old barber recipe, very delicious!"
plate = /obj/item/plate
filling_color = "#948051"
@@ -143,7 +143,7 @@
/obj/item/food/tofupie
name = "tofu-pie"
- icon_state = "meatpie"
+ icon = 'icons/obj/food/baked/pies/meat.dmi'
desc = "A delicious tofu pie."
plate = /obj/item/plate
filling_color = "#fffee0"
@@ -155,7 +155,7 @@
/obj/item/food/amanita_pie
name = "amanita pie"
desc = "Sweet and tasty poison pie."
- icon_state = "amanita_pie"
+ icon = 'icons/obj/food/baked/pies/amanita.dmi'
filling_color = "#ffcccc"
center_of_mass = @'{"x":17,"y":9}'
nutriment_desc = list("sweetness" = 3, "mushroom" = 3, "pie" = 2)
@@ -170,7 +170,7 @@
/obj/item/food/plump_pie
name = "plump pie"
desc = "I bet you love stuff made out of plump helmets!"
- icon_state = "plump_pie"
+ icon = 'icons/obj/food/baked/pies/plumphelmet.dmi'
filling_color = "#b8279b"
center_of_mass = @'{"x":17,"y":9}'
nutriment_desc = list("heartiness" = 2, "mushroom" = 3, "pie" = 3)
@@ -186,7 +186,7 @@
/obj/item/food/xemeatpie
name = "xeno-pie"
- icon_state = "xenomeatpie"
+ icon = 'icons/obj/food/baked/pies/xeno.dmi'
desc = "A delicious meatpie. Probably heretical."
plate = /obj/item/plate
filling_color = "#43de18"
@@ -195,12 +195,12 @@
/obj/item/food/xemeatpie/populate_reagents()
. = ..()
- add_to_reagents(/decl/material/solid/organic/meat, 10)
+ add_to_reagents(/decl/material/solid/organic/meat/xeno, 10)
/obj/item/food/poppypretzel
name = "poppy pretzel"
desc = "It's all twisted up!"
- icon_state = "poppypretzel"
+ icon = 'icons/obj/food/baked/pretzel.dmi'
filling_color = "#916e36"
center_of_mass = @'{"x":16,"y":10}'
nutriment_desc = list("poppy seeds" = 2, "pretzel" = 3)
@@ -210,7 +210,7 @@
/obj/item/food/applepie
name = "apple pie"
desc = "A pie containing sweet sweet love... or apple."
- icon_state = "applepie"
+ icon = 'icons/obj/food/baked/pies/apple.dmi'
filling_color = "#e0edc5"
center_of_mass = @'{"x":16,"y":13}'
nutriment_desc = list("sweetness" = 2, "apple" = 2, "pie" = 2)
@@ -220,7 +220,7 @@
/obj/item/food/cherrypie
name = "cherry pie"
desc = "Taste so good, make a grown man cry."
- icon_state = "cherrypie"
+ icon = 'icons/obj/food/baked/pies/cherry.dmi'
filling_color = "#ff525a"
center_of_mass = @'{"x":16,"y":11}'
nutriment_desc = list("sweetness" = 2, "cherry" = 2, "pie" = 2)
@@ -230,9 +230,31 @@
/obj/item/food/fortunecookie
name = "fortune cookie"
desc = "A true prophecy in each cookie!"
- icon_state = "fortune_cookie"
+ icon = 'icons/obj/food/baked/fortune_cookie.dmi'
filling_color = "#e8e79e"
center_of_mass = @'{"x":15,"y":14}'
nutriment_desc = list("fortune cookie" = 2)
nutriment_amt = 3
- bitesize = 2
\ No newline at end of file
+ bitesize = 2
+
+
+/obj/item/food/bun
+ name = "bun"
+ desc = "A base for any self-respecting burger."
+ icon = 'icons/obj/food/baked/bun.dmi'
+ icon_state = ICON_STATE_WORLD
+ bitesize = 2
+ center_of_mass = @'{"x":16,"y":12}'
+ nutriment_desc = list("bun" = 4)
+ nutriment_amt = 4
+ nutriment_type = /decl/material/liquid/nutriment/bread
+
+/obj/item/food/bunbun
+ name = "\improper Bun Bun"
+ desc = "A small bread monkey fashioned from two burger buns."
+ icon = 'icons/obj/food/baked/bunbun.dmi'
+ bitesize = 2
+ center_of_mass = @'{"x":16,"y":8}'
+ nutriment_desc = list("bun" = 8)
+ nutriment_amt = 8
+ nutriment_type = /decl/material/liquid/nutriment/bread
diff --git a/code/modules/reagents/reagent_containers/food/bread.dm b/code/modules/reagents/reagent_containers/food/baking/bread.dm
similarity index 85%
rename from code/modules/reagents/reagent_containers/food/bread.dm
rename to code/modules/reagents/reagent_containers/food/baking/bread.dm
index 8692588139a..0ed284778fb 100644
--- a/code/modules/reagents/reagent_containers/food/bread.dm
+++ b/code/modules/reagents/reagent_containers/food/baking/bread.dm
@@ -5,7 +5,7 @@
/obj/item/food/sandwich
name = "sandwich"
desc = "A grand creation of meat, cheese, bread, and several leaves of lettuce!"
- icon_state = "sandwich"
+ icon = 'icons/obj/food/baked/sandwich.dmi'
plate = /obj/item/plate
filling_color = "#d9be29"
center_of_mass = @'{"x":16,"y":4}'
@@ -23,7 +23,7 @@
/obj/item/food/toastedsandwich
name = "toasted sandwich"
desc = "Now if you only had a pepper bar."
- icon_state = "toastedsandwich"
+ icon = 'icons/obj/food/baked/toastedsandwich.dmi'
plate = /obj/item/plate
filling_color = "#d9be29"
center_of_mass = @'{"x":16,"y":4}'
@@ -35,12 +35,12 @@
/obj/item/food/toastedsandwich/populate_reagents()
. = ..()
add_to_reagents(/decl/material/solid/organic/meat, 3)
- add_to_reagents(/decl/material/solid/carbon, 2)
+ add_to_reagents(/decl/material/solid/carbon, 2)
/obj/item/food/grilledcheese
name = "grilled cheese sandwich"
- desc = "Goes great with Tomato soup!"
- icon_state = "toastedsandwich"
+ desc = "Goes great with tomato soup!"
+ icon = 'icons/obj/food/baked/toastedsandwich.dmi'
plate = /obj/item/plate
filling_color = "#d9be29"
nutriment_desc = list("toasted bread" = 3, "cheese" = 3)
@@ -50,12 +50,12 @@
/obj/item/food/grilledcheese/populate_reagents()
. = ..()
- add_to_reagents(/decl/material/solid/organic/meat, 4)
+ add_to_reagents(/decl/material/liquid/nutriment/cheese, 4)
/obj/item/food/baguette
name = "baguette"
desc = "Good for pretend sword fights."
- icon_state = "baguette"
+ icon = 'icons/obj/food/baked/baguette.dmi'
filling_color = "#e3d796"
center_of_mass = @'{"x":18,"y":12}'
nutriment_desc = list("long bread" = 6)
@@ -71,7 +71,7 @@
/obj/item/food/jelliedtoast
name = "jellied toast"
desc = "A slice of bread covered with delicious jam."
- icon_state = "jellytoast"
+ icon = 'icons/obj/food/baked/jellytoast.dmi'
plate = /obj/item/plate
filling_color = "#b572ab"
center_of_mass = @'{"x":16,"y":8}'
@@ -87,7 +87,7 @@
/obj/item/food/jellysandwich
name = "jelly sandwich"
desc = "You wish you had some peanut butter to go with this..."
- icon_state = "jellysandwich"
+ icon = 'icons/obj/food/baked/jellysandwich.dmi'
plate = /obj/item/plate
filling_color = "#9e3a78"
center_of_mass = @'{"x":16,"y":8}'
@@ -103,7 +103,7 @@
/obj/item/food/twobread
name = "\improper Two Bread"
desc = "It is very bitter and winy."
- icon_state = "twobread"
+ icon = 'icons/obj/food/baked/twobread.dmi'
filling_color = "#dbcc9a"
center_of_mass = @'{"x":15,"y":12}'
nutriment_desc = list("sourness" = 2, "bread" = 2)
@@ -114,7 +114,7 @@
/obj/item/food/threebread
name = "\improper Three Bread"
desc = "Is such a thing even possible?"
- icon_state = "threebread"
+ icon = 'icons/obj/food/baked/threebread.dmi'
filling_color = "#dbcc9a"
center_of_mass = @'{"x":15,"y":12}'
nutriment_desc = list("sourness" = 2, "bread" = 3)
@@ -125,8 +125,8 @@
/obj/item/food/flatbread
name = "flatbread"
desc = "Bland but filling."
- icon = 'icons/obj/food_ingredients.dmi'
- icon_state = "flatbread"
+ icon = 'icons/obj/food/baked/flatbread.dmi'
+ icon_state = ICON_STATE_WORLD
bitesize = 2
center_of_mass = @'{"x":16,"y":16}'
nutriment_desc = list("bread" = 3)
diff --git a/code/modules/reagents/reagent_containers/food/baking/cookie.dm b/code/modules/reagents/reagent_containers/food/baking/cookie.dm
new file mode 100644
index 00000000000..61e22ede1dc
--- /dev/null
+++ b/code/modules/reagents/reagent_containers/food/baking/cookie.dm
@@ -0,0 +1,11 @@
+/obj/item/food/cookie
+ name = "cookie"
+ desc = "It's a cookie!"
+ icon = 'icons/obj/food/baked/cookie.dmi'
+ filling_color = "#dbc94f"
+ center_of_mass = @'{"x":17,"y":18}'
+ nutriment_amt = 5
+ nutriment_desc = list("sweetness" = 3, "crisp cookie" = 2)
+ w_class = ITEM_SIZE_TINY
+ bitesize = 1
+ nutriment_type = /decl/material/liquid/nutriment/bread
diff --git a/code/modules/reagents/reagent_containers/food/baking/donuts.dm b/code/modules/reagents/reagent_containers/food/baking/donuts.dm
new file mode 100644
index 00000000000..bc52a6a4c29
--- /dev/null
+++ b/code/modules/reagents/reagent_containers/food/baking/donuts.dm
@@ -0,0 +1,60 @@
+/obj/item/food/donut
+ name = "donut"
+ desc = "Goes great with Robust Coffee."
+ icon = 'icons/obj/food/donuts/donut.dmi'
+ icon_state = ICON_STATE_WORLD
+ filling_color = "#d9c386"
+ center_of_mass = @'{"x":19,"y":16}'
+ nutriment_desc = list("sweetness", "donut")
+ nutriment_amt = 3
+ bitesize = 3
+ nutriment_type = /decl/material/liquid/nutriment/bread
+ var/iced_icon = 'icons/obj/food/donuts/donut_iced.dmi'
+
+/obj/item/food/donut/populate_reagents()
+ . = ..()
+ if(iced_icon && prob(30) && icon != iced_icon)
+ icon = iced_icon
+ SetName("frosted [name]")
+ add_to_reagents(/decl/material/liquid/nutriment/sprinkles, 2)
+
+/obj/item/food/donut/chaos
+ name = "chaos donut"
+ desc = "Like life, it never quite tastes the same."
+ filling_color = "#ed11e6"
+ nutriment_amt = 2
+ bitesize = 10
+
+/obj/item/food/donut/chaos/proc/get_random_fillings()
+ . = list(
+ /decl/material/liquid/nutriment,
+ /decl/material/liquid/capsaicin,
+ /decl/material/liquid/frostoil,
+ /decl/material/liquid/nutriment/sprinkles,
+ /decl/material/gas/chlorine,
+ /decl/material/liquid/nutriment/coco,
+ /decl/material/liquid/nutriment/banana_cream,
+ /decl/material/liquid/nutriment/cherryjelly,
+ /decl/material/liquid/fuel,
+ /decl/material/liquid/regenerator
+ )
+
+/obj/item/food/donut/chaos/populate_reagents()
+ . = ..()
+ add_to_reagents(pick(get_random_fillings()), 3)
+
+/obj/item/food/donut/jelly
+ name = "jelly donut"
+ desc = "You jelly?"
+ icon = 'icons/obj/food/donuts/donut_jelly.dmi'
+ iced_icon = 'icons/obj/food/donuts/donut_jelly_iced.dmi'
+ filling_color = "#ed1169"
+ center_of_mass = @'{"x":16,"y":11}'
+ nutriment_amt = 3
+ bitesize = 5
+ nutriment_type = /decl/material/liquid/nutriment/bread
+ var/jelly_type = /decl/material/liquid/nutriment/cherryjelly
+
+/obj/item/food/donut/jelly/populate_reagents()
+ . = ..()
+ add_to_reagents(jelly_type, 5)
diff --git a/code/modules/reagents/reagent_containers/food/baking/leavened_dough.dm b/code/modules/reagents/reagent_containers/food/baking/leavened_dough.dm
new file mode 100644
index 00000000000..47362c41166
--- /dev/null
+++ b/code/modules/reagents/reagent_containers/food/baking/leavened_dough.dm
@@ -0,0 +1,48 @@
+/obj/item/food/dough
+ name = "leavened dough"
+ desc = "A piece of dough."
+ icon = 'icons/obj/food/baked/dough.dmi'
+ icon_state = ICON_STATE_WORLD
+ bitesize = 2
+ center_of_mass = @'{"x":16,"y":13}'
+ nutriment_desc = list("raw dough" = 3)
+ nutriment_amt = 3
+ nutriment_type = /decl/material/liquid/nutriment/bread
+ backyard_grilling_product = /obj/item/food/bun
+ backyard_grilling_announcement = "is baked into a simple bun."
+
+// Dough + rolling pin = flat dough
+/obj/item/food/dough/attackby(obj/item/W, mob/user)
+ if(istype(W,/obj/item/kitchen/rollingpin))
+ var/obj/item/food/sliceable/flatdough/result = new()
+ result.dropInto(loc)
+ to_chat(user, "You flatten the dough.")
+ qdel(src)
+
+// slicable into 3x doughslices
+/obj/item/food/sliceable/flatdough
+ name = "flat leavened dough"
+ desc = "A flattened lump of dough, made with yeast."
+ icon = 'icons/obj/food/baked/flattened_dough.dmi'
+ icon_state = ICON_STATE_WORLD
+ slice_path = /obj/item/food/doughslice
+ slice_num = 3
+ center_of_mass = @'{"x":16,"y":16}'
+ utensil_flags = UTENSIL_FLAG_COLLECT | UTENSIL_FLAG_SLICE
+ nutriment_amt = 4
+ nutriment_desc = "raw dough"
+ // TODO: pizza base with no toppings? Some other round leavened bread product?
+ backyard_grilling_product = /obj/item/food/flatbread
+ backyard_grilling_announcement = "is baked into a simple flatbread."
+
+/obj/item/food/doughslice
+ name = "leavened dough slice"
+ desc = "A building block of an impressive dish."
+ icon = 'icons/obj/food/baked/sliced_dough.dmi'
+ icon_state = ICON_STATE_WORLD
+ bitesize = 2
+ center_of_mass = @'{"x":17,"y":19}'
+ nutriment_desc = list("raw dough" = 1)
+ nutriment_amt = 1
+ nutriment_type = /decl/material/liquid/nutriment/bread
+ utensil_flags = UTENSIL_FLAG_COLLECT
diff --git a/code/modules/reagents/reagent_containers/food/baking/piecrust.dm b/code/modules/reagents/reagent_containers/food/baking/piecrust.dm
new file mode 100644
index 00000000000..6816ce813b3
--- /dev/null
+++ b/code/modules/reagents/reagent_containers/food/baking/piecrust.dm
@@ -0,0 +1,8 @@
+/obj/item/food/piecrust
+ name = "pie crust"
+ desc = "A dense, buttery pie crust, ready for filling."
+ icon = 'icons/obj/food/baked/flattened_dough.dmi'
+ icon_state = ICON_STATE_WORLD
+ center_of_mass = @'{"x":16,"y":16}'
+ nutriment_amt = 4
+ nutriment_desc = "raw pie crust"
diff --git a/code/modules/reagents/reagent_containers/food/baking/pies.dm b/code/modules/reagents/reagent_containers/food/baking/pies.dm
new file mode 100644
index 00000000000..e69de29bb2d
diff --git a/code/modules/reagents/reagent_containers/food/baking/unleavened_dough.dm b/code/modules/reagents/reagent_containers/food/baking/unleavened_dough.dm
new file mode 100644
index 00000000000..f53bb3462fe
--- /dev/null
+++ b/code/modules/reagents/reagent_containers/food/baking/unleavened_dough.dm
@@ -0,0 +1,26 @@
+/obj/item/food/sliceable/unleaveneddough
+ name = "unleavened dough"
+ desc = "A flattened lump of dough, made without yeast."
+ icon = 'icons/obj/food/baked/flattened_dough.dmi'
+ icon_state = ICON_STATE_WORLD
+ center_of_mass = @'{"x":16,"y":16}'
+ backyard_grilling_product = /obj/item/food/flatbread
+ backyard_grilling_announcement = "is baked into a simple flatbread."
+ nutriment_amt = 4
+ nutriment_desc = "raw dough"
+ slice_path = /obj/item/food/unleaveneddoughslice
+ slice_num = 3
+
+/obj/item/food/unleaveneddoughslice
+ name = "unleavened dough slice"
+ desc = "A building block of an impressive dish."
+ icon = 'icons/obj/food/baked/sliced_dough.dmi'
+ icon_state = ICON_STATE_WORLD
+ slice_path = /obj/item/food/spagetti
+ slice_num = 1
+ bitesize = 2
+ center_of_mass = @'{"x":17,"y":19}'
+ nutriment_desc = list("raw dough" = 1)
+ nutriment_amt = 1
+ nutriment_type = /decl/material/liquid/nutriment/bread
+ utensil_flags = UTENSIL_FLAG_COLLECT | UTENSIL_FLAG_SLICE
diff --git a/code/modules/reagents/reagent_containers/food/burgers.dm b/code/modules/reagents/reagent_containers/food/burgers.dm
index 93c5f9572d6..baa622d0f76 100644
--- a/code/modules/reagents/reagent_containers/food/burgers.dm
+++ b/code/modules/reagents/reagent_containers/food/burgers.dm
@@ -5,7 +5,7 @@
/obj/item/food/brainburger
name = "brainburger"
desc = "A strange looking burger. It looks almost sentient."
- icon_state = "brainburger"
+ icon = 'icons/obj/food/burgers/brainburger.dmi'
filling_color = "#f2b6ea"
center_of_mass = @'{"x":15,"y":11}'
bitesize = 2
@@ -19,32 +19,17 @@
/obj/item/food/ghostburger
name = "ghost burger"
desc = "Spooky! It doesn't look very filling."
- icon_state = "ghostburger"
+ icon = 'icons/obj/food/burgers/ghostburger.dmi'
filling_color = "#fff2ff"
center_of_mass = @'{"x":16,"y":11}'
nutriment_desc = list("buns" = 3, "spookiness" = 3)
nutriment_amt = 2
bitesize = 2
-/obj/item/food/human
- filling_color = "#d63c3c"
- material = /decl/material/solid/organic/meat
-
-/obj/item/food/human/burger
- name = "-burger"
- desc = "A bloody burger."
- icon_state = "hburger"
- center_of_mass = @'{"x":16,"y":11}'
- bitesize = 2
-
-/obj/item/food/human/burger/populate_reagents()
- . = ..()
- add_to_reagents(/decl/material/solid/organic/meat, 6)
-
/obj/item/food/cheeseburger
name = "cheeseburger"
desc = "The cheese adds a good flavor."
- icon_state = "cheeseburger"
+ icon = 'icons/obj/food/burgers/cheeseburger.dmi'
center_of_mass = @'{"x":16,"y":11}'
nutriment_desc = list("cheese" = 2, "bun" = 2)
nutriment_amt = 2
@@ -56,8 +41,7 @@
/obj/item/food/burger
name = "burger"
desc = "The cornerstone of every nutritious breakfast."
- icon = 'icons/obj/food_ingredients.dmi'
- icon_state = "burger"
+ icon = 'icons/obj/food/burgers/burger.dmi'
filling_color = "#d63c3c"
center_of_mass = @'{"x":16,"y":11}'
nutriment_desc = list("bun" = 2)
@@ -71,8 +55,7 @@
/obj/item/food/hamburger
name = "hamburger"
desc = "The cornerstone of every nutritious breakfast, now with ham!"
- icon = 'icons/obj/food_ingredients.dmi'
- icon_state = "hamburger"
+ icon = 'icons/obj/food/burgers/hamburger.dmi'
filling_color = "#d63c3c"
center_of_mass = @'{"x":16,"y":11}'
nutriment_desc = list("bun" = 2)
@@ -86,7 +69,7 @@
/obj/item/food/fishburger
name = "fish sandwich"
desc = "Almost like a carp is yelling somewhere... Give me back that fillet -o- carp, give me that carp."
- icon_state = "fishburger"
+ icon = 'icons/obj/food/burgers/fishburger.dmi'
filling_color = "#ffdefe"
center_of_mass = @'{"x":16,"y":10}'
bitesize = 3
@@ -98,7 +81,7 @@
/obj/item/food/tofuburger
name = "tofu burger"
desc = "What... is that meat?"
- icon_state = "tofuburger"
+ icon = 'icons/obj/food/burgers/tofuburger.dmi'
filling_color = "#fffee0"
center_of_mass = @'{"x":16,"y":10}'
nutriment_desc = list("bun" = 2, "pseudo-soy meat" = 3)
@@ -108,7 +91,7 @@
/obj/item/food/roburger
name = "roburger"
desc = "The lettuce is the only organic component. Beep."
- icon_state = "roburger"
+ icon = 'icons/obj/food/burgers/roburger.dmi'
filling_color = COLOR_GRAY80
center_of_mass = @'{"x":16,"y":11}'
nutriment_desc = list("bun" = 2, "metal" = 3)
@@ -123,7 +106,7 @@
/obj/item/food/roburgerbig
name = "roburger"
desc = "This massive patty looks like poison. Beep."
- icon_state = "roburger"
+ icon = 'icons/obj/food/burgers/roburger.dmi'
filling_color = COLOR_GRAY80
volume = 100
center_of_mass = @'{"x":16,"y":11}'
@@ -136,7 +119,7 @@
/obj/item/food/xenoburger
name = "xenoburger"
desc = "Smells caustic. Tastes like heresy."
- icon_state = "xburger"
+ icon = 'icons/obj/food/burgers/xenoburger.dmi'
filling_color = "#43de18"
center_of_mass = @'{"x":16,"y":11}'
bitesize = 2
@@ -148,7 +131,7 @@
/obj/item/food/clownburger
name = "clown burger"
desc = "This tastes funny..."
- icon_state = "clownburger"
+ icon = 'icons/obj/food/burgers/clownburger.dmi'
filling_color = "#ff00ff"
center_of_mass = @'{"x":17,"y":12}'
nutriment_desc = list("bun" = 2, "clown shoe" = 3)
@@ -158,7 +141,7 @@
/obj/item/food/mimeburger
name = "mime burger"
desc = "Its taste defies language."
- icon_state = "mimeburger"
+ icon = 'icons/obj/food/burgers/mimeburger.dmi'
filling_color = "#ffffff"
center_of_mass = @'{"x":16,"y":11}'
nutriment_desc = list("bun" = 2, "mime paint" = 3)
@@ -168,7 +151,7 @@
/obj/item/food/spellburger
name = "spell burger"
desc = "This is absolutely magical."
- icon_state = "spellburger"
+ icon = 'icons/obj/food/burgers/spellburger.dmi'
filling_color = "#d505ff"
nutriment_desc = list("magic" = 3, "buns" = 3)
nutriment_amt = 6
@@ -177,7 +160,7 @@
/obj/item/food/bigbiteburger
name = "big bite burger"
desc = "Forget the Luna Burger! THIS is the future!"
- icon_state = "bigbiteburger"
+ icon = 'icons/obj/food/burgers/bigbiteburger.dmi'
filling_color = "#e3d681"
center_of_mass = @'{"x":16,"y":11}'
nutriment_desc = list("buns" = 4)
@@ -191,7 +174,7 @@
/obj/item/food/jellyburger
name = "jelly burger"
desc = "Culinary delight...?"
- icon_state = "jellyburger"
+ icon = 'icons/obj/food/burgers/jellyburger.dmi'
filling_color = "#b572ab"
center_of_mass = @'{"x":16,"y":11}'
nutriment_desc = list("buns" = 5)
@@ -205,7 +188,7 @@
/obj/item/food/superbiteburger
name = "super bite burger"
desc = "This is a mountain of a burger. FOOD!"
- icon_state = "superbiteburger"
+ icon = 'icons/obj/food/burgers/superbiteburger.dmi'
filling_color = "#cca26a"
center_of_mass = @'{"x":16,"y":3}'
nutriment_desc = list("buns" = 25)
@@ -216,29 +199,3 @@
. = ..()
add_to_reagents(/decl/material/solid/organic/meat, 25)
-// I am not creating another file just for hot dogs.
-
-/obj/item/food/hotdog
- name = "hotdog"
- desc = "Unrelated to dogs, maybe."
- icon_state = "hotdog"
- bitesize = 2
- center_of_mass = @'{"x":16,"y":17}'
- nutriment_type = /decl/material/liquid/nutriment/bread
- material = /decl/material/solid/organic/meat
-
-/obj/item/food/hotdog/populate_reagents()
- . = ..()
- add_to_reagents(/decl/material/solid/organic/meat, 6)
-
-/obj/item/food/classichotdog
- name = "classic hotdog"
- desc = "Going literal."
- icon_state = "hotcorgi"
- bitesize = 6
- center_of_mass = @'{"x":16,"y":17}'
- material = /decl/material/solid/organic/meat
-
-/obj/item/food/classichotdog/populate_reagents()
- . = ..()
- add_to_reagents(/decl/material/solid/organic/meat, 16)
diff --git a/code/modules/reagents/reagent_containers/food/canned.dm b/code/modules/reagents/reagent_containers/food/canned/_canned.dm
similarity index 96%
rename from code/modules/reagents/reagent_containers/food/canned.dm
rename to code/modules/reagents/reagent_containers/food/canned/_canned.dm
index 7835a689442..c293bf07f17 100644
--- a/code/modules/reagents/reagent_containers/food/canned.dm
+++ b/code/modules/reagents/reagent_containers/food/canned/_canned.dm
@@ -5,7 +5,8 @@
/obj/item/food/can
name = "empty can"
- icon = 'icons/obj/food_canned.dmi'
+ icon = 'icons/obj/food/canned/canned.dmi'
+ icon_state = "blank"
center_of_mass = @'{"x":15,"y":9}'
atom_flags = 0
bitesize = 3
@@ -138,8 +139,8 @@
/obj/item/food/can/caviar/true/populate_reagents()
. = ..()
- add_to_reagents(/decl/material/solid/organic/meat, 4)
- add_to_reagents(/decl/material/liquid/carpotoxin, 1)
+ add_to_reagents(/decl/material/solid/organic/meat/fish, 4)
+ add_to_reagents(/decl/material/liquid/carpotoxin, 1)
/obj/item/knife/opener
name = "can-opener"
diff --git a/code/modules/reagents/reagent_containers/food/can_edibility.dm b/code/modules/reagents/reagent_containers/food/canned/can_edibility.dm
similarity index 100%
rename from code/modules/reagents/reagent_containers/food/can_edibility.dm
rename to code/modules/reagents/reagent_containers/food/canned/can_edibility.dm
diff --git a/code/modules/reagents/reagent_containers/food/chocolate/chocolate.dm b/code/modules/reagents/reagent_containers/food/chocolate/chocolate.dm
new file mode 100644
index 00000000000..9c0b4afd7d6
--- /dev/null
+++ b/code/modules/reagents/reagent_containers/food/chocolate/chocolate.dm
@@ -0,0 +1,30 @@
+
+/obj/item/food/chocolatebar
+ name = "chocolate bar"
+ desc = "Such sweet, fattening food."
+ icon = 'icons/obj/food/chocolatebar.dmi'
+ filling_color = "#7d5f46"
+ center_of_mass = @'{"x":15,"y":15}'
+ nutriment_amt = 2
+ nutriment_desc = list("chocolate" = 5)
+ bitesize = 2
+
+/obj/item/food/chocolatebar/populate_reagents()
+ . = ..()
+ add_to_reagents(/decl/material/liquid/nutriment/coco, 2)
+ add_to_reagents(/decl/material/liquid/nutriment/sugar, 2)
+
+/obj/item/food/chocolateegg
+ name = "chocolate egg"
+ desc = "Such sweet, fattening food."
+ icon = 'icons/obj/food/eggs/egg_chocolate.dmi'
+ filling_color = "#7d5f46"
+ center_of_mass = @'{"x":16,"y":13}'
+ nutriment_amt = 3
+ nutriment_desc = list("chocolate" = 5)
+ bitesize = 2
+
+/obj/item/food/chocolateegg/populate_reagents()
+ . = ..()
+ add_to_reagents(/decl/material/liquid/nutriment/coco, 2)
+ add_to_reagents(/decl/material/liquid/nutriment/sugar, 2)
diff --git a/code/modules/reagents/reagent_containers/food/donkpocket.dm b/code/modules/reagents/reagent_containers/food/donkpocket.dm
new file mode 100644
index 00000000000..b261f8781a8
--- /dev/null
+++ b/code/modules/reagents/reagent_containers/food/donkpocket.dm
@@ -0,0 +1,77 @@
+/obj/item/food/donkpocket
+ name = "cold donk-pocket"
+ desc = "The food of choice for the seasoned traitor."
+ icon = 'icons/obj/food/donkpocket.dmi'
+ filling_color = "#dedeab"
+ center_of_mass = @'{"x":16,"y":10}'
+ nutriment_desc = list("heartiness" = 1, "dough" = 2)
+ nutriment_amt = 2
+ var/warm = 0
+ var/list/heated_reagents = list(/decl/material/liquid/regenerator = 5)
+
+/obj/item/food/donkpocket/populate_reagents()
+ . = ..()
+ add_to_reagents(/decl/material/solid/organic/meat, 2)
+
+/obj/item/food/donkpocket/grill(var/atom/heat_source)
+
+ backyard_grilling_rawness--
+ if(backyard_grilling_rawness <= 0)
+ backyard_grilling_rawness = initial(backyard_grilling_rawness)
+
+ // We're already warm, so we burn.
+ if(warm)
+ var/obj/item/food/badrecipe/whoops = new
+ whoops.dropInto(loc)
+ visible_message(SPAN_DANGER("\The [src] chars and blackens!"))
+ qdel(src)
+ return whoops
+
+ // Otherwise we just warm up.
+ heat()
+ visible_message(SPAN_NOTICE("\The [src] steams gently!"))
+ return src
+
+/obj/item/food/donkpocket/proc/heat()
+ if(warm)
+ return
+ warm = 1
+ for(var/reagent in heated_reagents)
+ add_to_reagents(reagent, heated_reagents[reagent])
+ bitesize = 6
+ SetName("warm donk-pocket")
+ addtimer(CALLBACK(src, PROC_REF(cool)), 7 MINUTES)
+
+/obj/item/food/donkpocket/proc/cool()
+ if(!warm)
+ return
+ warm = 0
+ for(var/reagent in heated_reagents)
+ reagents.clear_reagent(reagent)
+ SetName(initial(name))
+
+/obj/item/food/donkpocket/sinpocket
+ name = "\improper Sin-pocket"
+ desc = "The food of choice for the veteran. Do NOT overconsume."
+ filling_color = "#6d6d00"
+ heated_reagents = list(
+ /decl/material/liquid/regenerator = 5,
+ /decl/material/liquid/amphetamines = 0.75,
+ /decl/material/liquid/stimulants = 0.25
+ )
+ var/has_been_heated = 0 // Unlike the warm var, this checks if the one-time self-heating operation has been used.
+
+/obj/item/food/donkpocket/sinpocket/attack_self(mob/user)
+ if(has_been_heated)
+ to_chat(user, "The heating chemicals have already been spent.")
+ return
+ has_been_heated = 1
+ user.visible_message("[user] crushes \the [src] package.", "You crush \the [src] package and feel a comfortable heat build up.")
+ addtimer(CALLBACK(src, PROC_REF(heat), weakref(user)), 20 SECONDS)
+
+/obj/item/food/donkpocket/sinpocket/heat(weakref/message_to)
+ ..()
+ if(message_to)
+ var/mob/user = message_to.resolve()
+ if(user)
+ to_chat(user, "You think \the [src] is ready to eat about now.")
diff --git a/code/modules/reagents/reagent_containers/food/dough.dm b/code/modules/reagents/reagent_containers/food/dough.dm
deleted file mode 100644
index feac2e9bbec..00000000000
--- a/code/modules/reagents/reagent_containers/food/dough.dm
+++ /dev/null
@@ -1,91 +0,0 @@
-/obj/item/food/dough
- name = "dough"
- desc = "A piece of dough."
- icon = 'icons/obj/food_ingredients.dmi'
- icon_state = "dough"
- bitesize = 2
- center_of_mass = @'{"x":16,"y":13}'
- nutriment_desc = list("dough" = 3)
- nutriment_amt = 3
- nutriment_type = /decl/material/liquid/nutriment/bread
- backyard_grilling_product = /obj/item/food/bun
- backyard_grilling_announcement = "is baked into a simple bun."
-
-// Dough + rolling pin = flat dough
-/obj/item/food/dough/attackby(obj/item/W, mob/user)
- if(istype(W,/obj/item/kitchen/rollingpin))
- var/obj/item/food/sliceable/flatdough/result = new()
- result.dropInto(loc)
- to_chat(user, "You flatten the dough.")
- qdel(src)
-
-/obj/item/food/unleaveneddough
- name = "flat unleavened dough"
- desc = "A flattened lump of dough, made without yeast."
- icon = 'icons/obj/food_ingredients.dmi'
- icon_state = "flat dough"
- center_of_mass = @'{"x":16,"y":16}'
- backyard_grilling_product = /obj/item/food/flatbread
- backyard_grilling_announcement = "is baked into a simple flatbread."
- nutriment_amt = 4
- nutriment_desc = "raw dough"
-
-/obj/item/food/piecrust
- name = "pie crust"
- desc = "A dense, buttery pie crust, ready for filling."
- icon = 'icons/obj/food_ingredients.dmi'
- icon_state = "flat dough"
- center_of_mass = @'{"x":16,"y":16}'
- nutriment_amt = 4
- nutriment_desc = "raw pie crust"
-
-// slicable into 3x doughslices
-/obj/item/food/sliceable/flatdough
- name = "flat leavened dough"
- desc = "A flattened lump of dough, made with yeast."
- icon = 'icons/obj/food_ingredients.dmi'
- icon_state = "flat dough"
- slice_path = /obj/item/food/doughslice
- slice_num = 3
- center_of_mass = @'{"x":16,"y":16}'
- utensil_flags = UTENSIL_FLAG_COLLECT | UTENSIL_FLAG_SLICE
- nutriment_amt = 4
- nutriment_desc = "raw dough"
- // TODO: pizza base with no toppings? Some other round leavened bread product?
- backyard_grilling_product = /obj/item/food/flatbread
- backyard_grilling_announcement = "is baked into a simple flatbread."
-
-/obj/item/food/doughslice
- name = "dough slice"
- desc = "A building block of an impressive dish."
- icon = 'icons/obj/food_ingredients.dmi'
- icon_state = "doughslice"
- slice_path = /obj/item/food/spagetti
- slice_num = 1
- bitesize = 2
- center_of_mass = @'{"x":17,"y":19}'
- nutriment_desc = list("dough" = 1)
- nutriment_amt = 1
- nutriment_type = /decl/material/liquid/nutriment/bread
- utensil_flags = UTENSIL_FLAG_COLLECT | UTENSIL_FLAG_SLICE
-
-/obj/item/food/bun
- name = "bun"
- desc = "A base for any self-respecting burger."
- icon = 'icons/obj/food_ingredients.dmi'
- icon_state = "bun"
- bitesize = 2
- center_of_mass = @'{"x":16,"y":12}'
- nutriment_desc = list("bun" = 4)
- nutriment_amt = 4
- nutriment_type = /decl/material/liquid/nutriment/bread
-
-/obj/item/food/bunbun
- name = "\improper Bun Bun"
- desc = "A small bread monkey fashioned from two burger buns."
- icon_state = "bunbun"
- bitesize = 2
- center_of_mass = @'{"x":16,"y":8}'
- nutriment_desc = list("bun" = 8)
- nutriment_amt = 8
- nutriment_type = /decl/material/liquid/nutriment/bread
\ No newline at end of file
diff --git a/code/modules/reagents/reagent_containers/food/eggs.dm b/code/modules/reagents/reagent_containers/food/eggs.dm
index 2e759794df6..89f0e101d5c 100644
--- a/code/modules/reagents/reagent_containers/food/eggs.dm
+++ b/code/modules/reagents/reagent_containers/food/eggs.dm
@@ -83,14 +83,14 @@
/obj/item/food/friedegg
name = "fried egg"
desc = "A fried egg, with a touch of salt and pepper."
- icon_state = "friedegg"
+ icon = 'icons/obj/food/fried/friedegg.dmi'
filling_color = "#ffdf78"
center_of_mass = @'{"x":16,"y":14}'
bitesize = 1
/obj/item/food/friedegg/populate_reagents()
. = ..()
- add_to_reagents(/decl/material/solid/organic/meat, 3)
+ add_to_reagents(/decl/material/solid/organic/meat/egg, 3)
add_to_reagents(/decl/material/solid/sodiumchloride, 1)
add_to_reagents(/decl/material/solid/blackpepper, 1)
@@ -103,12 +103,12 @@
/obj/item/food/boiledegg/populate_reagents()
. = ..()
- add_to_reagents(/decl/material/solid/organic/meat, 2)
+ add_to_reagents(/decl/material/solid/organic/meat/egg, 2)
/obj/item/food/omelette
name = "cheese omelette"
desc = "Omelette with cheese!"
- icon_state = "omelette"
+ icon = 'icons/obj/food/fried/omelette.dmi'
plate = /obj/item/plate
filling_color = "#fff9a8"
center_of_mass = @'{"x":16,"y":13}'
@@ -116,12 +116,12 @@
/obj/item/food/omelette/populate_reagents()
. = ..()
- add_to_reagents(/decl/material/solid/organic/meat, 8)
+ add_to_reagents(/decl/material/solid/organic/meat/egg, 8)
/obj/item/food/chawanmushi
name = "chawanmushi"
desc = "A legendary egg custard that makes friends out of enemies. Probably too hot for a cat to eat."
- icon_state = "chawanmushi"
+ icon = 'icons/obj/food/pudding/chawanmushi.dmi'
trash = /obj/item/trash/snack_bowl
filling_color = "#f0f2e4"
center_of_mass = @'{"x":17,"y":10}'
@@ -129,4 +129,4 @@
/obj/item/food/chawanmushi/populate_reagents()
. = ..()
- add_to_reagents(/decl/material/solid/organic/meat, 5)
\ No newline at end of file
+ add_to_reagents(/decl/material/solid/organic/meat/egg, 5)
\ No newline at end of file
diff --git a/code/modules/reagents/reagent_containers/food/fried.dm b/code/modules/reagents/reagent_containers/food/fried.dm
index 06a7bbf3b5d..3417d11f742 100644
--- a/code/modules/reagents/reagent_containers/food/fried.dm
+++ b/code/modules/reagents/reagent_containers/food/fried.dm
@@ -7,7 +7,7 @@
/obj/item/food/onionrings
name = "onion rings"
desc = "Like circular fries but better."
- icon_state = "onionrings"
+ icon = 'icons/obj/food/fried/onionrings.dmi'
plate = /obj/item/plate
filling_color = "#eddd00"
center_of_mass = @'{"x":16,"y":11}'
@@ -18,7 +18,7 @@
/obj/item/food/fries
name = "chips"
desc = "Frenched potato, fried."
- icon_state = "fries"
+ icon = 'icons/obj/food/fried/fries.dmi'
plate = /obj/item/plate
filling_color = "#eddd00"
center_of_mass = @'{"x":16,"y":11}'
@@ -29,7 +29,7 @@
/obj/item/food/cheesyfries
name = "cheesy fries"
desc = "Fries. Covered in cheese. Duh."
- icon_state = "cheesyfries"
+ icon = 'icons/obj/food/fried/cheesyfries.dmi'
plate = /obj/item/plate
filling_color = "#eddd00"
center_of_mass = @'{"x":16,"y":11}'
@@ -39,4 +39,4 @@
/obj/item/food/cheesyfries/populate_reagents()
. = ..()
- add_to_reagents(/decl/material/solid/organic/meat, 2)
+ add_to_reagents(/decl/material/liquid/nutriment/cheese, 2)
diff --git a/code/modules/reagents/reagent_containers/food/hotdog.dm b/code/modules/reagents/reagent_containers/food/hotdog.dm
new file mode 100644
index 00000000000..c74723d5719
--- /dev/null
+++ b/code/modules/reagents/reagent_containers/food/hotdog.dm
@@ -0,0 +1,24 @@
+/obj/item/food/hotdog
+ name = "hotdog"
+ desc = "Unrelated to dogs, maybe."
+ icon = 'icons/obj/food/hotdog.dmi'
+ bitesize = 2
+ center_of_mass = @'{"x":16,"y":17}'
+ nutriment_type = /decl/material/liquid/nutriment/bread
+ material = /decl/material/solid/organic/meat
+
+/obj/item/food/hotdog/populate_reagents()
+ . = ..()
+ add_to_reagents(/decl/material/solid/organic/meat, 6)
+
+/obj/item/food/classichotdog
+ name = "classic hotdog"
+ desc = "Going literal."
+ icon = 'icons/obj/food/hotcorgi.dmi'
+ bitesize = 6
+ center_of_mass = @'{"x":16,"y":17}'
+ material = /decl/material/solid/organic/meat
+
+/obj/item/food/classichotdog/populate_reagents()
+ . = ..()
+ add_to_reagents(/decl/material/solid/organic/meat, 16)
diff --git a/code/modules/reagents/reagent_containers/food/junkfood.dm b/code/modules/reagents/reagent_containers/food/junkfood.dm
index 0a7987be4aa..7792578bcda 100644
--- a/code/modules/reagents/reagent_containers/food/junkfood.dm
+++ b/code/modules/reagents/reagent_containers/food/junkfood.dm
@@ -1,4 +1,8 @@
-/obj/item/food/sosjerky
+/obj/item/food/junk
+ icon = 'icons/obj/food/junk/junkfood.dmi'
+ abstract_type = /obj/item/food/junk
+
+/obj/item/food/junk/sosjerky
name = "emergency meat jerky"
icon_state = "sosjerky"
desc = "For when you desperately want meat and you don't care what kind. Has the same texture as old leather boots."
@@ -8,11 +12,11 @@
bitesize = 2
material = /decl/material/solid/organic/meat
-/obj/item/food/sosjerky/populate_reagents()
+/obj/item/food/junk/sosjerky/populate_reagents()
. = ..()
add_to_reagents(/decl/material/solid/organic/meat, 4)
-/obj/item/food/no_raisin
+/obj/item/food/junk/no_raisin
name = "raisins"
icon_state = "4no_raisins"
desc = "Pouring water on these will not turn them back into grapes, unfortunately."
@@ -22,7 +26,7 @@
nutriment_desc = list("raisins" = 6)
nutriment_amt = 6
-/obj/item/food/spacetwinkie
+/obj/item/food/junk/spacetwinkie
name = "eclair"
icon_state = "space_twinkie"
desc = "So full of preservatives, it's guaranteed to survive longer then you will."
@@ -30,11 +34,11 @@
center_of_mass = @'{"x":15,"y":11}'
bitesize = 2
-/obj/item/food/spacetwinkie/populate_reagents()
+/obj/item/food/junk/spacetwinkie/populate_reagents()
. = ..()
add_to_reagents(/decl/material/liquid/nutriment/sugar, 4)
-/obj/item/food/cheesiehonkers
+/obj/item/food/junk/cheesiehonkers
name = "cheese puffs"
icon_state = "cheesie_honkers"
desc = "Bite sized cheese flavoured snacks that will leave your fingers coated in cheese dust."
@@ -45,7 +49,7 @@
nutriment_amt = 4
bitesize = 2
-/obj/item/food/syndicake
+/obj/item/food/junk/syndicake
name = "subversive cakes"
icon_state = "syndi_cakes"
desc = "Made using extremely unethical labour, ingredients and marketing methods."
@@ -56,13 +60,13 @@
trash = /obj/item/trash/syndi_cakes
bitesize = 3
-/obj/item/food/syndicake/populate_reagents()
+/obj/item/food/junk/syndicake/populate_reagents()
. = ..()
add_to_reagents(/decl/material/liquid/regenerator, 5)
//terran delights
-/obj/item/food/pistachios
+/obj/item/food/junk/pistachios
name = "pistachios"
icon_state = "pistachios"
desc = "Pistachios. There is absolutely nothing remarkable about these."
@@ -73,7 +77,7 @@
nutriment_amt = 3
bitesize = 0.5
-/obj/item/food/semki
+/obj/item/food/junk/semki
name = "sunflower seeds"
icon_state = "semki"
desc = "A favorite among birds."
@@ -84,7 +88,7 @@
nutriment_amt = 6
bitesize = 0.5
-/obj/item/food/squid
+/obj/item/food/junk/squid
name = "\improper Calamari Crisps"
icon_state = "squid"
desc = "Space cepholapod tentacles, carefully removed from the squid then dried into strips of delicious rubbery goodness!"
@@ -95,11 +99,11 @@
nutriment_amt = 2
bitesize = 1
-/obj/item/food/squid/populate_reagents()
+/obj/item/food/junk/squid/populate_reagents()
. = ..()
- add_to_reagents(/decl/material/solid/organic/meat, 4)
+ add_to_reagents(/decl/material/solid/organic/meat/fish, 4)
-/obj/item/food/croutons
+/obj/item/food/junk/croutons
name = "croutons"
icon_state = "croutons"
desc = "Fried bread cubes. Good in salad but I guess you can just eat them as is."
@@ -111,7 +115,7 @@
bitesize = 1
nutriment_type = /decl/material/liquid/nutriment/bread
-/obj/item/food/salo
+/obj/item/food/junk/salo
name = "salo"
icon_state = "salo"
desc = "Pig fat. Salted. Just as good as it sounds."
@@ -122,11 +126,11 @@
nutriment_amt = 2
bitesize = 2
-/obj/item/food/salo/populate_reagents()
+/obj/item/food/junk/salo/populate_reagents()
. = ..()
add_to_reagents(/decl/material/solid/organic/meat, 8)
-/obj/item/food/driedfish
+/obj/item/food/junk/driedfish
name = "vobla"
icon_state = "driedfish"
desc = "Dried salted beer snack fish."
@@ -137,11 +141,11 @@
nutriment_amt = 2
bitesize = 1
-/obj/item/food/driedfish/populate_reagents()
+/obj/item/food/junk/driedfish/populate_reagents()
. = ..()
- add_to_reagents(/decl/material/solid/organic/meat, 4)
+ add_to_reagents(/decl/material/solid/organic/meat/fish, 4)
-/obj/item/food/liquidfood
+/obj/item/food/junk/liquidfood
name = "\improper LiquidFood MRE"
desc = "A prepackaged grey slurry for all of the essential nutrients a soldier requires to survive. No expiration date is visible..."
icon_state = "liquidfood"
@@ -152,11 +156,11 @@
nutriment_amt = 20
bitesize = 4
-/obj/item/food/liquidfood/populate_reagents()
+/obj/item/food/junk/liquidfood/populate_reagents()
. = ..()
add_to_reagents(/decl/material/solid/metal/iron, 3)
-/obj/item/food/meatcube
+/obj/item/food/junk/meatcube
name = "cubed meat"
desc = "Fried, salted lean meat compressed into a cube. Not very appetizing."
icon_state = "meatcube"
@@ -165,11 +169,11 @@
bitesize = 3
material = /decl/material/solid/organic/meat
-/obj/item/food/meatcube/populate_reagents()
+/obj/item/food/junk/meatcube/populate_reagents()
. = ..()
add_to_reagents(/decl/material/solid/organic/meat, 15)
-/obj/item/food/tastybread
+/obj/item/food/junk/tastybread
name = "bread tube"
desc = "Bread in a tube. Chewy... and surprisingly tasty."
icon_state = "tastybread"
@@ -181,7 +185,7 @@
nutriment_type = /decl/material/liquid/nutriment/bread
bitesize = 2
-/obj/item/food/candy
+/obj/item/food/junk/candy
name = "candy"
desc = "Nougat, love it or hate it."
icon_state = "candy"
@@ -192,36 +196,36 @@
nutriment_desc = list("candy" = 1)
bitesize = 2
-/obj/item/food/candy/populate_reagents()
+/obj/item/food/junk/candy/populate_reagents()
. = ..()
add_to_reagents(/decl/material/liquid/nutriment/sugar, 3)
-/obj/item/food/candy/proteinbar
+/obj/item/food/junk/candy/proteinbar
name = "protein bar"
desc = "MuscleLopin brand protein bars, guaranteed to get you soSO strong!"
icon_state = "proteinbar"
trash = /obj/item/trash/candy/proteinbar
bitesize = 6
-/obj/item/food/candy/proteinbar/populate_reagents()
+/obj/item/food/junk/candy/proteinbar/populate_reagents()
. = ..()
add_to_reagents(/decl/material/liquid/nutriment, 9)
add_to_reagents(/decl/material/solid/organic/meat, 4)
add_to_reagents(/decl/material/liquid/nutriment/sugar, 4)
-/obj/item/food/candy/donor
+/obj/item/food/junk/candy/donor
name = "donor candy"
desc = "A little treat for blood donors."
trash = /obj/item/trash/candy
nutriment_desc = list("candy" = 10)
bitesize = 5
-/obj/item/food/candy/donor/populate_reagents()
+/obj/item/food/junk/candy/donor/populate_reagents()
. = ..()
add_to_reagents(/decl/material/liquid/nutriment, 10)
add_to_reagents(/decl/material/liquid/nutriment/sugar, 3)
-/obj/item/food/candy_corn
+/obj/item/food/junk/candy_corn
name = "candy corn"
desc = "It's a handful of candy corn. Not actually candied corn."
icon_state = "candy_corn"
@@ -231,12 +235,12 @@
nutriment_desc = list("candy corn" = 4)
bitesize = 2
-/obj/item/food/candy_corn/populate_reagents()
+/obj/item/food/junk/candy_corn/populate_reagents()
. = ..()
add_to_reagents(/decl/material/liquid/nutriment, 4)
add_to_reagents(/decl/material/liquid/nutriment/sugar, 2)
-/obj/item/food/chips
+/obj/item/food/junk/chips
name = "chips"
desc = "It is impossible to open the packet without rustling it loudly."
icon_state = "chips"
@@ -248,111 +252,8 @@
bitesize = 1
nutriment_type = /decl/material/liquid/nutriment/bread
-/obj/item/food/cookie
- name = "cookie"
- desc = "COOKIE!!!"
- icon_state = "cookie"
- filling_color = "#dbc94f"
- center_of_mass = @'{"x":17,"y":18}'
- nutriment_amt = 5
- nutriment_desc = list("sweetness" = 3, "cookie" = 2)
- w_class = ITEM_SIZE_TINY
- bitesize = 1
- nutriment_type = /decl/material/liquid/nutriment/bread
-
-/obj/item/food/chocolatebar
- name = "chocolate bar"
- desc = "Such sweet, fattening food."
- icon_state = "chocolatebar"
- filling_color = "#7d5f46"
- center_of_mass = @'{"x":15,"y":15}'
- nutriment_amt = 2
- nutriment_desc = list("chocolate" = 5)
- bitesize = 2
-
-/obj/item/food/chocolatebar/populate_reagents()
- . = ..()
- add_to_reagents(/decl/material/liquid/nutriment/coco, 2)
- add_to_reagents(/decl/material/liquid/nutriment/sugar, 2)
-
-/obj/item/food/chocolateegg
- name = "chocolate egg"
- desc = "Such sweet, fattening food."
- icon_state = "chocolateegg"
- filling_color = "#7d5f46"
- center_of_mass = @'{"x":16,"y":13}'
- nutriment_amt = 3
- nutriment_desc = list("chocolate" = 5)
- bitesize = 2
-
-/obj/item/food/chocolateegg/populate_reagents()
- . = ..()
- add_to_reagents(/decl/material/liquid/nutriment/coco, 2)
- add_to_reagents(/decl/material/liquid/nutriment/sugar, 2)
-
-/obj/item/food/donut
- name = "donut"
- desc = "Goes great with Robust Coffee."
- icon = 'icons/obj/food/donuts/donut.dmi'
- icon_state = ICON_STATE_WORLD
- filling_color = "#d9c386"
- center_of_mass = @'{"x":19,"y":16}'
- nutriment_desc = list("sweetness", "donut")
- nutriment_amt = 3
- bitesize = 3
- nutriment_type = /decl/material/liquid/nutriment/bread
- var/iced_icon = 'icons/obj/food/donuts/donut_iced.dmi'
-
-/obj/item/food/donut/populate_reagents()
- . = ..()
- if(iced_icon && prob(30) && icon != iced_icon)
- icon = iced_icon
- SetName("frosted [name]")
- add_to_reagents(/decl/material/liquid/nutriment/sprinkles, 2)
-
-/obj/item/food/donut/chaos
- name = "chaos donut"
- desc = "Like life, it never quite tastes the same."
- filling_color = "#ed11e6"
- nutriment_amt = 2
- bitesize = 10
-
-/obj/item/food/donut/chaos/proc/get_random_fillings()
- . = list(
- /decl/material/liquid/nutriment,
- /decl/material/liquid/capsaicin,
- /decl/material/liquid/frostoil,
- /decl/material/liquid/nutriment/sprinkles,
- /decl/material/gas/chlorine,
- /decl/material/liquid/nutriment/coco,
- /decl/material/liquid/nutriment/banana_cream,
- /decl/material/liquid/nutriment/cherryjelly,
- /decl/material/liquid/fuel,
- /decl/material/liquid/regenerator
- )
-
-/obj/item/food/donut/chaos/populate_reagents()
- . = ..()
- add_to_reagents(pick(get_random_fillings()), 3)
-
-/obj/item/food/donut/jelly
- name = "jelly donut"
- desc = "You jelly?"
- icon = 'icons/obj/food/donuts/donut_jelly.dmi'
- iced_icon = 'icons/obj/food/donuts/donut_jelly_iced.dmi'
- filling_color = "#ed1169"
- center_of_mass = @'{"x":16,"y":11}'
- nutriment_amt = 3
- bitesize = 5
- nutriment_type = /decl/material/liquid/nutriment/bread
- var/jelly_type = /decl/material/liquid/nutriment/cherryjelly
-
-/obj/item/food/donut/jelly/populate_reagents()
- . = ..()
- add_to_reagents(jelly_type, 5)
-
//Sol Vendor
-/obj/item/food/lunacake
+/obj/item/food/junk/lunacake
name = "moon cake"
icon_state = "lunacake_wrapped"
desc = "Now with 20% less lawsuit enabling regolith!"
@@ -364,14 +265,14 @@
bitesize = 2
nutriment_type = /decl/material/liquid/nutriment/bread/cake
-/obj/item/food/lunacake/mochicake
+/obj/item/food/junk/lunacake/mochicake
name = "mochi"
icon_state = "mochicake_wrapped"
desc = "A type of rice cake with an extremely soft, glutinous texture."
trash = /obj/item/trash/mochicakewrap
nutriment_desc = list("sweet" = 4, "rice" = 1)
-/obj/item/food/lunacake/mooncake
+/obj/item/food/junk/lunacake/mooncake
name = "dark side moon cake"
icon_state = "mooncake_wrapped"
desc = "Explore the dark side! May contain trace amounts of reconstituted cocoa."
@@ -380,7 +281,7 @@
nutriment_desc = list("sweet" = 4, "chocolate" = 1)
nutriment_type = /decl/material/liquid/nutriment/bread/cake
-/obj/item/food/triton
+/obj/item/food/junk/triton
name = "\improper Tidal Gobs"
icon_state = "tidegobs"
desc = "Contains over 9000% of your daily recommended intake of salt."
@@ -391,7 +292,7 @@
nutriment_amt = 5
bitesize = 2
-/obj/item/food/saturn
+/obj/item/food/junk/saturn
name = "snack rings"
icon_state = "saturno"
desc = "A day ration of salt, styrofoam and possibly sawdust."
@@ -402,7 +303,7 @@
nutriment_amt = 5
bitesize = 2
-/obj/item/food/jupiter
+/obj/item/food/junk/jupiter
name = "probably gelatin"
icon_state = "jupiter"
desc = "Some kind of gel, maybe?"
@@ -413,7 +314,7 @@
nutriment_amt = 5
bitesize = 2
-/obj/item/food/pluto
+/obj/item/food/junk/pluto
name = "nutrient rods"
icon_state = "pluto"
desc = "Baseless tasteless nutrient rods to get you through the day. Now even less rash inducing!"
@@ -424,7 +325,7 @@
nutriment_amt = 5
bitesize = 2
-/obj/item/food/mars
+/obj/item/food/junk/mars
name = "instant potato and eggs"
icon_state = "mars"
desc = "A steaming self-heated bowl of sweet eggs and taters!"
@@ -435,7 +336,7 @@
nutriment_amt = 8
bitesize = 2
-/obj/item/food/venus
+/obj/item/food/junk/venus
name = "hot cakes"
icon_state = "venus"
desc = "Hot takes on hot cakes, a timeless classic now finally fit for human consumption!"
@@ -447,11 +348,11 @@
bitesize = 2
nutriment_type = /decl/material/liquid/nutriment/bread/cake
-/obj/item/food/venus/populate_reagents()
+/obj/item/food/junk/venus/populate_reagents()
. = ..()
add_to_reagents(/decl/material/liquid/capsaicin, 5)
-/obj/item/food/oort
+/obj/item/food/junk/oort
name = "\improper Cloud Rocks"
icon_state = "oort"
desc = "Pop rocks. The new formula guarantees fewer shrapnel induced oral injuries."
@@ -462,13 +363,13 @@
nutriment_amt = 5
bitesize = 2
-/obj/item/food/oort/populate_reagents()
+/obj/item/food/junk/oort/populate_reagents()
. = ..()
add_to_reagents(/decl/material/liquid/frostoil, 5)
//weebo vend! So japanese it hurts
-/obj/item/food/ricecake
+/obj/item/food/junk/ricecake
name = "rice ball"
icon_state = "ricecake"
desc = "A snack food made from balled up rice."
@@ -476,7 +377,7 @@
nutriment_amt = 5
bitesize = 2
-/obj/item/food/pokey
+/obj/item/food/junk/pokey
name = "chocolate coated biscuit sticks"
icon_state = "pokeys"
desc = "A bundle of chocolate coated biscuit sticks. Not as exciting as they seem."
@@ -484,7 +385,7 @@
nutriment_amt = 5
bitesize = 2
-/obj/item/food/weebonuts
+/obj/item/food/junk/weebonuts
name = "spicy nuts"
icon_state = "weebonuts"
trash = /obj/item/trash/weebonuts
@@ -493,11 +394,11 @@
nutriment_amt = 5
bitesize = 2
-/obj/item/food/weebonuts/populate_reagents()
+/obj/item/food/junk/weebonuts/populate_reagents()
. = ..()
add_to_reagents(/decl/material/liquid/capsaicin, 1)
-/obj/item/food/chocobanana
+/obj/item/food/junk/chocobanana
name = "choco banana"
icon_state = "chocobanana"
trash = /obj/item/trash/stick
@@ -506,11 +407,11 @@
nutriment_amt = 5
bitesize = 2
-/obj/item/food/chocobanana/populate_reagents()
+/obj/item/food/junk/chocobanana/populate_reagents()
. = ..()
add_to_reagents(/decl/material/liquid/nutriment/sprinkles, 10)
-/obj/item/food/dango
+/obj/item/food/junk/dango
name = "dango"
icon_state = "dango"
trash = /obj/item/trash/stick
@@ -518,81 +419,3 @@
nutriment_desc = list("rice" = 4, "topping?" = 1)
nutriment_amt = 5
bitesize = 2
-
-/obj/item/food/donkpocket/sinpocket
- name = "\improper Sin-pocket"
- desc = "The food of choice for the veteran. Do NOT overconsume."
- filling_color = "#6d6d00"
- heated_reagents = list(
- /decl/material/liquid/regenerator = 5,
- /decl/material/liquid/amphetamines = 0.75,
- /decl/material/liquid/stimulants = 0.25
- )
- var/has_been_heated = 0 // Unlike the warm var, this checks if the one-time self-heating operation has been used.
-
-/obj/item/food/donkpocket/sinpocket/attack_self(mob/user)
- if(has_been_heated)
- to_chat(user, "The heating chemicals have already been spent.")
- return
- has_been_heated = 1
- user.visible_message("[user] crushes \the [src] package.", "You crush \the [src] package and feel a comfortable heat build up.")
- addtimer(CALLBACK(src, PROC_REF(heat), weakref(user)), 20 SECONDS)
-
-/obj/item/food/donkpocket/sinpocket/heat(weakref/message_to)
- ..()
- if(message_to)
- var/mob/user = message_to.resolve()
- if(user)
- to_chat(user, "You think \the [src] is ready to eat about now.")
-
-/obj/item/food/donkpocket
- name = "cold donk-pocket"
- desc = "The food of choice for the seasoned traitor."
- icon_state = "donkpocket"
- filling_color = "#dedeab"
- center_of_mass = @'{"x":16,"y":10}'
- nutriment_desc = list("heartiness" = 1, "dough" = 2)
- nutriment_amt = 2
- var/warm = 0
- var/list/heated_reagents = list(/decl/material/liquid/regenerator = 5)
-
-/obj/item/food/donkpocket/populate_reagents()
- . = ..()
- add_to_reagents(/decl/material/solid/organic/meat, 2)
-
-/obj/item/food/donkpocket/grill(var/atom/heat_source)
-
- backyard_grilling_rawness--
- if(backyard_grilling_rawness <= 0)
- backyard_grilling_rawness = initial(backyard_grilling_rawness)
-
- // We're already warm, so we burn.
- if(warm)
- var/obj/item/food/badrecipe/whoops = new
- whoops.dropInto(loc)
- visible_message(SPAN_DANGER("\The [src] chars and blackens!"))
- qdel(src)
- return whoops
-
- // Otherwise we just warm up.
- heat()
- visible_message(SPAN_NOTICE("\The [src] steams gently!"))
- return src
-
-/obj/item/food/donkpocket/proc/heat()
- if(warm)
- return
- warm = 1
- for(var/reagent in heated_reagents)
- add_to_reagents(reagent, heated_reagents[reagent])
- bitesize = 6
- SetName("warm donk-pocket")
- addtimer(CALLBACK(src, PROC_REF(cool)), 7 MINUTES)
-
-/obj/item/food/donkpocket/proc/cool()
- if(!warm)
- return
- warm = 0
- for(var/reagent in heated_reagents)
- reagents.clear_reagent(reagent)
- SetName(initial(name))
\ No newline at end of file
diff --git a/code/modules/reagents/reagent_containers/food/lunch.dm b/code/modules/reagents/reagent_containers/food/lunch.dm
index 1c4e8354d64..b027e451e05 100644
--- a/code/modules/reagents/reagent_containers/food/lunch.dm
+++ b/code/modules/reagents/reagent_containers/food/lunch.dm
@@ -7,8 +7,8 @@ var/global/list/lunchables_lunches_ = list(
/obj/item/food/slice/pizza/meat/filled,
/obj/item/food/slice/pizza/mushroom/filled,
/obj/item/food/slice/pizza/vegetable/filled,
- /obj/item/food/tastybread,
- /obj/item/food/liquidfood,
+ /obj/item/food/junk/tastybread,
+ /obj/item/food/junk/liquidfood,
/obj/item/food/jellysandwich/cherry,
/obj/item/food/tossedsalad
)
@@ -17,10 +17,10 @@ var/global/list/lunchables_snacks_ = list(
/obj/item/food/donut/jelly,
/obj/item/food/muffin,
/obj/item/food/popcorn,
- /obj/item/food/sosjerky,
- /obj/item/food/no_raisin,
- /obj/item/food/spacetwinkie,
- /obj/item/food/cheesiehonkers,
+ /obj/item/food/junk/sosjerky,
+ /obj/item/food/junk/no_raisin,
+ /obj/item/food/junk/spacetwinkie,
+ /obj/item/food/junk/cheesiehonkers,
/obj/item/food/poppypretzel,
/obj/item/food/processed_grown/sticks/carrot,
/obj/item/food/candiedapple,
@@ -36,7 +36,6 @@ var/global/list/lunchables_snacks_ = list(
/obj/item/food/slice/lemoncake/filled,
/obj/item/food/slice/chocolatecake/filled,
/obj/item/food/slice/birthdaycake/filled,
- /obj/item/food/watermelonslice,
/obj/item/food/slice/applecake/filled,
/obj/item/food/slice/pumpkinpie/filled
)
diff --git a/code/modules/reagents/reagent_containers/food/meat/fish.dm b/code/modules/reagents/reagent_containers/food/meat/fish.dm
index a5e1b36cdcb..80b15eae9fb 100644
--- a/code/modules/reagents/reagent_containers/food/meat/fish.dm
+++ b/code/modules/reagents/reagent_containers/food/meat/fish.dm
@@ -1,19 +1,19 @@
/obj/item/food/fishfingers
name = "fish fingers"
desc = "A finger of fish."
- icon_state = "fishfingers"
+ icon = 'icons/obj/food/fried/fishfingers.dmi'
filling_color = "#ffdefe"
center_of_mass = @'{"x":16,"y":13}'
bitesize = 3
/obj/item/food/fishfingers/populate_reagents()
. = ..()
- add_to_reagents(/decl/material/solid/organic/meat, 4)
+ add_to_reagents(/decl/material/solid/organic/meat/fish, 4)
/obj/item/food/cubancarp
name = "\improper Cuban Carp"
desc = "A sandwich that burns your tongue and then leaves it numb!"
- icon_state = "cubancarp"
+ icon = 'icons/obj/food/fried/cubancarp.dmi'
plate = /obj/item/plate
filling_color = "#e9adff"
center_of_mass = @'{"x":12,"y":5}'
@@ -23,13 +23,13 @@
/obj/item/food/cubancarp/populate_reagents()
. = ..()
- add_to_reagents(/decl/material/solid/organic/meat, 3)
- add_to_reagents(/decl/material/liquid/capsaicin, 3)
+ add_to_reagents(/decl/material/solid/organic/meat/fish, 3)
+ add_to_reagents(/decl/material/liquid/capsaicin, 3)
/obj/item/food/fishandchips
name = "fish and chips"
desc = "Best enjoyed wrapped in a newspaper on a cold wet day."
- icon_state = "fishandchips"
+ icon = 'icons/obj/food/fried/fishfingers.dmi'
filling_color = "#e3d796"
center_of_mass = @'{"x":16,"y":16}'
nutriment_desc = list("salt" = 1, "chips" = 2, "fish" = 2)
@@ -38,4 +38,4 @@
/obj/item/food/fishandchips/populate_reagents()
. = ..()
- add_to_reagents(/decl/material/solid/organic/meat, 3)
\ No newline at end of file
+ add_to_reagents(/decl/material/solid/organic/meat/fish, 3)
\ No newline at end of file
diff --git a/code/modules/reagents/reagent_containers/food/jerky.dm b/code/modules/reagents/reagent_containers/food/meat/jerky.dm
similarity index 96%
rename from code/modules/reagents/reagent_containers/food/jerky.dm
rename to code/modules/reagents/reagent_containers/food/meat/jerky.dm
index 6a7c87e8d3c..84a33dd09e9 100644
--- a/code/modules/reagents/reagent_containers/food/jerky.dm
+++ b/code/modules/reagents/reagent_containers/food/meat/jerky.dm
@@ -1,6 +1,6 @@
/obj/item/food/jerky
name = "dried meat"
- icon = 'icons/obj/food_jerky.dmi'
+ icon = 'icons/obj/food/butchery/jerky.dmi'
icon_state = "jerky"
bitesize = 2
w_class = ITEM_SIZE_TINY
diff --git a/code/modules/reagents/reagent_containers/food/meat/meat.dm b/code/modules/reagents/reagent_containers/food/meat/meat.dm
index 520715de250..3b42036d351 100644
--- a/code/modules/reagents/reagent_containers/food/meat/meat.dm
+++ b/code/modules/reagents/reagent_containers/food/meat/meat.dm
@@ -5,7 +5,7 @@
/obj/item/food/meatball
name = "meatball"
desc = "A great meal all round."
- icon_state = "meatball"
+ icon = 'icons/obj/food/butchery/meatball.dmi'
filling_color = "#db0000"
center_of_mass = @'{"x":16,"y":16}'
bitesize = 2
@@ -17,8 +17,7 @@
/obj/item/food/meatball/raw
desc = "A raw meatball."
- icon = 'icons/obj/food_ingredients.dmi'
- icon_state = "rawmeatball"
+ icon = 'icons/obj/food/butchery/rawmeatball.dmi'
cooked_food = FOOD_RAW
backyard_grilling_product = /obj/item/food/meatball
backyard_grilling_announcement = "sizzles as it is grilled through."
@@ -26,8 +25,7 @@
/obj/item/food/plainsteak
name = "plain steak"
desc = "A piece of unseasoned cooked meat."
- icon = 'icons/obj/food_ingredients.dmi'
- icon_state = "steak"
+ icon = 'icons/obj/food/butchery/steak.dmi'
slice_path = /obj/item/food/butchery/cutlet
slice_num = 3
filling_color = "#7a3d11"
@@ -49,7 +47,7 @@
/obj/item/food/meatsteak
name = "meat steak"
desc = "A slab of meat, cooked medium-rare."
- icon_state = "meatstake"
+ icon = 'icons/obj/food/butchery/steak.dmi'
plate = /obj/item/plate
filling_color = "#7a3d11"
center_of_mass = @'{"x":16,"y":13}'
@@ -72,7 +70,7 @@
/obj/item/food/loadedsteak
name = "loaded steak"
desc = "A steak slathered in sauce with sauteed onions and mushrooms."
- icon_state = "meatstake"
+ icon = 'icons/obj/food/butchery/steak.dmi' // Missing icon state?
plate = /obj/item/plate
filling_color = "#7a3d11"
center_of_mass = @'{"x":16,"y":13}'
@@ -89,32 +87,18 @@
/obj/item/food/tomatomeat
name = "tomato slice"
desc = "A slice from a huge tomato."
- icon_state = "tomatomeat"
+ icon = 'icons/obj/food/butchery/tomato.dmi'
filling_color = "#db0000"
center_of_mass = @'{"x":17,"y":16}'
nutriment_amt = 3
nutriment_desc = list("raw" = 2, "tomato" = 3)
bitesize = 6
-/obj/item/food/bearmeat
- name = "bear meat"
- desc = "A very manly slab of meat."
- icon_state = "bearmeat"
- filling_color = "#db0000"
- center_of_mass = @'{"x":16,"y":10}'
- bitesize = 3
- material = /decl/material/solid/organic/meat
-
-/obj/item/food/bearmeat/populate_reagents()
- . = ..()
- add_to_reagents(/decl/material/solid/organic/meat, 12)
- add_to_reagents(/decl/material/liquid/amphetamines, 5)
-
// Shouldn't this be poisonous?
/obj/item/food/spider
name = "giant spider leg"
desc = "An economical replacement for crab. In space! Would probably be a lot nicer cooked."
- icon_state = "spiderleg"
+ icon = 'icons/obj/food/butchery/spider_leg.dmi'
filling_color = "#d5f5dc"
center_of_mass = @'{"x":16,"y":10}'
bitesize = 3
@@ -126,7 +110,7 @@
/obj/item/food/spider/populate_reagents()
. = ..()
- add_to_reagents(/decl/material/solid/organic/meat, 9)
+ add_to_reagents(/decl/material/solid/organic/meat/xeno, 9)
/obj/item/food/spider/charred
name = "charred spider meat"
@@ -139,28 +123,13 @@
/obj/item/food/spider/cooked
name = "boiled spider meat"
desc = "An economical replacement for crab. In space!"
- icon_state = "spiderleg_c"
+ icon = 'icons/obj/food/butchery/spider_leg_cooked.dmi'
bitesize = 5
-/obj/item/food/xenomeat
- name = "meat"
- desc = "A slab of green meat. Smells like acid."
- icon_state = "xenomeat"
- filling_color = "#43de18"
- center_of_mass = @'{"x":16,"y":10}'
- bitesize = 6
- material = /decl/material/solid/organic/meat
-
-/obj/item/food/xenomeat/populate_reagents()
- . = ..()
- add_to_reagents(/decl/material/solid/organic/meat, 6)
- add_to_reagents(/decl/material/liquid/acid/polyacid, 6)
-
/obj/item/food/sausage
name = "sausage"
desc = "A piece of mixed, long meat."
- icon = 'icons/obj/food_ingredients.dmi'
- icon_state = "sausage"
+ icon = 'icons/obj/food/butchery/sausage.dmi'
filling_color = "#db0000"
center_of_mass = @'{"x":16,"y":16}'
bitesize = 2
@@ -173,7 +142,7 @@
/obj/item/food/fatsausage
name = "spiced sausage"
desc = "A piece of mixed, long meat, with some bite to it."
- icon_state = "sausage"
+ icon = 'icons/obj/food/butchery/sausage.dmi'
filling_color = "#db0000"
center_of_mass = @'{"x":16,"y":16}'
bitesize = 2
@@ -196,16 +165,3 @@
. = ..()
add_to_reagents(/decl/material/solid/organic/meat, rand(3,5))
add_to_reagents(/decl/material/gas/ammonia, rand(1,3)) // you probably should not be eating raw organ meat
-
-/obj/item/food/meatkabob
- name = "meat-kabob"
- icon_state = "kabob"
- desc = "Delicious meat, on a stick."
- trash = /obj/item/stack/material/rods
- filling_color = "#a85340"
- center_of_mass = @'{"x":17,"y":15}'
- bitesize = 2
-
-/obj/item/food/meatkabob/populate_reagents()
- . = ..()
- add_to_reagents(/decl/material/solid/organic/meat, 8)
diff --git a/code/modules/reagents/reagent_containers/food/misc.dm b/code/modules/reagents/reagent_containers/food/misc.dm
index c06d7dd6b14..2832a32c272 100644
--- a/code/modules/reagents/reagent_containers/food/misc.dm
+++ b/code/modules/reagents/reagent_containers/food/misc.dm
@@ -1,7 +1,7 @@
/obj/item/food/badrecipe
name = "burned mess"
desc = "Someone should be demoted from chef for this."
- icon_state = "badrecipe"
+ icon = 'icons/obj/food/badrecipe.dmi'
filling_color = "#211f02"
center_of_mass = @'{"x":16,"y":12}'
bitesize = 2
@@ -31,7 +31,7 @@
/obj/item/food/stuffing
name = "stuffing"
desc = "Moist, peppery breadcrumbs for filling the body cavities of dead birds. Dig in!"
- icon_state = "stuffing"
+ icon = 'icons/obj/food/baked/stuffing.dmi'
filling_color = "#c9ac83"
center_of_mass = @'{"x":16,"y":10}'
nutriment_amt = 3
@@ -41,7 +41,7 @@
/obj/item/food/popcorn
name = "popcorn"
desc = "Now let's find some cinema."
- icon_state = "popcorn"
+ icon = 'icons/obj/food/baked/popcorn.dmi'
trash = /obj/item/trash/popcorn
filling_color = "#fffad4"
center_of_mass = @'{"x":16,"y":8}'
@@ -52,7 +52,7 @@
/obj/item/food/loadedbakedpotato
name = "loaded baked potato"
desc = "Totally baked."
- icon_state = "loadedbakedpotato"
+ icon = 'icons/obj/food/baked/loaded_potato.dmi'
filling_color = "#9c7a68"
center_of_mass = @'{"x":16,"y":10}'
nutriment_desc = list("baked potato" = 3)
@@ -61,12 +61,12 @@
/obj/item/food/loadedbakedpotato/populate_reagents()
. = ..()
- add_to_reagents(/decl/material/solid/organic/meat, 3)
+ add_to_reagents(/decl/material/liquid/nutriment/cheese, 3)
/obj/item/food/spacylibertyduff
name = "party jelly"
desc = "LoOk aT aLl tHe PrEtTy CoLoUrS"
- icon_state = "spacylibertyduff"
+ icon = 'icons/obj/food/pudding/liberty_duff.dmi'
trash = /obj/item/trash/snack_bowl
filling_color = "#42b873"
center_of_mass = @'{"x":16,"y":8}'
@@ -81,7 +81,7 @@
/obj/item/food/amanitajelly
name = "amanita jelly"
desc = "Looks curiously toxic."
- icon_state = "amanitajelly"
+ icon = 'icons/obj/food/pudding/amanita_jelly.dmi'
trash = /obj/item/trash/snack_bowl
filling_color = "#ed0758"
center_of_mass = @'{"x":16,"y":5}'
@@ -97,7 +97,7 @@
/obj/item/food/enchiladas
name = "enchiladas"
desc = "Not to be confused with an echidna, though I don't know how you would."
- icon_state = "enchiladas"
+ icon = 'icons/obj/food/baked/enchiladas.dmi'
plate = /obj/item/plate/tray
filling_color = "#a36a1f"
center_of_mass = @'{"x":16,"y":13}'
@@ -113,7 +113,7 @@
/obj/item/food/monkeysdelight
name = "monkey's delight"
desc = "Eeee Eee!"
- icon_state = "monkeysdelight"
+ icon = 'icons/obj/food/baked/monkeys_delight.dmi'
plate = /obj/item/plate/tray
filling_color = "#5c3c11"
center_of_mass = @'{"x":16,"y":13}'
@@ -129,7 +129,7 @@
/obj/item/food/candiedapple
name = "candied apple"
desc = "An apple coated in sugary sweetness."
- icon_state = "candiedapple"
+ icon = 'icons/obj/food/candied_apple.dmi'
filling_color = "#f21873"
center_of_mass = @'{"x":15,"y":13}'
nutriment_desc = list("apple" = 3, "caramel" = 3, "sweetness" = 2)
@@ -139,7 +139,7 @@
/obj/item/food/mint
name = "mint"
desc = "A tasty after-dinner mint. It is only wafer thin."
- icon_state = "mint"
+ icon = 'icons/obj/food/mint.dmi'
filling_color = "#f2f2f2"
center_of_mass = @'{"x":16,"y":14}'
bitesize = 1
@@ -151,7 +151,7 @@
/obj/item/food/plumphelmetbiscuit
name = "plump helmet biscuit"
desc = "This is a finely-prepared plump helmet biscuit. The ingredients are exceptionally minced plump helmet, and well-minced wheat flour."
- icon_state = "phelmbiscuit"
+ icon = 'icons/obj/food/baked/scone.dmi'
filling_color = "#cfb4c4"
center_of_mass = @'{"x":16,"y":13}'
nutriment_desc = list("mushroom" = 4)
@@ -169,7 +169,7 @@
/obj/item/food/appletart
name = "golden apple streusel tart"
desc = "A tasty dessert that won't make it through a metal detector."
- icon_state = "gappletart"
+ icon = 'icons/obj/food/baked/apple_tart.dmi'
plate = /obj/item/plate
filling_color = "#ffff00"
center_of_mass = @'{"x":16,"y":18}'
@@ -184,7 +184,7 @@
/obj/item/food/cracker
name = "cracker"
desc = "It's a salted cracker."
- icon = 'icons/obj/food/cracker.dmi'
+ icon = 'icons/obj/food/baked/cracker.dmi'
icon_state = ICON_STATE_WORLD
filling_color = "#f5deb8"
center_of_mass = @'{"x":17,"y":6}'
@@ -200,7 +200,7 @@
/obj/item/food/taco
name = "taco"
desc = "Take a bite!"
- icon_state = "taco"
+ icon = 'icons/obj/food/taco.dmi'
bitesize = 3
center_of_mass = @'{"x":21,"y":12}'
nutriment_desc = list("cheese" = 2,"taco shell" = 2)
@@ -214,7 +214,7 @@
/obj/item/food/pelmen
name = "meat pelmen"
desc = "Raw meat appetizer."
- icon_state = "pelmen"
+ icon = 'icons/obj/food/pelmen.dmi'
filling_color = "#ffffff"
center_of_mass = @'{"x":16,"y":16}'
bitesize = 2
@@ -226,7 +226,7 @@
/obj/item/food/pelmeni_boiled
name = "boiled pelmeni"
desc = "A dish consisting of boiled pieces of meat wrapped in dough. Delicious!"
- icon_state = "pelmeni_boiled"
+ icon = 'icons/obj/food/pelmeni_boiled.dmi'
filling_color = "#ffffff"
center_of_mass = @'{"x":16,"y":16}'
bitesize = 2
diff --git a/code/modules/reagents/reagent_containers/food/pasta.dm b/code/modules/reagents/reagent_containers/food/pasta.dm
index 56505ba5773..b62330fb2e9 100644
--- a/code/modules/reagents/reagent_containers/food/pasta.dm
+++ b/code/modules/reagents/reagent_containers/food/pasta.dm
@@ -5,7 +5,7 @@
/obj/item/food/spagetti
name = "spaghetti"
desc = "A bundle of raw spaghetti."
- icon_state = "spagetti"
+ icon = 'icons/obj/food/pasta/rawspaghetti.dmi'
filling_color = "#eddd00"
center_of_mass = @'{"x":16,"y":16}'
nutriment_desc = list("noodles" = 2)
@@ -15,7 +15,7 @@
/obj/item/food/boiledspagetti
name = "boiled spaghetti"
desc = "A plain dish of pasta, just screaming for sauce."
- icon_state = "spagettiboiled"
+ icon = 'icons/obj/food/pasta/spaghetti.dmi'
plate = /obj/item/plate
filling_color = "#fcee81"
center_of_mass = @'{"x":16,"y":10}'
@@ -26,7 +26,7 @@
/obj/item/food/pastatomato
name = "spaghetti & tomato"
desc = "Spaghetti and crushed tomatoes."
- icon_state = "pastatomato"
+ icon = 'icons/obj/food/pasta/tomato_spaghetti.dmi'
plate = /obj/item/plate
filling_color = "#de4545"
center_of_mass = @'{"x":16,"y":10}'
@@ -41,7 +41,7 @@
/obj/item/food/nanopasta
name = "nanopasta"
desc = "Nanomachines, son!"
- icon_state = "nanopasta"
+ icon = 'icons/obj/food/pasta/nanopasta.dmi'
plate = /obj/item/plate
filling_color = "#535e66"
center_of_mass = @'{"x":16,"y":10}'
@@ -55,13 +55,14 @@
/obj/item/food/meatballspagetti
name = "spaghetti & meatballs"
desc = "Now thats a nice meatball!"
- icon_state = "meatballspagetti"
+ icon = 'icons/obj/food/pasta/meatball_spaghetti.dmi'
plate = /obj/item/plate
filling_color = "#de4545"
center_of_mass = @'{"x":16,"y":10}'
nutriment_desc = list("noodles" = 4)
nutriment_amt = 4
bitesize = 2
+
/obj/item/food/meatballspagetti/populate_reagents()
. = ..()
add_to_reagents(/decl/material/solid/organic/meat, 4)
@@ -69,7 +70,7 @@
/obj/item/food/spesslaw
name = "spaghetti & too many meatballs"
desc = "Do you want some pasta with those meatballs?"
- icon_state = "spesslaw"
+ icon = 'icons/obj/food/pasta/extra_meatball_spaghetti.dmi'
filling_color = "#de4545"
center_of_mass = @'{"x":16,"y":10}'
nutriment_desc = list("noodles" = 4)
diff --git a/code/modules/reagents/reagent_containers/food/rice.dm b/code/modules/reagents/reagent_containers/food/rice.dm
index f94f2c3cd62..d579488a905 100644
--- a/code/modules/reagents/reagent_containers/food/rice.dm
+++ b/code/modules/reagents/reagent_containers/food/rice.dm
@@ -5,7 +5,7 @@
/obj/item/food/boiledrice
name = "boiled rice"
desc = "White rice, a very important staple food. Goes excellent with many many things."
- icon_state = "boiledrice"
+ icon = 'icons/obj/food/rice/boiled.dmi'
trash = /obj/item/trash/snack_bowl
filling_color = "#fffbdb"
center_of_mass = @'{"x":17,"y":11}'
@@ -16,7 +16,7 @@
/obj/item/food/chazuke
name = "chazuke"
desc = "An ancient way of using up day-old rice, this dish is composed of plain green tea poured over plain white rice. Hopefully you have something else to put in."
- icon_state = "chazuke"
+ icon = 'icons/obj/food/rice/chazuke.dmi'
trash = /obj/item/trash/snack_bowl
filling_color = "#f1ffdb"
nutriment_desc = list("green tea" = 2, "mild rice" = 2)
@@ -31,7 +31,7 @@
/obj/item/food/katsucurry
name = "katsu curry"
desc = "An oriental curry dish made from apples, potatoes, and carrots. Served with rice and breaded chicken."
- icon_state = "katsu"
+ icon = 'icons/obj/food/rice/katsu.dmi'
trash = /obj/item/trash/snack_bowl
filling_color = "#faa005"
center_of_mass = @'{"x":17,"y":11}'
@@ -42,7 +42,7 @@
/obj/item/food/ricepudding
name = "rice pudding"
desc = "Where's the jam?"
- icon_state = "rpudding"
+ icon = 'icons/obj/food/rice/pudding.dmi'
trash = /obj/item/trash/snack_bowl
filling_color = "#fffbdb"
center_of_mass = @'{"x":17,"y":11}'
diff --git a/code/modules/reagents/reagent_containers/food/rotten.dm b/code/modules/reagents/reagent_containers/food/rotten.dm
index 7a54ef6470c..22e15e4dea1 100644
--- a/code/modules/reagents/reagent_containers/food/rotten.dm
+++ b/code/modules/reagents/reagent_containers/food/rotten.dm
@@ -23,29 +23,29 @@
/obj/item/food/old/pizza
name = "pizza"
desc = "It's so stale you could probably cut something with the cheese."
- icon_state = "ancient_pizza"
+ icon = 'icons/obj/food/old/pizza.dmi'
/obj/item/food/old/burger
name = "\improper Giga Burger!"
desc = "At some point in time this probably looked delicious."
- icon_state = "ancient_burger"
+ icon = 'icons/obj/food/old/burger.dmi'
/obj/item/food/old/hamburger
name = "\improper Horse Burger!"
desc = "Even if you were hungry enough to eat a horse, it'd be a bad idea to eat this."
- icon_state = "ancient_hburger"
+ icon = 'icons/obj/food/old/hamburger.dmi'
/obj/item/food/old/fries
name = "chips"
desc = "The salt appears to have preserved these, still stale and gross."
- icon_state = "ancient_fries"
+ icon = 'icons/obj/food/old/fries.dmi'
/obj/item/food/old/hotdog
name = "hotdog"
desc = "This is probably only marginally less safe to eat than when it was first created."
- icon_state = "ancient_hotdog"
+ icon = 'icons/obj/food/old/hotdog.dmi'
/obj/item/food/old/taco
name = "taco"
desc = "Interestingly, the shell has gone soft and the contents have gone stale."
- icon_state = "ancient_taco"
\ No newline at end of file
+ icon = 'icons/obj/food/old/taco.dmi'
diff --git a/code/modules/reagents/reagent_containers/food/sandwich.dm b/code/modules/reagents/reagent_containers/food/sandwich.dm
index ef42abb3df0..2209d52ed0a 100644
--- a/code/modules/reagents/reagent_containers/food/sandwich.dm
+++ b/code/modules/reagents/reagent_containers/food/sandwich.dm
@@ -10,7 +10,7 @@
/obj/item/food/csandwich
name = "sandwich"
desc = "The best thing since sliced bread."
- icon_state = "breadslice"
+ icon = 'icons/obj/food/baked/bread/slices/plain.dmi'
plate = /obj/item/plate
bitesize = 2
@@ -30,7 +30,7 @@
if(!user.try_unequip(W, src))
return
to_chat(user, "You hide [W] in \the [src].")
- update()
+ update_icon()
return
else if(istype(W,/obj/item/food))
if(!user.try_unequip(W, src))
@@ -39,16 +39,16 @@
var/obj/item/chems/F = W
F.reagents.trans_to_obj(src, F.reagents.total_volume)
ingredients += W
- update()
+ update_icon()
return
..()
-/obj/item/food/csandwich/proc/update()
+/obj/item/food/csandwich/on_update_icon()
+ . = ..()
+
var/fullname = "" //We need to build this from the contents of the var.
var/i = 0
-
- overlays.Cut()
-
+ var/image/I
for(var/obj/item/food/O in ingredients)
i++
@@ -59,16 +59,17 @@
else
fullname += ", [O.name]"
- var/image/I = new(src.icon, "sandwich_filling")
+ I = image(icon, "[icon_state]_filling")
I.color = O.filling_color
I.pixel_x = pick(list(-1,0,1))
I.pixel_y = (i*2)+1
- overlays += I
+ I.appearance_flags |= RESET_COLOR
+ add_overlay(I)
- var/image/T = new(src.icon, "sandwich_top")
- T.pixel_x = pick(list(-1,0,1))
- T.pixel_y = (ingredients.len * 2)+1
- overlays += T
+ I = image(icon, "[icon_state]_top")
+ I.pixel_x = pick(list(-1,0,1))
+ I.pixel_y = (ingredients.len * 2)+1
+ add_overlay(I)
SetName(lowertext("[fullname] sandwich"))
if(length(name) > 80) SetName("[pick(list("absurd","colossal","enormous","ridiculous"))] sandwich")
diff --git a/code/modules/reagents/reagent_containers/food/skewer.dm b/code/modules/reagents/reagent_containers/food/skewer.dm
new file mode 100644
index 00000000000..1e6c64964f4
--- /dev/null
+++ b/code/modules/reagents/reagent_containers/food/skewer.dm
@@ -0,0 +1,32 @@
+/obj/item/food/skewer
+ abstract_type = /obj/item/food/skewer
+ icon = 'icons/obj/food/butchery/kabob.dmi'
+ trash = /obj/item/stack/material/rods
+ center_of_mass = @'{"x":17,"y":15}'
+ bitesize = 2
+ nutriment_desc = list("tofu" = 3, "metal" = 1)
+ nutriment_amt = 8
+
+/obj/item/food/skewer/on_reagent_change()
+ . = ..()
+ update_icon()
+
+/obj/item/food/skewer/on_update_icon()
+ . = ..()
+ var/decl/material/meat = reagents?.get_primary_reagent_decl()
+ if(meat)
+ add_overlay(overlay_image(icon, "[icon_state]_meat", meat.color, RESET_COLOR))
+
+/obj/item/food/skewer/meat
+ name = "meat skewer"
+ desc = "Delicious meat, on a stick."
+ filling_color = "#a85340"
+ nutriment_type = /decl/material/solid/organic/meat
+
+/obj/item/food/skewer/tofu
+ name = "tofu skewer"
+ icon = 'icons/obj/food/butchery/kabob.dmi'
+ desc = "Vegan meat, on a stick."
+ trash = /obj/item/stack/material/rods
+ filling_color = "#fffee0"
+ center_of_mass = @'{"x":17,"y":15}'
diff --git a/code/modules/reagents/reagent_containers/food/sliceable.dm b/code/modules/reagents/reagent_containers/food/sliceable/_sliceable.dm
similarity index 94%
rename from code/modules/reagents/reagent_containers/food/sliceable.dm
rename to code/modules/reagents/reagent_containers/food/sliceable/_sliceable.dm
index 833ec916719..1e25fdc14ef 100644
--- a/code/modules/reagents/reagent_containers/food/sliceable.dm
+++ b/code/modules/reagents/reagent_containers/food/sliceable/_sliceable.dm
@@ -6,6 +6,7 @@
// sliceable is just an organization type path, it doesn't have any additional code or variables tied to it.
/obj/item/food/sliceable
+ abstract_type = /obj/item/food/sliceable
w_class = ITEM_SIZE_NORMAL //whole pizzas and cakes shouldn't fit in a pocket, you can slice them if you want to do that.
utensil_flags = UTENSIL_FLAG_COLLECT | UTENSIL_FLAG_SLICE
@@ -17,6 +18,7 @@
*/
/obj/item/food/slice
name = "slice of... something"
+ abstract_type = /obj/item/food/slice
var/whole_path // path for the item from which this slice comes
var/filled = FALSE // should the slice spawn with any reagents
diff --git a/code/modules/reagents/reagent_containers/food/sliceable/cakes.dm b/code/modules/reagents/reagent_containers/food/sliceable/cakes.dm
index 2847b711df9..e5088980d8e 100644
--- a/code/modules/reagents/reagent_containers/food/sliceable/cakes.dm
+++ b/code/modules/reagents/reagent_containers/food/sliceable/cakes.dm
@@ -1,7 +1,7 @@
/obj/item/food/sliceable/carrotcake
name = "carrot cake"
desc = "A favorite desert of sophisticated rabbits."
- icon_state = "carrotcake"
+ icon = 'icons/obj/food/baked/cakes/carrot.dmi'
slice_path = /obj/item/food/slice/carrotcake
slice_num = 5
filling_color = "#ffd675"
@@ -18,7 +18,7 @@
/obj/item/food/slice/carrotcake
name = "carrot cake slice"
desc = "Carrotty slice of carrot cake, carrots are good for your eyes! It's true! Probably!"
- icon_state = "carrotcake_slice"
+ icon = 'icons/obj/food/baked/cakes/slices/carrot.dmi'
plate = /obj/item/plate
filling_color = "#ffd675"
bitesize = 2
@@ -31,7 +31,7 @@
/obj/item/food/sliceable/braincake
name = "brain cake"
desc = "A squishy cake-thing."
- icon_state = "braincake"
+ icon = 'icons/obj/food/baked/cakes/brain.dmi'
slice_path = /obj/item/food/slice/braincake
slice_num = 5
filling_color = "#e6aedb"
@@ -49,7 +49,7 @@
/obj/item/food/slice/braincake
name = "brain cake slice"
desc = "Lemme tell you something about prions. THEY'RE DELICIOUS."
- icon_state = "braincakeslice"
+ icon = 'icons/obj/food/baked/cakes/slices/brain.dmi'
plate = /obj/item/plate
filling_color = "#e6aedb"
bitesize = 2
@@ -62,7 +62,7 @@
/obj/item/food/sliceable/cheesecake
name = "cheese cake"
desc = "DANGEROUSLY cheesy."
- icon_state = "cheesecake"
+ icon = 'icons/obj/food/baked/cakes/cheese.dmi'
slice_path = /obj/item/food/slice/cheesecake
slice_num = 5
filling_color = "#faf7af"
@@ -73,12 +73,12 @@
/obj/item/food/sliceable/cheesecake/populate_reagents()
. = ..()
- add_to_reagents(/decl/material/solid/organic/meat, 15)
+ add_to_reagents(/decl/material/liquid/nutriment/cheese, 15)
/obj/item/food/slice/cheesecake
name = "cheese cake slice"
desc = "Slice of pure cheestisfaction."
- icon_state = "cheesecake_slice"
+ icon = 'icons/obj/food/baked/cakes/slices/cheese.dmi'
plate = /obj/item/plate
filling_color = "#faf7af"
bitesize = 2
@@ -91,7 +91,7 @@
/obj/item/food/sliceable/plaincake
name = "vanilla cake"
desc = "A plain cake, but a good cake."
- icon_state = "plaincake"
+ icon = 'icons/obj/food/baked/cakes/plain.dmi'
slice_path = /obj/item/food/slice/plaincake
slice_num = 5
filling_color = "#f7edd5"
@@ -103,7 +103,7 @@
/obj/item/food/slice/plaincake
name = "vanilla cake slice"
desc = "Just a slice of cake, it is enough for everyone."
- icon_state = "plaincake_slice"
+ icon = 'icons/obj/food/baked/cakes/slices/plain.dmi'
plate = /obj/item/plate
filling_color = "#f7edd5"
bitesize = 2
@@ -116,7 +116,7 @@
/obj/item/food/sliceable/orangecake
name = "orange cake"
desc = "A cake with added orange."
- icon_state = "orangecake"
+ icon = 'icons/obj/food/baked/cakes/orange.dmi'
slice_path = /obj/item/food/slice/orangecake
slice_num = 5
filling_color = "#fada8e"
@@ -128,7 +128,7 @@
/obj/item/food/slice/orangecake
name = "orange cake slice"
desc = "Just a slice of cake, it is enough for everyone."
- icon_state = "orangecake_slice"
+ icon = 'icons/obj/food/baked/cakes/slices/orange.dmi'
plate = /obj/item/plate
filling_color = "#fada8e"
bitesize = 2
@@ -141,7 +141,7 @@
/obj/item/food/sliceable/limecake
name = "lime cake"
desc = "A cake with added lime."
- icon_state = "limecake"
+ icon = 'icons/obj/food/baked/cakes/lime.dmi'
slice_path = /obj/item/food/slice/limecake
slice_num = 5
filling_color = "#cbfa8e"
@@ -153,7 +153,7 @@
/obj/item/food/slice/limecake
name = "lime cake slice"
desc = "Just a slice of cake, it is enough for everyone."
- icon_state = "limecake_slice"
+ icon = 'icons/obj/food/baked/cakes/slices/lime.dmi'
plate = /obj/item/plate
filling_color = "#cbfa8e"
bitesize = 2
@@ -166,7 +166,7 @@
/obj/item/food/sliceable/lemoncake
name = "lemon cake"
desc = "A cake with added lemon."
- icon_state = "lemoncake"
+ icon = 'icons/obj/food/baked/cakes/lemon.dmi'
slice_path = /obj/item/food/slice/lemoncake
slice_num = 5
filling_color = "#fafa8e"
@@ -178,7 +178,7 @@
/obj/item/food/slice/lemoncake
name = "lemon cake slice"
desc = "Just a slice of cake, it is enough for everyone."
- icon_state = "lemoncake_slice"
+ icon = 'icons/obj/food/baked/cakes/slices/lemon.dmi'
plate = /obj/item/plate
filling_color = "#fafa8e"
bitesize = 2
@@ -191,7 +191,7 @@
/obj/item/food/sliceable/chocolatecake
name = "chocolate cake"
desc = "A cake with added chocolate."
- icon_state = "chocolatecake"
+ icon = 'icons/obj/food/baked/cakes/chocolate.dmi'
slice_path = /obj/item/food/slice/chocolatecake
slice_num = 5
filling_color = "#805930"
@@ -203,7 +203,7 @@
/obj/item/food/slice/chocolatecake
name = "chocolate cake slice"
desc = "Just a slice of cake, it is enough for everyone."
- icon_state = "chocolatecake_slice"
+ icon = 'icons/obj/food/baked/cakes/slices/chocolate.dmi'
plate = /obj/item/plate
filling_color = "#805930"
bitesize = 2
@@ -216,7 +216,7 @@
/obj/item/food/sliceable/birthdaycake
name = "birthday cake"
desc = "Happy birthday!"
- icon_state = "birthdaycake"
+ icon = 'icons/obj/food/baked/cakes/birthday.dmi'
slice_path = /obj/item/food/slice/birthdaycake
slice_num = 5
filling_color = "#ffd6d6"
@@ -233,7 +233,7 @@
/obj/item/food/slice/birthdaycake
name = "birthday cake slice"
desc = "A slice of your birthday."
- icon_state = "birthdaycakeslice"
+ icon = 'icons/obj/food/baked/cakes/slices/birthday.dmi'
plate = /obj/item/plate
filling_color = "#ffd6d6"
bitesize = 2
@@ -246,7 +246,7 @@
/obj/item/food/sliceable/applecake
name = "apple cake"
desc = "A cake centred with apples."
- icon_state = "applecake"
+ icon = 'icons/obj/food/baked/cakes/apple.dmi'
slice_path = /obj/item/food/slice/applecake
slice_num = 5
filling_color = "#ebf5b8"
@@ -258,7 +258,7 @@
/obj/item/food/slice/applecake
name = "apple cake slice"
desc = "A slice of heavenly cake."
- icon_state = "applecakeslice"
+ icon = 'icons/obj/food/baked/cakes/slices/apple.dmi'
plate = /obj/item/plate
filling_color = "#ebf5b8"
bitesize = 2
@@ -271,7 +271,7 @@
/obj/item/food/sliceable/pumpkinpie
name = "pumpkin pie"
desc = "A delicious treat for the autumn months."
- icon_state = "pumpkinpie"
+ icon = 'icons/obj/food/baked/cakes/pumpkin.dmi'
slice_path = /obj/item/food/slice/pumpkinpie
slice_num = 5
filling_color = "#f5b951"
@@ -282,7 +282,7 @@
/obj/item/food/slice/pumpkinpie
name = "pumpkin pie slice"
desc = "A slice of pumpkin pie, with whipped cream on top. Perfection."
- icon_state = "pumpkinpieslice"
+ icon = 'icons/obj/food/baked/cakes/slices/pumpkin.dmi'
plate = /obj/item/plate
filling_color = "#f5b951"
bitesize = 2
@@ -290,4 +290,4 @@
whole_path = /obj/item/food/sliceable/pumpkinpie
/obj/item/food/slice/pumpkinpie/filled
- filled = TRUE
\ No newline at end of file
+ filled = TRUE
diff --git a/code/modules/reagents/reagent_containers/food/sliceable/loaves.dm b/code/modules/reagents/reagent_containers/food/sliceable/loaves.dm
index 8a033bca73b..5fa0639bbe7 100644
--- a/code/modules/reagents/reagent_containers/food/sliceable/loaves.dm
+++ b/code/modules/reagents/reagent_containers/food/sliceable/loaves.dm
@@ -1,7 +1,7 @@
/obj/item/food/sliceable/meatbread
name = "meatbread loaf"
desc = "The culinary base of every self-respecting eloquent gentleman."
- icon_state = "meatbread"
+ icon = 'icons/obj/food/baked/bread/meat.dmi'
slice_path = /obj/item/food/slice/meatbread
slice_num = 5
filling_color = "#ff7575"
@@ -18,7 +18,7 @@
/obj/item/food/slice/meatbread
name = "meatbread slice"
desc = "A slice of delicious meatbread."
- icon_state = "meatbreadslice"
+ icon = 'icons/obj/food/baked/bread/slices/meat.dmi'
plate = /obj/item/plate
filling_color = "#ff7575"
bitesize = 2
@@ -31,7 +31,7 @@
/obj/item/food/sliceable/xenomeatbread
name = "xenomeatbread loaf"
desc = "The culinary base of every self-respecting eloquent gentleman. Extra heretical."
- icon_state = "xenomeatbread"
+ icon = 'icons/obj/food/baked/bread/xeno.dmi'
slice_path = /obj/item/food/slice/xenomeatbread
slice_num = 5
filling_color = "#8aff75"
@@ -43,12 +43,12 @@
/obj/item/food/sliceable/xenomeatbread/populate_reagents()
. = ..()
- add_to_reagents(/decl/material/solid/organic/meat, 20)
+ add_to_reagents(/decl/material/solid/organic/meat/xeno, 20)
/obj/item/food/slice/xenomeatbread
name = "xenomeatbread slice"
desc = "A slice of delicious meatbread. Extra Heretical."
- icon_state = "xenobreadslice"
+ icon = 'icons/obj/food/baked/bread/slices/xeno.dmi'
plate = /obj/item/plate
filling_color = "#8aff75"
bitesize = 2
@@ -61,7 +61,7 @@
/obj/item/food/sliceable/bananabread
name = "banana-nut bread"
desc = "A heavenly and filling treat."
- icon_state = "bananabread"
+ icon = 'icons/obj/food/baked/bread/banana.dmi'
slice_path = /obj/item/food/slice/bananabread
slice_num = 5
filling_color = "#ede5ad"
@@ -78,7 +78,7 @@
/obj/item/food/slice/bananabread
name = "banana-nut bread slice"
desc = "A slice of delicious banana bread."
- icon_state = "bananabreadslice"
+ icon = 'icons/obj/food/baked/bread/slices/banana.dmi'
plate = /obj/item/plate
filling_color = "#ede5ad"
bitesize = 2
@@ -91,7 +91,7 @@
/obj/item/food/sliceable/tofubread
name = "tofubread"
desc = "Like meatbread but for vegetarians. Not guaranteed to give superpowers."
- icon_state = "tofubread"
+ icon = 'icons/obj/food/baked/bread/tofu.dmi'
slice_path = /obj/item/food/slice/tofubread
slice_num = 5
filling_color = "#f7ffe0"
@@ -104,7 +104,7 @@
/obj/item/food/slice/tofubread
name = "tofubread slice"
desc = "A slice of delicious tofubread."
- icon_state = "tofubreadslice"
+ icon = 'icons/obj/food/baked/bread/slices/tofu.dmi'
plate = /obj/item/plate
filling_color = "#f7ffe0"
bitesize = 2
@@ -117,7 +117,7 @@
/obj/item/food/sliceable/bread
name = "bread"
desc = "Some plain old bread."
- icon_state = "bread"
+ icon = 'icons/obj/food/baked/bread/plain.dmi'
slice_path = /obj/item/food/slice/bread
slice_num = 5
filling_color = "#ffe396"
@@ -130,7 +130,7 @@
/obj/item/food/slice/bread
name = "bread slice"
desc = "A slice of home."
- icon_state = "breadslice"
+ icon = 'icons/obj/food/baked/bread/slices/plain.dmi'
plate = /obj/item/plate
filling_color = "#d27332"
bitesize = 2
@@ -144,7 +144,7 @@
/obj/item/food/sliceable/creamcheesebread
name = "cream cheese bread"
desc = "Yum yum yum!"
- icon_state = "creamcheesebread"
+ icon = 'icons/obj/food/baked/bread/cheese.dmi'
slice_path = /obj/item/food/slice/creamcheesebread
slice_num = 5
filling_color = "#fff896"
@@ -156,12 +156,12 @@
/obj/item/food/sliceable/creamcheesebread/populate_reagents()
. = ..()
- add_to_reagents(/decl/material/solid/organic/meat, 15)
+ add_to_reagents(/decl/material/liquid/nutriment/cheese, 15)
/obj/item/food/slice/creamcheesebread
name = "cream cheese bread slice"
desc = "A slice of yum!"
- icon_state = "creamcheesebreadslice"
+ icon = 'icons/obj/food/baked/bread/slices/cheese.dmi'
plate = /obj/item/plate
filling_color = "#fff896"
bitesize = 2
@@ -169,4 +169,4 @@
whole_path = /obj/item/food/sliceable/creamcheesebread
/obj/item/food/slice/creamcheesebread/filled
- filled = TRUE
\ No newline at end of file
+ filled = TRUE
diff --git a/code/modules/reagents/reagent_containers/food/sliceable/misc_slices.dm b/code/modules/reagents/reagent_containers/food/sliceable/misc_slices.dm
deleted file mode 100644
index 948cbcf7d03..00000000000
--- a/code/modules/reagents/reagent_containers/food/sliceable/misc_slices.dm
+++ /dev/null
@@ -1,7 +0,0 @@
-/obj/item/food/watermelonslice
- name = "watermelon slice"
- desc = "A slice of watery goodness."
- icon_state = "watermelonslice"
- filling_color = "#ff3867"
- bitesize = 2
- center_of_mass = @'{"x":16,"y":10}'
\ No newline at end of file
diff --git a/code/modules/reagents/reagent_containers/food/sliceable/pizza/pizza_margherita.dm b/code/modules/reagents/reagent_containers/food/sliceable/pizza/pizza_margherita.dm
index a5a7b6394cd..2b508bd4f7e 100644
--- a/code/modules/reagents/reagent_containers/food/sliceable/pizza/pizza_margherita.dm
+++ b/code/modules/reagents/reagent_containers/food/sliceable/pizza/pizza_margherita.dm
@@ -6,7 +6,7 @@
/obj/item/food/sliceable/pizza/margherita/populate_reagents()
. = ..()
- add_to_reagents(/decl/material/solid/organic/meat, 5)
+ add_to_reagents(/decl/material/liquid/nutriment/cheese, 5)
add_to_reagents(/decl/material/liquid/drink/juice/tomato, 6)
/obj/item/food/slice/pizza/margherita
diff --git a/code/modules/reagents/reagent_containers/food/sliceable/pizza/pizza_vegetable.dm b/code/modules/reagents/reagent_containers/food/sliceable/pizza/pizza_vegetable.dm
index 6d703b9dabb..f2003f94b10 100644
--- a/code/modules/reagents/reagent_containers/food/sliceable/pizza/pizza_vegetable.dm
+++ b/code/modules/reagents/reagent_containers/food/sliceable/pizza/pizza_vegetable.dm
@@ -7,9 +7,9 @@
/obj/item/food/sliceable/pizza/vegetablepizza/populate_reagents()
. = ..()
- add_to_reagents(/decl/material/solid/organic/meat, 5)
- add_to_reagents(/decl/material/liquid/nutriment/ketchup, 6)
- add_to_reagents(/decl/material/liquid/eyedrops, 12)
+ add_to_reagents(/decl/material/liquid/nutriment/cheese, 5)
+ add_to_reagents(/decl/material/liquid/nutriment/ketchup, 6)
+ add_to_reagents(/decl/material/liquid/eyedrops, 12)
/obj/item/food/slice/pizza/vegetable
name = "vegetable pizza slice"
diff --git a/code/modules/reagents/reagent_containers/food/soup.dm b/code/modules/reagents/reagent_containers/food/soup.dm
index 6933200bd49..9eb37dbee7a 100644
--- a/code/modules/reagents/reagent_containers/food/soup.dm
+++ b/code/modules/reagents/reagent_containers/food/soup.dm
@@ -5,6 +5,7 @@
/obj/item/food/meatballsoup
name = "meatball soup"
desc = "You've got balls kid, BALLS!"
+ icon = 'icons/obj/food/soups/soup.dmi'
icon_state = "meatballsoup"
trash = /obj/item/trash/snack_bowl
filling_color = "#785210"
@@ -20,6 +21,7 @@
/obj/item/food/bloodsoup
name = "tomato soup"
desc = "Smells like copper."
+ icon = 'icons/obj/food/soups/soup.dmi'
icon_state = "tomatosoup"
filling_color = "#ff0000"
center_of_mass = @'{"x":16,"y":7}'
@@ -36,6 +38,7 @@
/obj/item/food/clownstears
name = "clown's tears"
desc = "Not very funny."
+ icon = 'icons/obj/food/soups/soup.dmi'
icon_state = "clownstears"
filling_color = "#c4fbff"
center_of_mass = @'{"x":16,"y":7}'
@@ -52,6 +55,7 @@
/obj/item/food/vegetablesoup
name = "veggie soup"
desc = "A highly nutritious blend of vegetative goodness. Guaranteed to leave you with a, er, \"souped-up\" sense of wellbeing."
+ icon = 'icons/obj/food/soups/soup.dmi'
icon_state = "vegetablesoup"
trash = /obj/item/trash/snack_bowl
filling_color = "#afc4b5"
@@ -69,6 +73,7 @@
/obj/item/food/nettlesoup
name = "nettle soup"
desc = "A mean, green, calorically lean dish derived from a poisonous plant. It has a rather acidic bite to its taste."
+ icon = 'icons/obj/food/soups/soup.dmi'
icon_state = "nettlesoup"
trash = /obj/item/trash/snack_bowl
filling_color = "#afc4b5"
@@ -87,6 +92,7 @@
/obj/item/food/mysterysoup
name = "mystery soup"
desc = "The mystery is, why aren't you eating it?"
+ icon = 'icons/obj/food/soups/soup.dmi'
icon_state = "mysterysoup"
trash = /obj/item/trash/snack_bowl
filling_color = "#f082ff"
@@ -150,6 +156,7 @@
/obj/item/food/wishsoup
name = "wish soup"
desc = "I wish this was soup."
+ icon = 'icons/obj/food/soups/soup.dmi'
icon_state = "wishsoup"
trash = /obj/item/trash/snack_bowl
filling_color = "#d1f4ff"
@@ -168,6 +175,7 @@
/obj/item/food/hotchili
name = "hot chili"
desc = "Sound the fire alarm!"
+ icon = 'icons/obj/food/soups/soup.dmi'
icon_state = "hotchili"
trash = /obj/item/trash/snack_bowl
filling_color = "#ff3c00"
@@ -185,6 +193,7 @@
/obj/item/food/coldchili
name = "cold chili"
desc = "This slush is barely a liquid!"
+ icon = 'icons/obj/food/soups/soup.dmi'
icon_state = "coldchili"
filling_color = "#2b00ff"
center_of_mass = @'{"x":15,"y":9}'
@@ -202,6 +211,7 @@
/obj/item/food/tomatosoup
name = "tomato soup"
desc = "Drinking this feels like being a vampire! A tomato vampire..."
+ icon = 'icons/obj/food/soups/soup.dmi'
icon_state = "tomatosoup"
trash = /obj/item/trash/snack_bowl
filling_color = "#d92929"
@@ -219,6 +229,7 @@
/obj/item/food/stew
name = "stewpot"
desc = "A nice and warm stew. Healthy and strong."
+ icon = 'icons/obj/food/soups/soup.dmi'
icon_state = "stew"
filling_color = "#9e673a"
center_of_mass = @'{"x":16,"y":5}'
@@ -236,6 +247,7 @@
/obj/item/food/milosoup
name = "milosoup"
desc = "The universes best soup! Yum!!!"
+ icon = 'icons/obj/food/soups/soup.dmi'
icon_state = "milosoup"
trash = /obj/item/trash/snack_bowl
center_of_mass = @'{"x":16,"y":7}'
@@ -252,6 +264,7 @@
/obj/item/food/mushroomsoup
name = "chantrelle soup"
desc = "A delicious and hearty mushroom soup."
+ icon = 'icons/obj/food/soups/soup.dmi'
icon_state = "mushroomsoup"
trash = /obj/item/trash/snack_bowl
filling_color = "#e386bf"
@@ -265,6 +278,7 @@
/obj/item/food/beetsoup
name = "beet soup"
desc = "Wait, how do you spell it again...?"
+ icon = 'icons/obj/food/soups/soup.dmi'
icon_state = "beetsoup"
trash = /obj/item/trash/snack_bowl
filling_color = "#fac9ff"
@@ -277,4 +291,4 @@
/obj/item/food/beetsoup/populate_reagents()
. = ..()
- SetName(pick(list("borsch","bortsch","borstch","borsh","borshch","borscht")))
\ No newline at end of file
+ SetName(pick(list("borsch","bortsch","borstch","borsh","borshch","borscht")))
diff --git a/code/modules/reagents/reagent_containers/food/soy.dm b/code/modules/reagents/reagent_containers/food/soy.dm
index ec07346136f..5f2f548b0c0 100644
--- a/code/modules/reagents/reagent_containers/food/soy.dm
+++ b/code/modules/reagents/reagent_containers/food/soy.dm
@@ -1,6 +1,6 @@
/obj/item/food/tofu
name = "tofu"
- icon_state = "tofu"
+ icon = 'icons/obj/food/tofu/tofu.dmi'
desc = "We all love tofu."
filling_color = "#fffee0"
center_of_mass = @'{"x":17,"y":10}'
@@ -12,21 +12,10 @@
. = ..()
add_to_reagents(/decl/material/liquid/nutriment/plant_protein, 6)
-/obj/item/food/tofukabob
- name = "tofu-kabob"
- icon_state = "kabob"
- desc = "Vegan meat, on a stick."
- trash = /obj/item/stack/material/rods
- filling_color = "#fffee0"
- center_of_mass = @'{"x":17,"y":15}'
- nutriment_desc = list("tofu" = 3, "metal" = 1)
- nutriment_amt = 8
- bitesize = 2
-
/obj/item/food/tofurkey
name = "\improper Tofurkey"
desc = "A fake turkey made from tofu."
- icon_state = "tofurkey"
+ icon = 'icons/obj/food/tofu/tofurkey.dmi'
filling_color = "#fffee0"
center_of_mass = @'{"x":16,"y":8}'
nutriment_amt = 12
@@ -36,9 +25,9 @@
/obj/item/food/stewedsoymeat
name = "stewed soy meat"
desc = "Even non-vegetarians will LOVE this!"
- icon_state = "stewedsoymeat"
+ icon = 'icons/obj/food/tofu/soymeat.dmi'
plate = /obj/item/plate
center_of_mass = @'{"x":16,"y":10}'
nutriment_desc = list("soy" = 4, "tomato" = 4)
nutriment_amt = 8
- bitesize = 2
\ No newline at end of file
+ bitesize = 2
diff --git a/code/modules/reagents/reagent_containers/food/veggie.dm b/code/modules/reagents/reagent_containers/food/veggie.dm
index 230df54fb9e..efb2c56aa1c 100644
--- a/code/modules/reagents/reagent_containers/food/veggie.dm
+++ b/code/modules/reagents/reagent_containers/food/veggie.dm
@@ -5,6 +5,7 @@
/obj/item/food/aesirsalad
name = "\improper Aether salad"
desc = "Probably too incredible for mortal men to fully enjoy."
+ icon = 'icons/obj/food/salads/salad.dmi'
icon_state = "aesirsalad"
trash = /obj/item/trash/snack_bowl
filling_color = "#468c00"
@@ -20,6 +21,7 @@
/obj/item/food/tossedsalad
name = "tossed salad"
desc = "A proper salad, basic and simple, with little bits of carrot, tomato and apple intermingled. Vegan!"
+ icon = 'icons/obj/food/salads/salad.dmi'
icon_state = "herbsalad"
trash = /obj/item/trash/snack_bowl
filling_color = "#76b87f"
@@ -31,6 +33,7 @@
/obj/item/food/validsalad
name = "valid salad"
desc = "It's just a salad of questionable 'herbs' with meatballs and fried potato slices. Nothing suspicious about it."
+ icon = 'icons/obj/food/salads/salad.dmi'
icon_state = "validsalad"
trash = /obj/item/trash/snack_bowl
filling_color = "#76b87f"
@@ -46,7 +49,7 @@
/obj/item/food/hugemushroomslice
name = "huge mushroom slice"
desc = "A slice from a huge mushroom."
- icon_state = "hugemushroomslice"
+ icon = 'icons/obj/food/butchery/mushroom.dmi'
filling_color = "#e0d7c5"
center_of_mass = @'{"x":17,"y":16}'
nutriment_amt = 3
@@ -55,4 +58,4 @@
/obj/item/food/hugemushroomslice/populate_reagents()
. = ..()
- add_to_reagents(/decl/material/liquid/psychotropics, 3)
\ No newline at end of file
+ add_to_reagents(/decl/material/liquid/psychotropics, 3)
diff --git a/code/unit_tests/icon_tests.dm b/code/unit_tests/icon_tests.dm
index 04875cd4d2c..48ca9b96915 100644
--- a/code/unit_tests/icon_tests.dm
+++ b/code/unit_tests/icon_tests.dm
@@ -2,6 +2,50 @@
name = "ICON STATE template"
template = /datum/unit_test/icon_test
+/datum/unit_test/icon_test/food_shall_have_icon_states
+ name = "ICON STATE - Food And Drink Subtypes Shall Have Icon States"
+ var/list/check_types = list(
+ /obj/item/chems/condiment,
+ /obj/item/chems/drinks,
+ /obj/item/food
+ )
+ var/list/skip_types = list()
+
+/datum/unit_test/icon_test/food_shall_have_icon_states/start_test()
+
+ skip_types |= typesof(/obj/item/food/grown)
+ skip_types |= typesof(/obj/item/food/processed_grown)
+
+ var/list/failures = list()
+ for(var/check_type in check_types)
+ for(var/check_subtype in typesof(check_type))
+ var/obj/item/thing = check_subtype
+ if(TYPE_IS_ABSTRACT(thing))
+ continue
+ var/skip = FALSE
+ for(var/skip_type in skip_types)
+ if(ispath(check_subtype, skip_type))
+ skip = TRUE
+ break
+ if(skip)
+ continue
+ thing = atom_info_repository.get_instance_of(thing)
+ if(!istype(thing) || QDELETED(thing))
+ failures += "invalid instance ([check_subtype])"
+ else
+ if(!thing.icon)
+ failures += "null icon ([check_subtype])"
+ if(!istext(thing.icon_state))
+ failures += "null or invalid icon_state ([check_subtype])"
+ else if(!check_state_in_icon(thing.icon_state, thing.icon))
+ failures += "missing icon state '[thing.icon_state]' in icon '[thing.icon]' ([check_subtype])"
+
+ if(length(failures))
+ fail("Food subtypes had missing icons or icon states:\n[jointext(failures, "\n")].")
+ else
+ pass("All food subtypes had valid icon states.")
+ return 1
+
/datum/unit_test/icon_test/turfs_shall_have_icon_states
name = "ICON STATE - Turf Subtypes Shall Have Icon States"
var/list/except_types = list(
diff --git a/icons/obj/drinks.dmi b/icons/obj/drinks.dmi
index 85c21b66c7f..76c1ea06d8d 100644
Binary files a/icons/obj/drinks.dmi and b/icons/obj/drinks.dmi differ
diff --git a/icons/obj/food.dmi b/icons/obj/food.dmi
deleted file mode 100644
index 5d131998a8f..00000000000
Binary files a/icons/obj/food.dmi and /dev/null differ
diff --git a/icons/obj/food/badrecipe.dmi b/icons/obj/food/badrecipe.dmi
new file mode 100644
index 00000000000..070bc5c2ec8
Binary files /dev/null and b/icons/obj/food/badrecipe.dmi differ
diff --git a/icons/obj/food/baked/apple_tart.dmi b/icons/obj/food/baked/apple_tart.dmi
new file mode 100644
index 00000000000..3254553e0d4
Binary files /dev/null and b/icons/obj/food/baked/apple_tart.dmi differ
diff --git a/icons/obj/food/baked/baguette.dmi b/icons/obj/food/baked/baguette.dmi
new file mode 100644
index 00000000000..8a2009fd6e6
Binary files /dev/null and b/icons/obj/food/baked/baguette.dmi differ
diff --git a/icons/obj/food/baked/bread/banana.dmi b/icons/obj/food/baked/bread/banana.dmi
new file mode 100644
index 00000000000..32de7f1cc99
Binary files /dev/null and b/icons/obj/food/baked/bread/banana.dmi differ
diff --git a/icons/obj/food/baked/bread/cheese.dmi b/icons/obj/food/baked/bread/cheese.dmi
new file mode 100644
index 00000000000..630380ed530
Binary files /dev/null and b/icons/obj/food/baked/bread/cheese.dmi differ
diff --git a/icons/obj/food/baked/bread/meat.dmi b/icons/obj/food/baked/bread/meat.dmi
new file mode 100644
index 00000000000..3d300deaf4a
Binary files /dev/null and b/icons/obj/food/baked/bread/meat.dmi differ
diff --git a/icons/obj/food/baked/bread/plain.dmi b/icons/obj/food/baked/bread/plain.dmi
new file mode 100644
index 00000000000..3e817b10696
Binary files /dev/null and b/icons/obj/food/baked/bread/plain.dmi differ
diff --git a/icons/obj/food/baked/bread/slices/banana.dmi b/icons/obj/food/baked/bread/slices/banana.dmi
new file mode 100644
index 00000000000..f3e33b2d8c5
Binary files /dev/null and b/icons/obj/food/baked/bread/slices/banana.dmi differ
diff --git a/icons/obj/food/baked/bread/slices/cheese.dmi b/icons/obj/food/baked/bread/slices/cheese.dmi
new file mode 100644
index 00000000000..29e42222399
Binary files /dev/null and b/icons/obj/food/baked/bread/slices/cheese.dmi differ
diff --git a/icons/obj/food/baked/bread/slices/meat.dmi b/icons/obj/food/baked/bread/slices/meat.dmi
new file mode 100644
index 00000000000..58ff769ab30
Binary files /dev/null and b/icons/obj/food/baked/bread/slices/meat.dmi differ
diff --git a/icons/obj/food/baked/bread/slices/plain.dmi b/icons/obj/food/baked/bread/slices/plain.dmi
new file mode 100644
index 00000000000..d4fff48d99e
Binary files /dev/null and b/icons/obj/food/baked/bread/slices/plain.dmi differ
diff --git a/icons/obj/food/baked/bread/slices/tofu.dmi b/icons/obj/food/baked/bread/slices/tofu.dmi
new file mode 100644
index 00000000000..fa0f150723e
Binary files /dev/null and b/icons/obj/food/baked/bread/slices/tofu.dmi differ
diff --git a/icons/obj/food/baked/bread/slices/xeno.dmi b/icons/obj/food/baked/bread/slices/xeno.dmi
new file mode 100644
index 00000000000..04a30959d8c
Binary files /dev/null and b/icons/obj/food/baked/bread/slices/xeno.dmi differ
diff --git a/icons/obj/food/baked/bread/tofu.dmi b/icons/obj/food/baked/bread/tofu.dmi
new file mode 100644
index 00000000000..a6074eb0b09
Binary files /dev/null and b/icons/obj/food/baked/bread/tofu.dmi differ
diff --git a/icons/obj/food/baked/bread/xeno.dmi b/icons/obj/food/baked/bread/xeno.dmi
new file mode 100644
index 00000000000..eb1296c07c4
Binary files /dev/null and b/icons/obj/food/baked/bread/xeno.dmi differ
diff --git a/icons/obj/food/baked/bun.dmi b/icons/obj/food/baked/bun.dmi
new file mode 100644
index 00000000000..4cb8cff5b42
Binary files /dev/null and b/icons/obj/food/baked/bun.dmi differ
diff --git a/icons/obj/food/baked/bunbun.dmi b/icons/obj/food/baked/bunbun.dmi
new file mode 100644
index 00000000000..1fcaf2bd10c
Binary files /dev/null and b/icons/obj/food/baked/bunbun.dmi differ
diff --git a/icons/obj/food/baked/cakes/apple.dmi b/icons/obj/food/baked/cakes/apple.dmi
new file mode 100644
index 00000000000..715460ea8ce
Binary files /dev/null and b/icons/obj/food/baked/cakes/apple.dmi differ
diff --git a/icons/obj/food/baked/cakes/birthday.dmi b/icons/obj/food/baked/cakes/birthday.dmi
new file mode 100644
index 00000000000..b6bd69b1b31
Binary files /dev/null and b/icons/obj/food/baked/cakes/birthday.dmi differ
diff --git a/icons/obj/food/baked/cakes/brain.dmi b/icons/obj/food/baked/cakes/brain.dmi
new file mode 100644
index 00000000000..744c88d734b
Binary files /dev/null and b/icons/obj/food/baked/cakes/brain.dmi differ
diff --git a/icons/obj/food/baked/cakes/carrot.dmi b/icons/obj/food/baked/cakes/carrot.dmi
new file mode 100644
index 00000000000..4dbdf8af636
Binary files /dev/null and b/icons/obj/food/baked/cakes/carrot.dmi differ
diff --git a/icons/obj/food/baked/cakes/cheese.dmi b/icons/obj/food/baked/cakes/cheese.dmi
new file mode 100644
index 00000000000..8328107e88d
Binary files /dev/null and b/icons/obj/food/baked/cakes/cheese.dmi differ
diff --git a/icons/obj/food/baked/cakes/chocolate.dmi b/icons/obj/food/baked/cakes/chocolate.dmi
new file mode 100644
index 00000000000..7fc2f0710a6
Binary files /dev/null and b/icons/obj/food/baked/cakes/chocolate.dmi differ
diff --git a/icons/obj/food/baked/cakes/lemon.dmi b/icons/obj/food/baked/cakes/lemon.dmi
new file mode 100644
index 00000000000..7ff9fb0b179
Binary files /dev/null and b/icons/obj/food/baked/cakes/lemon.dmi differ
diff --git a/icons/obj/food/baked/cakes/lime.dmi b/icons/obj/food/baked/cakes/lime.dmi
new file mode 100644
index 00000000000..adc49fa8b0c
Binary files /dev/null and b/icons/obj/food/baked/cakes/lime.dmi differ
diff --git a/icons/obj/food/baked/cakes/orange.dmi b/icons/obj/food/baked/cakes/orange.dmi
new file mode 100644
index 00000000000..5b2aabe87d6
Binary files /dev/null and b/icons/obj/food/baked/cakes/orange.dmi differ
diff --git a/icons/obj/food/baked/cakes/plain.dmi b/icons/obj/food/baked/cakes/plain.dmi
new file mode 100644
index 00000000000..31d38011dbd
Binary files /dev/null and b/icons/obj/food/baked/cakes/plain.dmi differ
diff --git a/icons/obj/food/baked/cakes/pumpkin.dmi b/icons/obj/food/baked/cakes/pumpkin.dmi
new file mode 100644
index 00000000000..4d10a39c07e
Binary files /dev/null and b/icons/obj/food/baked/cakes/pumpkin.dmi differ
diff --git a/icons/obj/food/baked/cakes/slices/apple.dmi b/icons/obj/food/baked/cakes/slices/apple.dmi
new file mode 100644
index 00000000000..554b44f6fe0
Binary files /dev/null and b/icons/obj/food/baked/cakes/slices/apple.dmi differ
diff --git a/icons/obj/food/baked/cakes/slices/birthday.dmi b/icons/obj/food/baked/cakes/slices/birthday.dmi
new file mode 100644
index 00000000000..25cfd6f267e
Binary files /dev/null and b/icons/obj/food/baked/cakes/slices/birthday.dmi differ
diff --git a/icons/obj/food/baked/cakes/slices/brain.dmi b/icons/obj/food/baked/cakes/slices/brain.dmi
new file mode 100644
index 00000000000..8accc514184
Binary files /dev/null and b/icons/obj/food/baked/cakes/slices/brain.dmi differ
diff --git a/icons/obj/food/baked/cakes/slices/carrot.dmi b/icons/obj/food/baked/cakes/slices/carrot.dmi
new file mode 100644
index 00000000000..4712fb9c67b
Binary files /dev/null and b/icons/obj/food/baked/cakes/slices/carrot.dmi differ
diff --git a/icons/obj/food/baked/cakes/slices/cheese.dmi b/icons/obj/food/baked/cakes/slices/cheese.dmi
new file mode 100644
index 00000000000..8d1d1fe9cce
Binary files /dev/null and b/icons/obj/food/baked/cakes/slices/cheese.dmi differ
diff --git a/icons/obj/food/baked/cakes/slices/chocolate.dmi b/icons/obj/food/baked/cakes/slices/chocolate.dmi
new file mode 100644
index 00000000000..f9010f1ec4f
Binary files /dev/null and b/icons/obj/food/baked/cakes/slices/chocolate.dmi differ
diff --git a/icons/obj/food/baked/cakes/slices/lemon.dmi b/icons/obj/food/baked/cakes/slices/lemon.dmi
new file mode 100644
index 00000000000..fb2e1c646ee
Binary files /dev/null and b/icons/obj/food/baked/cakes/slices/lemon.dmi differ
diff --git a/icons/obj/food/baked/cakes/slices/lime.dmi b/icons/obj/food/baked/cakes/slices/lime.dmi
new file mode 100644
index 00000000000..a86cf3fe6df
Binary files /dev/null and b/icons/obj/food/baked/cakes/slices/lime.dmi differ
diff --git a/icons/obj/food/baked/cakes/slices/orange.dmi b/icons/obj/food/baked/cakes/slices/orange.dmi
new file mode 100644
index 00000000000..aed03a9ef90
Binary files /dev/null and b/icons/obj/food/baked/cakes/slices/orange.dmi differ
diff --git a/icons/obj/food/baked/cakes/slices/plain.dmi b/icons/obj/food/baked/cakes/slices/plain.dmi
new file mode 100644
index 00000000000..a1c2011a606
Binary files /dev/null and b/icons/obj/food/baked/cakes/slices/plain.dmi differ
diff --git a/icons/obj/food/baked/cakes/slices/pumpkin.dmi b/icons/obj/food/baked/cakes/slices/pumpkin.dmi
new file mode 100644
index 00000000000..140c72d9dde
Binary files /dev/null and b/icons/obj/food/baked/cakes/slices/pumpkin.dmi differ
diff --git a/icons/obj/food/baked/cookie.dmi b/icons/obj/food/baked/cookie.dmi
new file mode 100644
index 00000000000..6e04007a758
Binary files /dev/null and b/icons/obj/food/baked/cookie.dmi differ
diff --git a/icons/obj/food/cracker.dmi b/icons/obj/food/baked/cracker.dmi
similarity index 100%
rename from icons/obj/food/cracker.dmi
rename to icons/obj/food/baked/cracker.dmi
diff --git a/icons/obj/food/baked/dough.dmi b/icons/obj/food/baked/dough.dmi
new file mode 100644
index 00000000000..8ac145ee5d3
Binary files /dev/null and b/icons/obj/food/baked/dough.dmi differ
diff --git a/icons/obj/food/baked/eggplant_parmigiana.dmi b/icons/obj/food/baked/eggplant_parmigiana.dmi
new file mode 100644
index 00000000000..a078a5e22aa
Binary files /dev/null and b/icons/obj/food/baked/eggplant_parmigiana.dmi differ
diff --git a/icons/obj/food/baked/enchiladas.dmi b/icons/obj/food/baked/enchiladas.dmi
new file mode 100644
index 00000000000..17b74036efe
Binary files /dev/null and b/icons/obj/food/baked/enchiladas.dmi differ
diff --git a/icons/obj/food/baked/flatbread.dmi b/icons/obj/food/baked/flatbread.dmi
new file mode 100644
index 00000000000..fdcc4c15b24
Binary files /dev/null and b/icons/obj/food/baked/flatbread.dmi differ
diff --git a/icons/obj/food/baked/flattened_dough.dmi b/icons/obj/food/baked/flattened_dough.dmi
new file mode 100644
index 00000000000..569426ae7ae
Binary files /dev/null and b/icons/obj/food/baked/flattened_dough.dmi differ
diff --git a/icons/obj/food/baked/fortune_cookie.dmi b/icons/obj/food/baked/fortune_cookie.dmi
new file mode 100644
index 00000000000..d45d0dec178
Binary files /dev/null and b/icons/obj/food/baked/fortune_cookie.dmi differ
diff --git a/icons/obj/food/baked/jellysandwich.dmi b/icons/obj/food/baked/jellysandwich.dmi
new file mode 100644
index 00000000000..ddb56eb2312
Binary files /dev/null and b/icons/obj/food/baked/jellysandwich.dmi differ
diff --git a/icons/obj/food/baked/jellytoast.dmi b/icons/obj/food/baked/jellytoast.dmi
new file mode 100644
index 00000000000..6141ec7da6f
Binary files /dev/null and b/icons/obj/food/baked/jellytoast.dmi differ
diff --git a/icons/obj/food/baked/loaded_potato.dmi b/icons/obj/food/baked/loaded_potato.dmi
new file mode 100644
index 00000000000..bfcdf4f35d7
Binary files /dev/null and b/icons/obj/food/baked/loaded_potato.dmi differ
diff --git a/icons/obj/food/baked/monkeys_delight.dmi b/icons/obj/food/baked/monkeys_delight.dmi
new file mode 100644
index 00000000000..a1c6a633ddf
Binary files /dev/null and b/icons/obj/food/baked/monkeys_delight.dmi differ
diff --git a/icons/obj/food/baked/muffin.dmi b/icons/obj/food/baked/muffin.dmi
new file mode 100644
index 00000000000..f4b0ea381bf
Binary files /dev/null and b/icons/obj/food/baked/muffin.dmi differ
diff --git a/icons/obj/food/baked/pies/amanita.dmi b/icons/obj/food/baked/pies/amanita.dmi
new file mode 100644
index 00000000000..d0350ca3c07
Binary files /dev/null and b/icons/obj/food/baked/pies/amanita.dmi differ
diff --git a/icons/obj/food/baked/pies/apple.dmi b/icons/obj/food/baked/pies/apple.dmi
new file mode 100644
index 00000000000..a2d2499eb1d
Binary files /dev/null and b/icons/obj/food/baked/pies/apple.dmi differ
diff --git a/icons/obj/food/baked/pies/berry.dmi b/icons/obj/food/baked/pies/berry.dmi
new file mode 100644
index 00000000000..fee3dcbff79
Binary files /dev/null and b/icons/obj/food/baked/pies/berry.dmi differ
diff --git a/icons/obj/food/baked/pies/cherry.dmi b/icons/obj/food/baked/pies/cherry.dmi
new file mode 100644
index 00000000000..d3a1cdfbb27
Binary files /dev/null and b/icons/obj/food/baked/pies/cherry.dmi differ
diff --git a/icons/obj/food/baked/pies/meat.dmi b/icons/obj/food/baked/pies/meat.dmi
new file mode 100644
index 00000000000..ad78c18cf84
Binary files /dev/null and b/icons/obj/food/baked/pies/meat.dmi differ
diff --git a/icons/obj/food/baked/pies/pie.dmi b/icons/obj/food/baked/pies/pie.dmi
new file mode 100644
index 00000000000..70dca891ff6
Binary files /dev/null and b/icons/obj/food/baked/pies/pie.dmi differ
diff --git a/icons/obj/food/baked/pies/plumphelmet.dmi b/icons/obj/food/baked/pies/plumphelmet.dmi
new file mode 100644
index 00000000000..292e45da74f
Binary files /dev/null and b/icons/obj/food/baked/pies/plumphelmet.dmi differ
diff --git a/icons/obj/food/baked/pies/xeno.dmi b/icons/obj/food/baked/pies/xeno.dmi
new file mode 100644
index 00000000000..4cc0ee3434a
Binary files /dev/null and b/icons/obj/food/baked/pies/xeno.dmi differ
diff --git a/icons/obj/food/baked/popcorn.dmi b/icons/obj/food/baked/popcorn.dmi
new file mode 100644
index 00000000000..5d355b09dce
Binary files /dev/null and b/icons/obj/food/baked/popcorn.dmi differ
diff --git a/icons/obj/food/baked/pretzel.dmi b/icons/obj/food/baked/pretzel.dmi
new file mode 100644
index 00000000000..b2953a5639c
Binary files /dev/null and b/icons/obj/food/baked/pretzel.dmi differ
diff --git a/icons/obj/food/baked/sandwich.dmi b/icons/obj/food/baked/sandwich.dmi
new file mode 100644
index 00000000000..ce0208d58ef
Binary files /dev/null and b/icons/obj/food/baked/sandwich.dmi differ
diff --git a/icons/obj/food/baked/scone.dmi b/icons/obj/food/baked/scone.dmi
new file mode 100644
index 00000000000..18624afa054
Binary files /dev/null and b/icons/obj/food/baked/scone.dmi differ
diff --git a/icons/obj/food/baked/sliced_dough.dmi b/icons/obj/food/baked/sliced_dough.dmi
new file mode 100644
index 00000000000..9fa9f9175cc
Binary files /dev/null and b/icons/obj/food/baked/sliced_dough.dmi differ
diff --git a/icons/obj/food/baked/stuffing.dmi b/icons/obj/food/baked/stuffing.dmi
new file mode 100644
index 00000000000..81e63b1482d
Binary files /dev/null and b/icons/obj/food/baked/stuffing.dmi differ
diff --git a/icons/obj/food/baked/threebread.dmi b/icons/obj/food/baked/threebread.dmi
new file mode 100644
index 00000000000..fb73a81b563
Binary files /dev/null and b/icons/obj/food/baked/threebread.dmi differ
diff --git a/icons/obj/food/baked/toastedsandwich.dmi b/icons/obj/food/baked/toastedsandwich.dmi
new file mode 100644
index 00000000000..e3d8c23370a
Binary files /dev/null and b/icons/obj/food/baked/toastedsandwich.dmi differ
diff --git a/icons/obj/food/baked/twobread.dmi b/icons/obj/food/baked/twobread.dmi
new file mode 100644
index 00000000000..d5d45e6a255
Binary files /dev/null and b/icons/obj/food/baked/twobread.dmi differ
diff --git a/icons/obj/food/baked/waffles/blue.dmi b/icons/obj/food/baked/waffles/blue.dmi
new file mode 100644
index 00000000000..6fe44a8493d
Binary files /dev/null and b/icons/obj/food/baked/waffles/blue.dmi differ
diff --git a/icons/obj/food/baked/waffles/green.dmi b/icons/obj/food/baked/waffles/green.dmi
new file mode 100644
index 00000000000..a39a3cbc005
Binary files /dev/null and b/icons/obj/food/baked/waffles/green.dmi differ
diff --git a/icons/obj/food/baked/waffles/plain.dmi b/icons/obj/food/baked/waffles/plain.dmi
new file mode 100644
index 00000000000..0b4a384b8a0
Binary files /dev/null and b/icons/obj/food/baked/waffles/plain.dmi differ
diff --git a/icons/obj/food/baked/waffles/yellow.dmi b/icons/obj/food/baked/waffles/yellow.dmi
new file mode 100644
index 00000000000..9cf6692b59f
Binary files /dev/null and b/icons/obj/food/baked/waffles/yellow.dmi differ
diff --git a/icons/obj/food/burgers/bigbiteburger.dmi b/icons/obj/food/burgers/bigbiteburger.dmi
new file mode 100644
index 00000000000..b7857397f70
Binary files /dev/null and b/icons/obj/food/burgers/bigbiteburger.dmi differ
diff --git a/icons/obj/food/burgers/brainburger.dmi b/icons/obj/food/burgers/brainburger.dmi
new file mode 100644
index 00000000000..fcb0efa4d13
Binary files /dev/null and b/icons/obj/food/burgers/brainburger.dmi differ
diff --git a/icons/obj/food/burgers/burger.dmi b/icons/obj/food/burgers/burger.dmi
new file mode 100644
index 00000000000..a65a9107edd
Binary files /dev/null and b/icons/obj/food/burgers/burger.dmi differ
diff --git a/icons/obj/food/burgers/cheeseburger.dmi b/icons/obj/food/burgers/cheeseburger.dmi
new file mode 100644
index 00000000000..98fabf71d83
Binary files /dev/null and b/icons/obj/food/burgers/cheeseburger.dmi differ
diff --git a/icons/obj/food/burgers/clownburger.dmi b/icons/obj/food/burgers/clownburger.dmi
new file mode 100644
index 00000000000..d8ad6e07dc6
Binary files /dev/null and b/icons/obj/food/burgers/clownburger.dmi differ
diff --git a/icons/obj/food/burgers/fishburger.dmi b/icons/obj/food/burgers/fishburger.dmi
new file mode 100644
index 00000000000..dfcee246e56
Binary files /dev/null and b/icons/obj/food/burgers/fishburger.dmi differ
diff --git a/icons/obj/food/burgers/ghostburger.dmi b/icons/obj/food/burgers/ghostburger.dmi
new file mode 100644
index 00000000000..4eda121afcd
Binary files /dev/null and b/icons/obj/food/burgers/ghostburger.dmi differ
diff --git a/icons/obj/food/burgers/hamburger.dmi b/icons/obj/food/burgers/hamburger.dmi
new file mode 100644
index 00000000000..f93dd97260e
Binary files /dev/null and b/icons/obj/food/burgers/hamburger.dmi differ
diff --git a/icons/obj/food/burgers/jellyburger.dmi b/icons/obj/food/burgers/jellyburger.dmi
new file mode 100644
index 00000000000..506699d72f2
Binary files /dev/null and b/icons/obj/food/burgers/jellyburger.dmi differ
diff --git a/icons/obj/food/burgers/mimeburger.dmi b/icons/obj/food/burgers/mimeburger.dmi
new file mode 100644
index 00000000000..d5df1d6bd85
Binary files /dev/null and b/icons/obj/food/burgers/mimeburger.dmi differ
diff --git a/icons/obj/food/burgers/roburger.dmi b/icons/obj/food/burgers/roburger.dmi
new file mode 100644
index 00000000000..64610f43dc3
Binary files /dev/null and b/icons/obj/food/burgers/roburger.dmi differ
diff --git a/icons/obj/food/burgers/spellburger.dmi b/icons/obj/food/burgers/spellburger.dmi
new file mode 100644
index 00000000000..6b658c73af8
Binary files /dev/null and b/icons/obj/food/burgers/spellburger.dmi differ
diff --git a/icons/obj/food/burgers/superbiteburger.dmi b/icons/obj/food/burgers/superbiteburger.dmi
new file mode 100644
index 00000000000..8c834d571b7
Binary files /dev/null and b/icons/obj/food/burgers/superbiteburger.dmi differ
diff --git a/icons/obj/food/burgers/tofuburger.dmi b/icons/obj/food/burgers/tofuburger.dmi
new file mode 100644
index 00000000000..6f6a0265462
Binary files /dev/null and b/icons/obj/food/burgers/tofuburger.dmi differ
diff --git a/icons/obj/food/burgers/xenoburger.dmi b/icons/obj/food/burgers/xenoburger.dmi
new file mode 100644
index 00000000000..7f4bce3fd22
Binary files /dev/null and b/icons/obj/food/burgers/xenoburger.dmi differ
diff --git a/icons/obj/items/butchery/chopped.dmi b/icons/obj/food/butchery/chopped.dmi
similarity index 100%
rename from icons/obj/items/butchery/chopped.dmi
rename to icons/obj/food/butchery/chopped.dmi
diff --git a/icons/obj/items/butchery/cutlet.dmi b/icons/obj/food/butchery/cutlet.dmi
similarity index 100%
rename from icons/obj/items/butchery/cutlet.dmi
rename to icons/obj/food/butchery/cutlet.dmi
diff --git a/icons/obj/items/butchery/fish.dmi b/icons/obj/food/butchery/fish.dmi
similarity index 100%
rename from icons/obj/items/butchery/fish.dmi
rename to icons/obj/food/butchery/fish.dmi
diff --git a/icons/obj/items/butchery/fish_grilled.dmi b/icons/obj/food/butchery/fish_grilled.dmi
similarity index 100%
rename from icons/obj/items/butchery/fish_grilled.dmi
rename to icons/obj/food/butchery/fish_grilled.dmi
diff --git a/icons/obj/items/butchery/haunch.dmi b/icons/obj/food/butchery/haunch.dmi
similarity index 100%
rename from icons/obj/items/butchery/haunch.dmi
rename to icons/obj/food/butchery/haunch.dmi
diff --git a/icons/obj/food_jerky.dmi b/icons/obj/food/butchery/jerky.dmi
similarity index 100%
rename from icons/obj/food_jerky.dmi
rename to icons/obj/food/butchery/jerky.dmi
diff --git a/icons/obj/food/butchery/kabob.dmi b/icons/obj/food/butchery/kabob.dmi
new file mode 100644
index 00000000000..0788ad44c8d
Binary files /dev/null and b/icons/obj/food/butchery/kabob.dmi differ
diff --git a/icons/obj/items/butchery/meat1.dmi b/icons/obj/food/butchery/meat1.dmi
similarity index 100%
rename from icons/obj/items/butchery/meat1.dmi
rename to icons/obj/food/butchery/meat1.dmi
diff --git a/icons/obj/items/butchery/meat2.dmi b/icons/obj/food/butchery/meat2.dmi
similarity index 100%
rename from icons/obj/items/butchery/meat2.dmi
rename to icons/obj/food/butchery/meat2.dmi
diff --git a/icons/obj/items/butchery/meat3.dmi b/icons/obj/food/butchery/meat3.dmi
similarity index 100%
rename from icons/obj/items/butchery/meat3.dmi
rename to icons/obj/food/butchery/meat3.dmi
diff --git a/icons/obj/food/butchery/meatball.dmi b/icons/obj/food/butchery/meatball.dmi
new file mode 100644
index 00000000000..0dcc8c14ebb
Binary files /dev/null and b/icons/obj/food/butchery/meatball.dmi differ
diff --git a/icons/obj/food/butchery/mushroom.dmi b/icons/obj/food/butchery/mushroom.dmi
new file mode 100644
index 00000000000..ffe5e7e2101
Binary files /dev/null and b/icons/obj/food/butchery/mushroom.dmi differ
diff --git a/icons/obj/items/butchery/offal.dmi b/icons/obj/food/butchery/offal.dmi
similarity index 100%
rename from icons/obj/items/butchery/offal.dmi
rename to icons/obj/food/butchery/offal.dmi
diff --git a/icons/obj/items/butchery/offal_small.dmi b/icons/obj/food/butchery/offal_small.dmi
similarity index 100%
rename from icons/obj/items/butchery/offal_small.dmi
rename to icons/obj/food/butchery/offal_small.dmi
diff --git a/icons/obj/food/butchery/rawmeatball.dmi b/icons/obj/food/butchery/rawmeatball.dmi
new file mode 100644
index 00000000000..09b299727ba
Binary files /dev/null and b/icons/obj/food/butchery/rawmeatball.dmi differ
diff --git a/icons/obj/items/butchery/ruminant_stomach.dmi b/icons/obj/food/butchery/ruminant_stomach.dmi
similarity index 100%
rename from icons/obj/items/butchery/ruminant_stomach.dmi
rename to icons/obj/food/butchery/ruminant_stomach.dmi
diff --git a/icons/obj/food/butchery/sausage.dmi b/icons/obj/food/butchery/sausage.dmi
new file mode 100644
index 00000000000..f39947075b1
Binary files /dev/null and b/icons/obj/food/butchery/sausage.dmi differ
diff --git a/icons/obj/items/butchery/side.dmi b/icons/obj/food/butchery/side.dmi
similarity index 100%
rename from icons/obj/items/butchery/side.dmi
rename to icons/obj/food/butchery/side.dmi
diff --git a/icons/obj/food/butchery/spider_leg.dmi b/icons/obj/food/butchery/spider_leg.dmi
new file mode 100644
index 00000000000..aa6f3a3065f
Binary files /dev/null and b/icons/obj/food/butchery/spider_leg.dmi differ
diff --git a/icons/obj/food/butchery/spider_leg_cooked.dmi b/icons/obj/food/butchery/spider_leg_cooked.dmi
new file mode 100644
index 00000000000..93e496104dc
Binary files /dev/null and b/icons/obj/food/butchery/spider_leg_cooked.dmi differ
diff --git a/icons/obj/food/butchery/steak.dmi b/icons/obj/food/butchery/steak.dmi
new file mode 100644
index 00000000000..4fe0f414844
Binary files /dev/null and b/icons/obj/food/butchery/steak.dmi differ
diff --git a/icons/obj/food/butchery/tomato.dmi b/icons/obj/food/butchery/tomato.dmi
new file mode 100644
index 00000000000..e28034b9c71
Binary files /dev/null and b/icons/obj/food/butchery/tomato.dmi differ
diff --git a/icons/obj/food/candied_apple.dmi b/icons/obj/food/candied_apple.dmi
new file mode 100644
index 00000000000..2ebac5b6c73
Binary files /dev/null and b/icons/obj/food/candied_apple.dmi differ
diff --git a/icons/obj/food/canned/canned.dmi b/icons/obj/food/canned/canned.dmi
new file mode 100644
index 00000000000..967cf862587
Binary files /dev/null and b/icons/obj/food/canned/canned.dmi differ
diff --git a/icons/obj/food/chocolatebar.dmi b/icons/obj/food/chocolatebar.dmi
new file mode 100644
index 00000000000..8e9d7a01f81
Binary files /dev/null and b/icons/obj/food/chocolatebar.dmi differ
diff --git a/icons/obj/food/condiments/rice.dmi b/icons/obj/food/condiments/rice.dmi
index 09274fdc79c..33e9218e668 100644
Binary files a/icons/obj/food/condiments/rice.dmi and b/icons/obj/food/condiments/rice.dmi differ
diff --git a/icons/obj/food/custom/custom.dmi b/icons/obj/food/custom/custom.dmi
new file mode 100644
index 00000000000..7fa7c7d09a8
Binary files /dev/null and b/icons/obj/food/custom/custom.dmi differ
diff --git a/icons/obj/food/donkpocket.dmi b/icons/obj/food/donkpocket.dmi
new file mode 100644
index 00000000000..8d4699e95e8
Binary files /dev/null and b/icons/obj/food/donkpocket.dmi differ
diff --git a/icons/obj/food/error.dmi b/icons/obj/food/error.dmi
new file mode 100644
index 00000000000..b854b9a610c
Binary files /dev/null and b/icons/obj/food/error.dmi differ
diff --git a/icons/obj/food/fried/cheesyfries.dmi b/icons/obj/food/fried/cheesyfries.dmi
new file mode 100644
index 00000000000..dbd9dd37b7f
Binary files /dev/null and b/icons/obj/food/fried/cheesyfries.dmi differ
diff --git a/icons/obj/food/fried/cubancarp.dmi b/icons/obj/food/fried/cubancarp.dmi
new file mode 100644
index 00000000000..aca554b1429
Binary files /dev/null and b/icons/obj/food/fried/cubancarp.dmi differ
diff --git a/icons/obj/food/fried/fishandchips.dmi b/icons/obj/food/fried/fishandchips.dmi
new file mode 100644
index 00000000000..066aed187a6
Binary files /dev/null and b/icons/obj/food/fried/fishandchips.dmi differ
diff --git a/icons/obj/food/fried/fishfingers.dmi b/icons/obj/food/fried/fishfingers.dmi
new file mode 100644
index 00000000000..2525b580f35
Binary files /dev/null and b/icons/obj/food/fried/fishfingers.dmi differ
diff --git a/icons/obj/food/fried/friedegg.dmi b/icons/obj/food/fried/friedegg.dmi
new file mode 100644
index 00000000000..2e34eb930d9
Binary files /dev/null and b/icons/obj/food/fried/friedegg.dmi differ
diff --git a/icons/obj/food/fried/fries.dmi b/icons/obj/food/fried/fries.dmi
new file mode 100644
index 00000000000..05604c91727
Binary files /dev/null and b/icons/obj/food/fried/fries.dmi differ
diff --git a/icons/obj/food/fried/omelette.dmi b/icons/obj/food/fried/omelette.dmi
new file mode 100644
index 00000000000..85ed5935c54
Binary files /dev/null and b/icons/obj/food/fried/omelette.dmi differ
diff --git a/icons/obj/food/fried/onionrings.dmi b/icons/obj/food/fried/onionrings.dmi
new file mode 100644
index 00000000000..d1b1a8bed47
Binary files /dev/null and b/icons/obj/food/fried/onionrings.dmi differ
diff --git a/icons/obj/food/fried/pancakes.dmi b/icons/obj/food/fried/pancakes.dmi
new file mode 100644
index 00000000000..38b1688b55b
Binary files /dev/null and b/icons/obj/food/fried/pancakes.dmi differ
diff --git a/icons/obj/food/hotcorgi.dmi b/icons/obj/food/hotcorgi.dmi
new file mode 100644
index 00000000000..185bada8af5
Binary files /dev/null and b/icons/obj/food/hotcorgi.dmi differ
diff --git a/icons/obj/food/hotdog.dmi b/icons/obj/food/hotdog.dmi
new file mode 100644
index 00000000000..3af324ba723
Binary files /dev/null and b/icons/obj/food/hotdog.dmi differ
diff --git a/icons/obj/food/junk/junkfood.dmi b/icons/obj/food/junk/junkfood.dmi
new file mode 100644
index 00000000000..c9e0f250b6a
Binary files /dev/null and b/icons/obj/food/junk/junkfood.dmi differ
diff --git a/icons/obj/food/mint.dmi b/icons/obj/food/mint.dmi
new file mode 100644
index 00000000000..f2405b617fc
Binary files /dev/null and b/icons/obj/food/mint.dmi differ
diff --git a/icons/obj/food/old/burger.dmi b/icons/obj/food/old/burger.dmi
new file mode 100644
index 00000000000..60576e6e526
Binary files /dev/null and b/icons/obj/food/old/burger.dmi differ
diff --git a/icons/obj/food/old/fries.dmi b/icons/obj/food/old/fries.dmi
new file mode 100644
index 00000000000..c3ee3e9fe8b
Binary files /dev/null and b/icons/obj/food/old/fries.dmi differ
diff --git a/icons/obj/food/old/hamburger.dmi b/icons/obj/food/old/hamburger.dmi
new file mode 100644
index 00000000000..aba2d1b26b4
Binary files /dev/null and b/icons/obj/food/old/hamburger.dmi differ
diff --git a/icons/obj/food/old/hotdog.dmi b/icons/obj/food/old/hotdog.dmi
new file mode 100644
index 00000000000..fc1ceeac263
Binary files /dev/null and b/icons/obj/food/old/hotdog.dmi differ
diff --git a/icons/obj/food/old/pizza.dmi b/icons/obj/food/old/pizza.dmi
new file mode 100644
index 00000000000..03bced6d25c
Binary files /dev/null and b/icons/obj/food/old/pizza.dmi differ
diff --git a/icons/obj/food/old/taco.dmi b/icons/obj/food/old/taco.dmi
new file mode 100644
index 00000000000..038a967c454
Binary files /dev/null and b/icons/obj/food/old/taco.dmi differ
diff --git a/icons/obj/food/pasta/extra_meatball_spaghetti.dmi b/icons/obj/food/pasta/extra_meatball_spaghetti.dmi
new file mode 100644
index 00000000000..ed37dd53a68
Binary files /dev/null and b/icons/obj/food/pasta/extra_meatball_spaghetti.dmi differ
diff --git a/icons/obj/food/pasta/meatball_spaghetti.dmi b/icons/obj/food/pasta/meatball_spaghetti.dmi
new file mode 100644
index 00000000000..51c98ad5318
Binary files /dev/null and b/icons/obj/food/pasta/meatball_spaghetti.dmi differ
diff --git a/icons/obj/food/pasta/nanopasta.dmi b/icons/obj/food/pasta/nanopasta.dmi
new file mode 100644
index 00000000000..96217cbcc5d
Binary files /dev/null and b/icons/obj/food/pasta/nanopasta.dmi differ
diff --git a/icons/obj/food/pasta/rawspaghetti.dmi b/icons/obj/food/pasta/rawspaghetti.dmi
new file mode 100644
index 00000000000..383b0c4a208
Binary files /dev/null and b/icons/obj/food/pasta/rawspaghetti.dmi differ
diff --git a/icons/obj/food/pasta/spaghetti.dmi b/icons/obj/food/pasta/spaghetti.dmi
new file mode 100644
index 00000000000..b1567a959a5
Binary files /dev/null and b/icons/obj/food/pasta/spaghetti.dmi differ
diff --git a/icons/obj/food/pasta/tomato_spaghetti.dmi b/icons/obj/food/pasta/tomato_spaghetti.dmi
new file mode 100644
index 00000000000..a32f33f9df5
Binary files /dev/null and b/icons/obj/food/pasta/tomato_spaghetti.dmi differ
diff --git a/icons/obj/food/pelmen.dmi b/icons/obj/food/pelmen.dmi
new file mode 100644
index 00000000000..56570096d5c
Binary files /dev/null and b/icons/obj/food/pelmen.dmi differ
diff --git a/icons/obj/food/pelmeni_boiled.dmi b/icons/obj/food/pelmeni_boiled.dmi
new file mode 100644
index 00000000000..df1913d9218
Binary files /dev/null and b/icons/obj/food/pelmeni_boiled.dmi differ
diff --git a/icons/obj/food/pudding/amanita_jelly.dmi b/icons/obj/food/pudding/amanita_jelly.dmi
new file mode 100644
index 00000000000..3c502d26816
Binary files /dev/null and b/icons/obj/food/pudding/amanita_jelly.dmi differ
diff --git a/icons/obj/food/pudding/chawanmushi.dmi b/icons/obj/food/pudding/chawanmushi.dmi
new file mode 100644
index 00000000000..fcdce2f4123
Binary files /dev/null and b/icons/obj/food/pudding/chawanmushi.dmi differ
diff --git a/icons/obj/food/pudding/liberty_duff.dmi b/icons/obj/food/pudding/liberty_duff.dmi
new file mode 100644
index 00000000000..aecbc115fdd
Binary files /dev/null and b/icons/obj/food/pudding/liberty_duff.dmi differ
diff --git a/icons/obj/food/rice/boiled.dmi b/icons/obj/food/rice/boiled.dmi
new file mode 100644
index 00000000000..6fc60e19c40
Binary files /dev/null and b/icons/obj/food/rice/boiled.dmi differ
diff --git a/icons/obj/food/rice/chazuke.dmi b/icons/obj/food/rice/chazuke.dmi
new file mode 100644
index 00000000000..d1dfd84b5f1
Binary files /dev/null and b/icons/obj/food/rice/chazuke.dmi differ
diff --git a/icons/obj/food/rice/katsu.dmi b/icons/obj/food/rice/katsu.dmi
new file mode 100644
index 00000000000..8266d4069d1
Binary files /dev/null and b/icons/obj/food/rice/katsu.dmi differ
diff --git a/icons/obj/food/rice/pudding.dmi b/icons/obj/food/rice/pudding.dmi
new file mode 100644
index 00000000000..9c81bedcbbd
Binary files /dev/null and b/icons/obj/food/rice/pudding.dmi differ
diff --git a/icons/obj/food/salads/salad.dmi b/icons/obj/food/salads/salad.dmi
new file mode 100644
index 00000000000..b757d98d356
Binary files /dev/null and b/icons/obj/food/salads/salad.dmi differ
diff --git a/icons/obj/food/soups/soup.dmi b/icons/obj/food/soups/soup.dmi
new file mode 100644
index 00000000000..a626520b111
Binary files /dev/null and b/icons/obj/food/soups/soup.dmi differ
diff --git a/icons/obj/food/taco.dmi b/icons/obj/food/taco.dmi
new file mode 100644
index 00000000000..246823c5c02
Binary files /dev/null and b/icons/obj/food/taco.dmi differ
diff --git a/icons/obj/food/tofu/soymeat.dmi b/icons/obj/food/tofu/soymeat.dmi
new file mode 100644
index 00000000000..3ecd7bd4651
Binary files /dev/null and b/icons/obj/food/tofu/soymeat.dmi differ
diff --git a/icons/obj/food/tofu/tofu.dmi b/icons/obj/food/tofu/tofu.dmi
new file mode 100644
index 00000000000..58e2261b644
Binary files /dev/null and b/icons/obj/food/tofu/tofu.dmi differ
diff --git a/icons/obj/food/tofu/tofurkey.dmi b/icons/obj/food/tofu/tofurkey.dmi
new file mode 100644
index 00000000000..8eb668869f8
Binary files /dev/null and b/icons/obj/food/tofu/tofurkey.dmi differ
diff --git a/icons/obj/food_canned.dmi b/icons/obj/food_canned.dmi
deleted file mode 100644
index 405ea82b792..00000000000
Binary files a/icons/obj/food_canned.dmi and /dev/null differ
diff --git a/icons/obj/food_custom.dmi b/icons/obj/food_custom.dmi
deleted file mode 100644
index 4ad776cf0d6..00000000000
Binary files a/icons/obj/food_custom.dmi and /dev/null differ
diff --git a/icons/obj/food_ingredients.dmi b/icons/obj/food_ingredients.dmi
deleted file mode 100644
index 96d41d3ecc7..00000000000
Binary files a/icons/obj/food_ingredients.dmi and /dev/null differ
diff --git a/icons/obj/food_trays.dmi b/icons/obj/food_trays.dmi
deleted file mode 100644
index 9fc471af6fe..00000000000
Binary files a/icons/obj/food_trays.dmi and /dev/null differ
diff --git a/maps/away/errant_pisces/errant_pisces.dm b/maps/away/errant_pisces/errant_pisces.dm
index c06fd3ff166..19a9986e014 100644
--- a/maps/away/errant_pisces/errant_pisces.dm
+++ b/maps/away/errant_pisces/errant_pisces.dm
@@ -61,20 +61,18 @@
visible_message("\The [src] releases [L].")
/decl/butchery_data/animal/fish/space_carp/shark
- meat_type = /obj/item/food/sharkmeat
+ meat_type = /obj/item/food/butchery/meat/fish/shark
must_use_hook = TRUE
-/obj/item/food/sharkmeat
- name = "cosmoshark fillet"
+/obj/item/food/butchery/meat/fish/shark
desc = "A fillet of cosmoshark meat."
- icon_state = "fishfillet"
- filling_color = "#cecece"
+ meat_name = "cosmoshark"
+ color = "#cecece"
center_of_mass = @'{"x":17,"y":13}'
bitesize = 8
-/obj/item/food/sharkmeat/populate_reagents()
+/obj/item/food/butchery/meat/fish/shark/populate_reagents()
. = ..()
- add_to_reagents(/decl/material/solid/organic/meat, 5)
add_to_reagents(/decl/material/liquid/psychoactives, 1)
add_to_reagents(/decl/material/gas/chlorine, 1)
diff --git a/maps/away/liberia/liberia.dmm b/maps/away/liberia/liberia.dmm
index 1ef5a0a18d1..b1f75333396 100644
--- a/maps/away/liberia/liberia.dmm
+++ b/maps/away/liberia/liberia.dmm
@@ -3077,9 +3077,9 @@
/obj/item/chems/ivbag/blood/oplus,
/obj/item/chems/ivbag/blood/ominus,
/obj/item/chems/ivbag/blood/ominus,
-/obj/item/food/candy/donor,
-/obj/item/food/candy/donor,
-/obj/item/food/candy/donor,
+/obj/item/food/junk/candy/donor,
+/obj/item/food/junk/candy/donor,
+/obj/item/food/junk/candy/donor,
/obj/effect/floor_decal/corner/blue{
dir = 6
},
diff --git a/maps/away/magshield/magshield.dmm b/maps/away/magshield/magshield.dmm
index c43125b1d86..84a9824ec11 100644
--- a/maps/away/magshield/magshield.dmm
+++ b/maps/away/magshield/magshield.dmm
@@ -3615,7 +3615,7 @@
/area/magshield/south)
"kI" = (
/obj/structure/table/marble,
-/obj/item/food/chips,
+/obj/item/food/junk/chips,
/turf/floor/tiled/white,
/area/magshield/south)
"kJ" = (
diff --git a/maps/away/slavers/slavers_base.dmm b/maps/away/slavers/slavers_base.dmm
index 999286d5d88..44c7a7fed9d 100644
--- a/maps/away/slavers/slavers_base.dmm
+++ b/maps/away/slavers/slavers_base.dmm
@@ -742,7 +742,7 @@
/obj/structure/hygiene/toilet{
dir = 4
},
-/obj/item/food/liquidfood,
+/obj/item/food/junk/liquidfood,
/turf/floor/airless,
/area/slavers_base/cells)
"ce" = (
@@ -1307,7 +1307,7 @@
/area/slavers_base/med)
"dE" = (
/obj/structure/closet/crate/freezer/rations,
-/obj/item/food/liquidfood,
+/obj/item/food/junk/liquidfood,
/turf/floor/airless,
/area/slavers_base/med)
"dF" = (
@@ -1445,7 +1445,7 @@
/turf/floor/tiled/airless,
/area/slavers_base/med)
"dZ" = (
-/obj/item/food/liquidfood,
+/obj/item/food/junk/liquidfood,
/turf/floor/airless,
/area/slavers_base/med)
"ea" = (
diff --git a/maps/exodus/exodus-1.dmm b/maps/exodus/exodus-1.dmm
index c4ebc112867..4ca6f0104f0 100644
--- a/maps/exodus/exodus-1.dmm
+++ b/maps/exodus/exodus-1.dmm
@@ -1722,8 +1722,8 @@
dir = 1
},
/obj/structure/closet/crate/plastic,
-/obj/item/food/liquidfood,
-/obj/item/food/liquidfood,
+/obj/item/food/junk/liquidfood,
+/obj/item/food/junk/liquidfood,
/obj/machinery/light{
dir = 4;
icon_state = "tube1"
@@ -3497,7 +3497,7 @@
name = "Atmos RC";
pixel_y = 32;
dir = 1;
-
+
},
/obj/structure/table/steel,
/turf/floor/tiled/steel_grid,
diff --git a/maps/exodus/exodus-2.dmm b/maps/exodus/exodus-2.dmm
index 9c015c46e0b..e23c53d0a88 100644
--- a/maps/exodus/exodus-2.dmm
+++ b/maps/exodus/exodus-2.dmm
@@ -19131,7 +19131,7 @@
/area/exodus/library)
"aOg" = (
/obj/structure/table/woodentable,
-/obj/item/food/chips,
+/obj/item/food/junk/chips,
/obj/random/single{
name = "randomly spawned cola";
spawn_object = /obj/item/chems/drinks/cans/cola
@@ -50249,7 +50249,7 @@
/area/exodus/engineering/break_room)
"cak" = (
/obj/structure/table/woodentable,
-/obj/item/food/chips,
+/obj/item/food/junk/chips,
/turf/floor/carpet,
/area/exodus/engineering/break_room)
"cal" = (
diff --git a/maps/exodus/exodus-admin.dmm b/maps/exodus/exodus-admin.dmm
index 0f5551f04c3..ef2496e107f 100644
--- a/maps/exodus/exodus-admin.dmm
+++ b/maps/exodus/exodus-admin.dmm
@@ -2034,7 +2034,7 @@
/obj/structure/table/woodentable{
dir = 5
},
-/obj/item/food/tofukabob,
+/obj/item/food/skewer/tofu,
/turf/unsimulated/floor{
icon_state = "wood"
},
diff --git a/maps/random_ruins/exoplanet_ruins/crashed_pod/crashed_pod.dmm b/maps/random_ruins/exoplanet_ruins/crashed_pod/crashed_pod.dmm
index 68c3b87c18e..a8eb8e1fb1e 100644
--- a/maps/random_ruins/exoplanet_ruins/crashed_pod/crashed_pod.dmm
+++ b/maps/random_ruins/exoplanet_ruins/crashed_pod/crashed_pod.dmm
@@ -294,7 +294,7 @@
/obj/item/bedsheet/orange,
/obj/item/stock_parts/matter_bin/adv,
/obj/item/stock_parts/micro_laser/ultra,
-/obj/item/food/liquidfood,
+/obj/item/food/junk/liquidfood,
/obj/item/stack/material/brick/mapped/sandstone/fifty,
/turf/floor/tiled/techfloor,
/area/map_template/crashed_pod)
diff --git a/mods/content/dungeon_loot/subtypes/maint.dm b/mods/content/dungeon_loot/subtypes/maint.dm
index e3e8127f17a..9664f582c63 100644
--- a/mods/content/dungeon_loot/subtypes/maint.dm
+++ b/mods/content/dungeon_loot/subtypes/maint.dm
@@ -31,7 +31,7 @@
/obj/item/clothing/mask/gas/half,
/obj/item/clothing/mask/breath,
/obj/item/chems/glass/rag,
- /obj/item/food/liquidfood,
+ /obj/item/food/junk/liquidfood,
/obj/item/secure_storage/briefcase,
/obj/item/briefcase,
/obj/item/backpack,
diff --git a/mods/content/xenobiology/food.dm b/mods/content/xenobiology/food.dm
index ced26ebc3ea..8d55981ec8f 100644
--- a/mods/content/xenobiology/food.dm
+++ b/mods/content/xenobiology/food.dm
@@ -47,7 +47,7 @@
/obj/item/food/slimesoup
name = "slime soup"
desc = "If no water is available, you may substitute tears."
- icon_state = "slimesoup"//nonexistant?
+ icon = 'mods/content/xenobiology/icons/soup.dmi'
filling_color = "#c4dba0"
bitesize = 5
eat_sound = 'sound/items/drink.ogg'
diff --git a/mods/content/xenobiology/icons/soup.dmi b/mods/content/xenobiology/icons/soup.dmi
new file mode 100644
index 00000000000..783b2b5e607
Binary files /dev/null and b/mods/content/xenobiology/icons/soup.dmi differ
diff --git a/mods/gamemodes/heist/heist_base.dmm b/mods/gamemodes/heist/heist_base.dmm
index 15594241408..335a410fbc4 100644
--- a/mods/gamemodes/heist/heist_base.dmm
+++ b/mods/gamemodes/heist/heist_base.dmm
@@ -1011,7 +1011,7 @@
/obj/machinery/door/blast/regular/open{
id_tag = "SkipjackShuttersNorth";
name = "Blast Doors";
-
+
},
/obj/effect/wallframe_spawn/reinforced/titanium,
/obj/effect/paint/brown,
@@ -1378,7 +1378,7 @@
dir = 4;
id_tag = "SkipjackShuttersWest";
name = "Skipjack Shutters";
-
+
},
/obj/effect/wallframe_spawn/reinforced/titanium,
/obj/effect/paint/brown,
@@ -1405,7 +1405,7 @@
dir = 8;
id_tag = "SkipjackShuttersEast";
name = "Skipjack Shutters";
-
+
},
/obj/effect/wallframe_spawn/reinforced/titanium,
/obj/effect/paint/brown,
@@ -1477,7 +1477,7 @@
dir = 4;
id_tag = "SkipjackShuttersWest";
name = "Skipjack Shutters";
-
+
},
/obj/effect/wallframe_spawn/reinforced/titanium,
/turf/floor/plating,
@@ -1494,8 +1494,8 @@
pixel_x = 3;
pixel_y = 3
},
-/obj/item/food/tastybread,
-/obj/item/food/tastybread,
+/obj/item/food/junk/tastybread,
+/obj/item/food/junk/tastybread,
/turf/unsimulated/floor{
icon_state = "plating";
name = "plating"
diff --git a/mods/mobs/dionaea/icons/roast.dmi b/mods/mobs/dionaea/icons/roast.dmi
new file mode 100644
index 00000000000..4357f38d10a
Binary files /dev/null and b/mods/mobs/dionaea/icons/roast.dmi differ
diff --git a/mods/mobs/dionaea/items/roast.dm b/mods/mobs/dionaea/items/roast.dm
index 0493e53da1a..02600366297 100644
--- a/mods/mobs/dionaea/items/roast.dm
+++ b/mods/mobs/dionaea/items/roast.dm
@@ -1,7 +1,7 @@
/obj/item/food/dionaroast
name = "roast diona"
desc = "It's like an enormous, leathery carrot. With an eye."
- icon_state = "dionaroast"
+ icon = 'mods/mobs/dionaea/icons/roast.dmi'
plate = /obj/item/plate
filling_color = "#75754b"
center_of_mass = @'{"x":16,"y":7}'
diff --git a/mods/species/vox/gear/gear.dm b/mods/species/vox/gear/gear.dm
index ba840e4429e..3633c86071b 100644
--- a/mods/species/vox/gear/gear.dm
+++ b/mods/species/vox/gear/gear.dm
@@ -14,7 +14,7 @@
/obj/item/chems/hypospray/autoinjector/pouch_auto/stabilizer = 1,
/obj/item/stack/medical/bandage = 1,
/obj/item/flashlight/flare/glowstick = 1,
- /obj/item/food/candy/proteinbar = 1
+ /obj/item/food/junk/candy/proteinbar = 1
)
/obj/item/tank/emergency/nitrogen
diff --git a/nebula.dme b/nebula.dme
index a99e2ac0470..a047cb2bd87 100644
--- a/nebula.dme
+++ b/nebula.dme
@@ -3614,19 +3614,14 @@
#include "code\modules\reagents\reagent_containers\drinkingglass\shaker.dm"
#include "code\modules\reagents\reagent_containers\drinks\bottle.dm"
#include "code\modules\reagents\reagent_containers\drinks\cans.dm"
-#include "code\modules\reagents\reagent_containers\drinks\champagne.dm"
#include "code\modules\reagents\reagent_containers\drinks\cocktailshaker.dm"
#include "code\modules\reagents\reagent_containers\drinks\juicebox.dm"
-#include "code\modules\reagents\reagent_containers\food\baked_goods.dm"
-#include "code\modules\reagents\reagent_containers\food\bread.dm"
#include "code\modules\reagents\reagent_containers\food\burgers.dm"
-#include "code\modules\reagents\reagent_containers\food\can_edibility.dm"
-#include "code\modules\reagents\reagent_containers\food\canned.dm"
-#include "code\modules\reagents\reagent_containers\food\dough.dm"
+#include "code\modules\reagents\reagent_containers\food\donkpocket.dm"
#include "code\modules\reagents\reagent_containers\food\eggs.dm"
#include "code\modules\reagents\reagent_containers\food\fish.dm"
#include "code\modules\reagents\reagent_containers\food\fried.dm"
-#include "code\modules\reagents\reagent_containers\food\jerky.dm"
+#include "code\modules\reagents\reagent_containers\food\hotdog.dm"
#include "code\modules\reagents\reagent_containers\food\junkfood.dm"
#include "code\modules\reagents\reagent_containers\food\lunch.dm"
#include "code\modules\reagents\reagent_containers\food\misc.dm"
@@ -3634,20 +3629,32 @@
#include "code\modules\reagents\reagent_containers\food\rice.dm"
#include "code\modules\reagents\reagent_containers\food\rotten.dm"
#include "code\modules\reagents\reagent_containers\food\sandwich.dm"
-#include "code\modules\reagents\reagent_containers\food\sliceable.dm"
+#include "code\modules\reagents\reagent_containers\food\skewer.dm"
#include "code\modules\reagents\reagent_containers\food\soup.dm"
#include "code\modules\reagents\reagent_containers\food\soy.dm"
#include "code\modules\reagents\reagent_containers\food\sushi.dm"
#include "code\modules\reagents\reagent_containers\food\veggie.dm"
+#include "code\modules\reagents\reagent_containers\food\baking\baked_goods.dm"
+#include "code\modules\reagents\reagent_containers\food\baking\bread.dm"
+#include "code\modules\reagents\reagent_containers\food\baking\cookie.dm"
+#include "code\modules\reagents\reagent_containers\food\baking\donuts.dm"
+#include "code\modules\reagents\reagent_containers\food\baking\leavened_dough.dm"
+#include "code\modules\reagents\reagent_containers\food\baking\piecrust.dm"
+#include "code\modules\reagents\reagent_containers\food\baking\pies.dm"
+#include "code\modules\reagents\reagent_containers\food\baking\unleavened_dough.dm"
+#include "code\modules\reagents\reagent_containers\food\canned\_canned.dm"
+#include "code\modules\reagents\reagent_containers\food\canned\can_edibility.dm"
+#include "code\modules\reagents\reagent_containers\food\chocolate\chocolate.dm"
#include "code\modules\reagents\reagent_containers\food\dairy\_dairy.dm"
#include "code\modules\reagents\reagent_containers\food\dairy\butter.dm"
#include "code\modules\reagents\reagent_containers\food\dairy\cheeses.dm"
#include "code\modules\reagents\reagent_containers\food\meat\cubes.dm"
#include "code\modules\reagents\reagent_containers\food\meat\fish.dm"
+#include "code\modules\reagents\reagent_containers\food\meat\jerky.dm"
#include "code\modules\reagents\reagent_containers\food\meat\meat.dm"
+#include "code\modules\reagents\reagent_containers\food\sliceable\_sliceable.dm"
#include "code\modules\reagents\reagent_containers\food\sliceable\cakes.dm"
#include "code\modules\reagents\reagent_containers\food\sliceable\loaves.dm"
-#include "code\modules\reagents\reagent_containers\food\sliceable\misc_slices.dm"
#include "code\modules\reagents\reagent_containers\food\sliceable\pizza\_pizza.dm"
#include "code\modules\reagents\reagent_containers\food\sliceable\pizza\pizza_box.dm"
#include "code\modules\reagents\reagent_containers\food\sliceable\pizza\pizza_margherita.dm"
diff --git a/tools/map_migrations/4525_food_breakup.txt b/tools/map_migrations/4525_food_breakup.txt
new file mode 100644
index 00000000000..f565bb30dc2
--- /dev/null
+++ b/tools/map_migrations/4525_food_breakup.txt
@@ -0,0 +1,37 @@
+/obj/item/food/sosjerky/@SUBTYPES : /obj/item/food/junk/sosjerky/@SUBTYPES{@OLD}
+/obj/item/food/no_raisin/@SUBTYPES : /obj/item/food/junk/no_raisin/@SUBTYPES{@OLD}
+/obj/item/food/spacetwinkie/@SUBTYPES : /obj/item/food/junk/spacetwinkie/@SUBTYPES{@OLD}
+/obj/item/food/cheesiehonkers/@SUBTYPES : /obj/item/food/junk/cheesiehonkers/@SUBTYPES{@OLD}
+/obj/item/food/syndicake/@SUBTYPES : /obj/item/food/junk/syndicake/@SUBTYPES{@OLD}
+/obj/item/food/pistachios/@SUBTYPES : /obj/item/food/junk/pistachios/@SUBTYPES{@OLD}
+/obj/item/food/semki/@SUBTYPES : /obj/item/food/junk/semki/@SUBTYPES{@OLD}
+/obj/item/food/squid/@SUBTYPES : /obj/item/food/junk/squid/@SUBTYPES{@OLD}
+/obj/item/food/croutons/@SUBTYPES : /obj/item/food/junk/croutons/@SUBTYPES{@OLD}
+/obj/item/food/salo/@SUBTYPES : /obj/item/food/junk/salo/@SUBTYPES{@OLD}
+/obj/item/food/driedfish/@SUBTYPES : /obj/item/food/junk/driedfish/@SUBTYPES{@OLD}
+/obj/item/food/liquidfood/@SUBTYPES : /obj/item/food/junk/liquidfood/@SUBTYPES{@OLD}
+/obj/item/food/meatcube/@SUBTYPES : /obj/item/food/junk/meatcube/@SUBTYPES{@OLD}
+/obj/item/food/tastybread/@SUBTYPES : /obj/item/food/junk/tastybread/@SUBTYPES{@OLD}
+/obj/item/food/candy/@SUBTYPES : /obj/item/food/junk/candy/@SUBTYPES{@OLD}
+/obj/item/food/candy_corn/@SUBTYPES : /obj/item/food/junk/candy_corn/@SUBTYPES{@OLD}
+/obj/item/food/chips/@SUBTYPES : /obj/item/food/junk/chips/@SUBTYPES{@OLD}
+/obj/item/food/lunacake/@SUBTYPES : /obj/item/food/junk/lunacake/@SUBTYPES{@OLD}
+/obj/item/food/triton/@SUBTYPES : /obj/item/food/junk/triton/@SUBTYPES{@OLD}
+/obj/item/food/saturn/@SUBTYPES : /obj/item/food/junk/saturn/@SUBTYPES{@OLD}
+/obj/item/food/jupiter/@SUBTYPES : /obj/item/food/junk/jupiter/@SUBTYPES{@OLD}
+/obj/item/food/pluto/@SUBTYPES : /obj/item/food/junk/pluto/@SUBTYPES{@OLD}
+/obj/item/food/mars/@SUBTYPES : /obj/item/food/junk/mars/@SUBTYPES{@OLD}
+/obj/item/food/venus/@SUBTYPES : /obj/item/food/junk/venus/@SUBTYPES{@OLD}
+/obj/item/food/oort/@SUBTYPES : /obj/item/food/junk/oort/@SUBTYPES{@OLD}
+/obj/item/food/ricecake/@SUBTYPES : /obj/item/food/junk/ricecake/@SUBTYPES{@OLD}
+/obj/item/food/pokey/@SUBTYPES : /obj/item/food/junk/pokey/@SUBTYPES{@OLD}
+/obj/item/food/weebonuts/@SUBTYPES : /obj/item/food/junk/weebonuts/@SUBTYPES{@OLD}
+/obj/item/food/chocobanana/@SUBTYPES : /obj/item/food/junk/chocobanana/@SUBTYPES{@OLD}
+/obj/item/food/dango/@SUBTYPES : /obj/item/food/junk/dango/@SUBTYPES{@OLD}
+
+/obj/item/food/xenomeat/@SUBTYPES : /obj/item/food/butchery/meat/xeno/@SUBTYPES{@OLD}
+/obj/item/food/cosmoshark/@SUBTYPES : /obj/item/food/butchery/meat/fish/shark/@SUBTYPES{@OLD}
+/obj/item/food/bearmeat/@SUBTYPES : obj/item/food/butchery/meat/bear/@SUBTYPES{@OLD}
+
+/obj/item/food/meatkabob/@SUBTYPES : /obj/item/food/skewer/meat/@SUBTYPES{@OLD}
+/obj/item/food/tofukabob/@SUBTYPES : /obj/item/food/skewer/tofu/@SUBTYPES{@OLD}
\ No newline at end of file