diff --git a/code/game/machinery/vending_types.dm b/code/game/machinery/vending_types.dm
index 3b0fc538142..21ea54d0ed7 100644
--- a/code/game/machinery/vending_types.dm
+++ b/code/game/machinery/vending_types.dm
@@ -1011,7 +1011,7 @@
/obj/item/material/kitchen/utensil/fork/plastic = 12,
/obj/item/material/kitchen/utensil/spoon/plastic = 12,
/obj/item/material/kitchen/utensil/knife/plastic = 12,
- /obj/item/material/kitchen/utensil/fork/chopsticks/cheap = 12,
+ /obj/item/material/kitchen/utensil/fork/chopsticks/bamboo = 12,
/obj/item/reagent_containers/food/drinks/drinkingglass = 12,
/obj/item/reagent_containers/food/drinks/drinkingglass/newglass/carafe = 3,
/obj/item/reagent_containers/glass/beaker/pitcher = 3,
diff --git a/code/game/objects/items/weapons/material/kitchen.dm b/code/game/objects/items/weapons/material/kitchen.dm
index 71162b301fe..4714a4c0dd2 100644
--- a/code/game/objects/items/weapons/material/kitchen.dm
+++ b/code/game/objects/items/weapons/material/kitchen.dm
@@ -1,9 +1,6 @@
/obj/item/material/kitchen
icon = 'icons/obj/kitchen.dmi'
- item_icons = list(
- slot_l_hand_str = 'icons/mob/items/lefthand_kitchen.dmi',
- slot_r_hand_str = 'icons/mob/items/righthand_kitchen.dmi',
- )
+ contained_sprite = TRUE
/*
* Utensils
@@ -25,6 +22,8 @@
var/scoop_food = 1
var/transfer_amt = 1
var/list/bite_sizes = list(1,2,3,4,5)
+ use_material_name = FALSE
+ applies_material_colour = FALSE
/obj/item/material/kitchen/utensil/Initialize(newloc, material_key)
. = ..()
@@ -98,7 +97,10 @@
sharp = TRUE
/obj/item/material/kitchen/utensil/fork/plastic
+ icon_state = "plastic_fork"
default_material = MATERIAL_PLASTIC
+ use_material_name = TRUE
+ applies_material_colour = TRUE
/obj/item/material/kitchen/utensil/spork
name = "spork"
@@ -106,21 +108,21 @@
icon_state = "spork"
/obj/item/material/kitchen/utensil/spork/plastic
+ icon_state = "plastic_spork"
default_material = MATERIAL_PLASTIC
+ use_material_name = TRUE
+ applies_material_colour = TRUE
/obj/item/material/kitchen/utensil/fork/chopsticks
name = "chopsticks"
- desc = "A pair of chopsticks. The most challenging utensil in the Spur."
+ desc = "A pair of chopsticks. An extension of one's fingers, one might say."
icon_state = "chopsticks"
- default_material = MATERIAL_WOOD
- transfer_amt = 2 //Chopsticks are hard to grab stuff with
- bite_sizes = list(1,2)
-/obj/item/material/kitchen/utensil/fork/chopsticks/cheap
- name = "cheap chopsticks"
- desc = "A pair of cheap, disposable chopsticks."
- use_material_name = 0
- applies_material_colour = 0
+/obj/item/material/kitchen/utensil/fork/chopsticks/bamboo
+ icon_state = "plastic_chopsticks"
+ default_material = MATERIAL_BAMBOO
+ use_material_name = TRUE
+ applies_material_colour = TRUE
/obj/item/material/kitchen/utensil/spoon
name = "spoon"
@@ -130,7 +132,10 @@
force_divisor = 0.1 //2 when wielded with weight 20 (steel)
/obj/item/material/kitchen/utensil/spoon/plastic
+ icon_state = "plastic_spoon"
default_material = MATERIAL_PLASTIC
+ use_material_name = TRUE
+ applies_material_colour = TRUE
/*
* Knives
@@ -163,7 +168,10 @@
return ..()
/obj/item/material/kitchen/utensil/knife/plastic
+ icon_state = "plastic_knife"
default_material = MATERIAL_PLASTIC
+ use_material_name = TRUE
+ applies_material_colour = TRUE
/*
* Rolling Pins
@@ -177,6 +185,8 @@
default_material = "wood"
force_divisor = 0.7 // 10 when wielded with weight 15 (wood)
thrown_force_divisor = 1 // as above
+ use_material_name = TRUE
+ applies_material_colour = TRUE
/obj/item/material/kitchen/rollingpin/attack(mob/living/M, mob/living/user, var/target_zone)
if ((user.is_clumsy()) && prob(50))
diff --git a/code/game/objects/items/weapons/material/knives.dm b/code/game/objects/items/weapons/material/knives.dm
index 9428ff792bf..f5acc7b6eb3 100644
--- a/code/game/objects/items/weapons/material/knives.dm
+++ b/code/game/objects/items/weapons/material/knives.dm
@@ -4,10 +4,7 @@
/obj/item/material/knife
name = "kitchen knife"
icon = 'icons/obj/kitchen.dmi'
- item_icons = list(
- slot_l_hand_str = 'icons/mob/items/lefthand_kitchen.dmi',
- slot_r_hand_str = 'icons/mob/items/righthand_kitchen.dmi',
- )
+ contained_sprite = TRUE
icon_state = "knife"
desc = "A general purpose Chef's Knife made by SpaceCook Incorporated. Guaranteed to stay sharp for years to come."
flags = CONDUCT
diff --git a/code/game/objects/items/weapons/material/misc.dm b/code/game/objects/items/weapons/material/misc.dm
index 4909d84dbb5..ff81e320121 100644
--- a/code/game/objects/items/weapons/material/misc.dm
+++ b/code/game/objects/items/weapons/material/misc.dm
@@ -53,10 +53,7 @@
icon = 'icons/obj/kitchen.dmi'
icon_state = "butch"
item_state = "butch"
- item_icons = list(
- slot_l_hand_str = 'icons/mob/items/lefthand_kitchen.dmi',
- slot_r_hand_str = 'icons/mob/items/righthand_kitchen.dmi',
- )
+ contained_sprite = TRUE
desc = "A huge thing used for chopping and chopping up meat."
force_divisor = 0.25 // 15 when wielded with hardness 60 (steel)
slot_flags = SLOT_BELT
@@ -133,10 +130,7 @@
icon = 'icons/obj/kitchen.dmi'
icon_state = "hook_knife"
item_state = "hook_knife"
- item_icons = list(
- slot_l_hand_str = 'icons/mob/items/lefthand_kitchen.dmi',
- slot_r_hand_str = 'icons/mob/items/righthand_kitchen.dmi',
- )
+ contained_sprite = TRUE
sharp = 1
edge = TRUE
force_divisor = 0.25
diff --git a/code/game/objects/structures/kitchen_spike.dm b/code/game/objects/structures/kitchen_spike.dm
index e422aa5bb23..d2a6291cac4 100644
--- a/code/game/objects/structures/kitchen_spike.dm
+++ b/code/game/objects/structures/kitchen_spike.dm
@@ -16,30 +16,31 @@
if(!istype(G, /obj/item/grab) || !G.affecting)
return
if(occupied)
- to_chat(user, "The spike already has something on it, finish collecting its meat first!")
+ to_chat(user, SPAN_DANGER("The spike already has something on it, finish collecting its meat first!"))
else
if(spike(G.affecting))
- visible_message("[user] has forced [G.affecting] onto the spike, killing them instantly!")
+ visible_message(SPAN_DANGER("[user] has forced [G.affecting] onto the spike, killing them instantly!"))
qdel(G.affecting)
qdel(G)
else
- to_chat(user, "They are too big for the spike, try something smaller!")
+ to_chat(user, SPAN_DANGER("They are too big for the spike, try something smaller!"))
/obj/structure/kitchenspike/proc/spike(var/mob/living/victim)
if(!istype(victim))
return
+ cut_overlays()
if(istype(victim, /mob/living/carbon/human))
var/mob/living/carbon/human/H = victim
if(!issmall(H))
return 0
meat_type = H.species.meat_type
- icon_state = "spikebloody"
+ add_overlay(overlay_image(icon, "spikebloody"))
else if(istype(victim, /mob/living/carbon/alien))
var/mob/living/carbon/alien/A = victim
meat_type = A.meat_type
- icon_state = "spikebloodygreen"
+ add_overlay(overlay_image(icon, "spikebloodygreen"))
else
return 0
@@ -60,7 +61,6 @@
icon_state = "spike"
occupied = 0
-
/obj/structure/kitchenspike/CanPass(atom/movable/mover, turf/target, height=0, air_group=0)
if (!mover)
return 1
@@ -74,4 +74,4 @@
else if(mover.checkpass(PASSTABLE))
//Animals can run under them, lots of empty space
return 1
- return ..()
\ No newline at end of file
+ return ..()
diff --git a/code/modules/cooking/machinery/cooking_machines/_appliance.dm b/code/modules/cooking/machinery/cooking_machines/_appliance.dm
index 75dd9e46882..a9dcbd2ca4a 100644
--- a/code/modules/cooking/machinery/cooking_machines/_appliance.dm
+++ b/code/modules/cooking/machinery/cooking_machines/_appliance.dm
@@ -9,7 +9,7 @@
name = "cooker"
desc = DESC_PARENT
desc_info = "Control-click this to change its temperature."
- icon = 'icons/obj/cooking_machines.dmi'
+ icon = 'icons/obj/machinery/cooking_machines.dmi'
var/appliancetype = 0
density = 1
anchored = 1
@@ -46,6 +46,7 @@
var/selected_option
var/list/output_options = list()
var/finish_verb = "pings!"
+ var/place_verb = "into"
var/combine_first = FALSE//If 1, this appliance will do combination cooking before checking recipes
/obj/machinery/appliance/Initialize()
@@ -232,7 +233,8 @@
I.forceMove(src)
cooking_objs.Add(CI)
if (CC.check_contents() == CONTAINER_EMPTY)//If we're just putting an empty container in, then dont start any processing.
- user.visible_message("[user] puts [I] into [src].")
+ user.visible_message("[user] puts [I] [place_verb] [src].")
+ playsound(src, I.drop_sound, DROP_SOUND_VOLUME)
return
else
if (CI && istype(CI))
@@ -245,7 +247,8 @@
CI.combine_target = selected_option
// We can actually start cooking now.
- user.visible_message("[user] puts [I] into [src].")
+ user.visible_message("[user] puts [I] [place_verb] [src].")
+ playsound(src, I.drop_sound, DROP_SOUND_VOLUME)
if(selected_option || length(CI.container.contents) || select_recipe(CI.container || src, appliance = CI.container.appliancetype)) // we're doing combo cooking, we're not just heating reagents, OR we have a valid reagent-only recipe
// this is to stop reagents from burning when you're heating stuff
get_cooking_work(CI)
diff --git a/code/modules/cooking/machinery/cooking_machines/cereal.dm b/code/modules/cooking/machinery/cooking_machines/cereal.dm
index 601e3329bdf..7f1b85b309e 100644
--- a/code/modules/cooking/machinery/cooking_machines/cereal.dm
+++ b/code/modules/cooking/machinery/cooking_machines/cereal.dm
@@ -1,7 +1,7 @@
/obj/machinery/appliance/mixer/cereal
name = "cereal maker"
desc = "Now with Dann O's available!"
- icon = 'icons/obj/cooking_machines.dmi'
+ icon = 'icons/obj/machinery/cooking_machines.dmi'
icon_state = "cereal_off"
cook_type = "cerealized"
on_icon = "cereal_on"
diff --git a/code/modules/cooking/machinery/cooking_machines/container.dm b/code/modules/cooking/machinery/cooking_machines/container.dm
index 1eb2ed6a564..82f3e2bbec6 100644
--- a/code/modules/cooking/machinery/cooking_machines/container.dm
+++ b/code/modules/cooking/machinery/cooking_machines/container.dm
@@ -17,9 +17,27 @@
/obj/item/stack/rods,
/obj/item/organ/internal/brain
)
+ drop_sound = 'sound/items/drop/metal_pot.ogg'
+ pickup_sound = 'sound/items/pickup/metal_pot.ogg'
var/appliancetype // Bitfield, uses the same as appliances
w_class = ITEMSIZE_NORMAL
+/obj/item/reagent_containers/cooking_container/on_reagent_change()
+ . = ..()
+ update_icon()
+
+/obj/item/reagent_containers/cooking_container/pickup(mob/user)
+ . = ..()
+ update_icon()
+
+/obj/item/reagent_containers/cooking_container/dropped(mob/user)
+ . = ..()
+ update_icon()
+
+/obj/item/reagent_containers/cooking_container/attack_hand()
+ . = ..()
+ update_icon()
+
/obj/item/reagent_containers/cooking_container/examine(var/mob/user)
. = ..()
if(length(contents))
@@ -63,6 +81,7 @@
return
I.forceMove(src)
to_chat(user, SPAN_NOTICE("You put [I] [place_verb] [src]."))
+ update_icon()
return
/obj/item/reagent_containers/cooking_container/verb/empty()
@@ -86,6 +105,7 @@
AM.forceMove(get_turf(src))
to_chat(user, SPAN_NOTICE("You remove all the solid items from [src]."))
+ update_icon()
/obj/item/reagent_containers/cooking_container/proc/check_contents()
if (isemptylist(contents))
@@ -151,6 +171,12 @@
if (weights[I])
holder.trans_to(I, weights[I] / total)
+/obj/item/reagent_containers/cooking_container/update_icon()
+ cut_overlays()
+ if(reagents?.total_volume)
+ var/mutable_appearance/filling = mutable_appearance(icon, "[icon_state]_filling_overlay")
+ filling.color = reagents.get_color()
+ add_overlay(filling)
/obj/item/reagent_containers/cooking_container/oven
name = "oven dish"
@@ -161,6 +187,15 @@
volume = 120
appliancetype = OVEN
+/obj/item/reagent_containers/cooking_container/oven/update_icon()
+ cut_overlays()
+ for(var/obj/item/I in contents)
+ var/image/food = overlay_image(I.icon, I.icon_state, I.color)
+ var/matrix/M = matrix()
+ M.Scale(0.5)
+ food.transform = M
+ add_overlay(food)
+
/obj/item/reagent_containers/cooking_container/skillet
name = "skillet"
shortname = "skillet"
@@ -251,8 +286,11 @@
/obj/item/reagent_containers/cooking_container/board
name = "chopping board"
shortname = "board"
+ place_verb = "onto"
desc = "A board for preparing food. Not chopping. I'm sorry."
icon_state = "board"
+ drop_sound = /singleton/sound_category/generic_drop_sound
+ pickup_sound = /singleton/sound_category/generic_pickup_sound
appliancetype = MIX
flags = OPENCONTAINER // Will still react
volume = 15 // for things like jelly sandwiches etc
@@ -301,37 +339,14 @@
QDEL_NULL(temp) //delete buffer object
return ..()
-
-/obj/item/reagent_containers/cooking_container/board/on_reagent_change()
- update_icon()
-
-/obj/item/reagent_containers/cooking_container/board/pickup(mob/user)
- ..()
- update_icon()
-
-/obj/item/reagent_containers/cooking_container/board/dropped(mob/user)
- ..()
- update_icon()
-
-
-/obj/item/reagent_containers/cooking_container/board/attack_hand()
- ..()
- update_icon()
-
-
-/obj/item/reagent_containers/cooking_container/board/do_empty(mob/user)
- ..()
- update_icon()
-
-/obj/item/reagent_containers/cooking_container/board/attackby(obj/item/I, mob/user)
- ..()
- update_icon()
-
/obj/item/reagent_containers/cooking_container/board/update_icon()
- if(length(contents)) // Only if something was actually added.
- icon_state = "[initial(icon_state)]_prep"
- else
- icon_state = initial(icon_state)
+ cut_overlays()
+ for(var/obj/item/I in contents)
+ var/image/food = overlay_image(I.icon, I.icon_state, I.color)
+ var/matrix/M = matrix()
+ M.Scale(0.5)
+ food.transform = M
+ add_overlay(food)
/obj/item/reagent_containers/cooking_container/board/bowl
name = "mixing bowl"
diff --git a/code/modules/cooking/machinery/cooking_machines/fryer.dm b/code/modules/cooking/machinery/cooking_machines/fryer.dm
index a6d28f2b597..1cd3f6ae477 100644
--- a/code/modules/cooking/machinery/cooking_machines/fryer.dm
+++ b/code/modules/cooking/machinery/cooking_machines/fryer.dm
@@ -83,7 +83,7 @@
for(var/obj/item/reagent_containers/cooking_container/CC in contents)
var/image/pan_overlay
if(CC.appliancetype == FRYER)
- pan_overlay = image('icons/obj/cooking_machines.dmi', "basket[Clamp(length(pans)+1, 1, 2)]")
+ pan_overlay = image('icons/obj/machinery/cooking_machines.dmi', "basket[Clamp(length(pans)+1, 1, 2)]")
pan_overlay.color = CC.color
pans += pan_overlay
if(isemptylist(pans))
diff --git a/code/modules/cooking/machinery/cooking_machines/grill.dm b/code/modules/cooking/machinery/cooking_machines/grill.dm
index 39e5a1d1941..a2c000fdeaf 100644
--- a/code/modules/cooking/machinery/cooking_machines/grill.dm
+++ b/code/modules/cooking/machinery/cooking_machines/grill.dm
@@ -77,11 +77,29 @@
var/datum/cooking_item/CI = cooking_objs[1]
var/obj/item/reagent_containers/cooking_container/grill_grate/G = CI.container
if(G)
- add_overlay(image('icons/obj/cooking_machines.dmi', "grill"))
+ add_overlay(image('icons/obj/machinery/cooking_machines.dmi', "grill"))
var/counter = 1
for(var/thing in G.contents)
if(istype(thing, /obj/item/reagent_containers/food/snacks/meat))
- add_overlay(image('icons/obj/cooking_machines.dmi', "meat[counter]"))
+ var/image/food = overlay_image('icons/obj/machinery/cooking_machines.dmi', "meat")
+ switch(counter)
+ if(1)
+ food.pixel_x -= 5
+ if(3)
+ food.pixel_x += 5
+ var/matrix/M = matrix()
+ M.Scale(0.5)
+ food.transform = M
+ add_overlay(food)
else if(istype(thing, /obj/item/reagent_containers/food/snacks/xenomeat))
- add_overlay(image('icons/obj/cooking_machines.dmi', "xenomeat[counter]"))
+ var/image/food = overlay_image('icons/obj/machinery/cooking_machines.dmi', "xenomeat")
+ switch(counter)
+ if(1)
+ food.pixel_x -= 5
+ if(3)
+ food.pixel_x += 5
+ var/matrix/M = matrix()
+ M.Scale(0.5)
+ food.transform = M
+ add_overlay(food)
counter++
diff --git a/code/modules/cooking/machinery/cooking_machines/oven.dm b/code/modules/cooking/machinery/cooking_machines/oven.dm
index 81bb3929ffd..cbcaf65392e 100644
--- a/code/modules/cooking/machinery/cooking_machines/oven.dm
+++ b/code/modules/cooking/machinery/cooking_machines/oven.dm
@@ -56,7 +56,7 @@
icon_state = "ovenopen"
cut_overlays()
if (!stat)
- var/glow = image('icons/obj/cooking_machines.dmi', "oven_on", EFFECTS_ABOVE_LIGHTING_LAYER)
+ var/glow = image('icons/obj/machinery/cooking_machines.dmi', "oven_on", EFFECTS_ABOVE_LIGHTING_LAYER)
add_overlay(glow)
..()
@@ -122,24 +122,6 @@
return
..()
-/obj/machinery/appliance/cooker/oven/small
- name = "compact oven"
- desc = "A lightweight, small oven. Doesn't hold much, but it cooks just fine."
- density = 0
- anchored = 0
- max_contents = 2
- icon_state = "small_ovenopen"
-
-/obj/machinery/appliance/cooker/oven/small/update_icon()
- if (!open)
- icon_state = "small_ovenclosed"
- else
- icon_state = "small_ovenopen"
- cut_overlays()
- if (!stat)
- var/glow = image('icons/obj/cooking_machines.dmi', "smalloven_on", EFFECTS_ABOVE_LIGHTING_LAYER)
- add_overlay(glow)
-
/obj/machinery/appliance/cooker/oven/adhomai
name = "adhomian oven"
desc = "A heavy and rustic adhomian oven. Perfect for a Tajaran grandma"
diff --git a/code/modules/cooking/machinery/cooking_machines/stove.dm b/code/modules/cooking/machinery/cooking_machines/stove.dm
index dfebf61ac87..ba9a88c20ff 100644
--- a/code/modules/cooking/machinery/cooking_machines/stove.dm
+++ b/code/modules/cooking/machinery/cooking_machines/stove.dm
@@ -10,6 +10,7 @@
heating_power = 6000
on_icon = "stove"
off_icon = "stove"
+ place_verb = "onto"
resistance = 5000 // Approx. 2 minutes.
idle_power_usage = 1 KILOWATTS
@@ -27,26 +28,60 @@
/obj/item/reagent_containers/cooking_container/saucepan
)
+ var/list/pan_positions = list(
+ list(-7, 6),
+ list(-7, -3),
+ list(7, 6),
+ list(7, -3)
+ )
+
/obj/machinery/appliance/cooker/stove/update_icon()
. = ..()
cut_overlays()
- if (!stat)
- var/glow = image('icons/obj/cooking_machines.dmi', "stove_burner")
- add_overlay(glow)
var/list/pans = list()
+ var/pan_number = 0
for(var/obj/item/reagent_containers/cooking_container/CC in contents)
- var/image/pan_overlay
+ var/pan_icon_state
+ var/pan_position_number = Clamp((pan_number)+1, 1, 4)
+ var/list/positions = pan_positions[pan_position_number]
switch(CC.appliancetype)
if(SKILLET)
- pan_overlay = image('icons/obj/cooking_machines.dmi', "skillet[Clamp(length(pans)+1, 1, 4)]")
+ pan_icon_state = "skillet"
+ if(pan_position_number >= 3)
+ pan_icon_state = "skillet_flip"
if(SAUCEPAN)
- pan_overlay = image('icons/obj/cooking_machines.dmi', "pan[Clamp(length(pans)+1, 1, 4)]")
+ pan_icon_state = "pan"
+ if(pan_position_number >= 3)
+ pan_icon_state = "pan_flip"
if(POT)
- pan_overlay = image('icons/obj/cooking_machines.dmi', "pot[Clamp(length(pans)+1, 1, 4)]")
+ pan_icon_state = "pot"
else
continue
+ var/mutable_appearance/pan_overlay = mutable_appearance('icons/obj/machinery/cooking_machines.dmi', pan_icon_state)
+ pan_overlay.pixel_x = positions[1]
+ pan_overlay.pixel_y = positions[2]
pan_overlay.color = CC.color
pans += pan_overlay
+ pan_number = pan_position_number
+ //filling
+ if(CC.reagents.total_volume)
+ var/mutable_appearance/filling_overlay = mutable_appearance('icons/obj/machinery/cooking_machines.dmi', "filling_overlay")
+ filling_overlay.pixel_x = positions[1]
+ filling_overlay.pixel_y = positions[2]
+ filling_overlay.color = CC.reagents.get_color()
+ switch(CC.appliancetype)
+ if(SKILLET)
+ filling_overlay.pixel_y -= 3
+ if(SAUCEPAN)
+ filling_overlay.pixel_y -= 2
+ pans += filling_overlay
+ // flame overlay
+ if(!stat)
+ var/mutable_appearance/flame_overlay = mutable_appearance('icons/obj/machinery/cooking_machines.dmi', "stove_flame")
+ flame_overlay.pixel_x = positions[1]
+ flame_overlay.pixel_y = positions[2]
+ flame_overlay.color = "#006eff"
+ pans += flame_overlay
if(isemptylist(pans))
return
add_overlay(pans)
diff --git a/code/modules/cooking/machinery/gibber.dm b/code/modules/cooking/machinery/gibber.dm
index cbbfc0fa3ff..d3743498df2 100644
--- a/code/modules/cooking/machinery/gibber.dm
+++ b/code/modules/cooking/machinery/gibber.dm
@@ -2,7 +2,8 @@
/obj/machinery/gibber
name = "gibber"
desc = "The name isn't descriptive enough?"
- icon = 'icons/obj/kitchen.dmi'
+ desc_extended = "WARNING : Insurance no longer covers entertaining intrusive thoughts. Keep your limbs to yourself."
+ icon = 'icons/obj/machinery/cooking_machines.dmi'
icon_state = "grinder"
density = 1
anchored = TRUE
@@ -16,7 +17,7 @@
idle_power_usage = 2
active_power_usage = 500
-
+
//auto-gibs anything that bumps into it
/obj/machinery/gibber/autogibber
var/turf/input_plate
diff --git a/code/modules/cooking/machinery/icecream.dm b/code/modules/cooking/machinery/icecream.dm
index 248cb6db9a3..27ca7a7390a 100644
--- a/code/modules/cooking/machinery/icecream.dm
+++ b/code/modules/cooking/machinery/icecream.dm
@@ -12,7 +12,7 @@
/obj/machinery/icecream_vat
name = "icecream vat"
desc = "Ding-aling ding dong. Get your SCC-approved ice cream!"
- icon = 'icons/obj/kitchen.dmi'
+ icon = 'icons/obj/machinery/cooking_machines.dmi'
icon_state = "icecream_vat"
density = 1
anchored = 0
diff --git a/code/modules/reagents/Chemistry-Machinery.dm b/code/modules/reagents/Chemistry-Machinery.dm
index 28e5b8cef5d..c3effb435f2 100644
--- a/code/modules/reagents/Chemistry-Machinery.dm
+++ b/code/modules/reagents/Chemistry-Machinery.dm
@@ -325,7 +325,7 @@
/obj/machinery/reagentgrinder
name = "All-In-One Grinder"
- icon = 'icons/obj/kitchen.dmi'
+ icon = 'icons/obj/machinery/cooking_machines.dmi'
icon_state = "juicer1"
layer = 2.99
density = 0
diff --git a/code/modules/reagents/reagent_containers/food/lunch.dm b/code/modules/reagents/reagent_containers/food/lunch.dm
index 10e43ce96b9..c39bda96ff8 100644
--- a/code/modules/reagents/reagent_containers/food/lunch.dm
+++ b/code/modules/reagents/reagent_containers/food/lunch.dm
@@ -109,7 +109,7 @@ var/list/lunchables_vaurca_snack_ = list(
var/list/lunchables_utensil_ = list(
/obj/item/material/kitchen/utensil/fork/chopsticks,
- /obj/item/material/kitchen/utensil/fork/chopsticks/cheap,
+ /obj/item/material/kitchen/utensil/fork/chopsticks/bamboo,
/obj/item/material/kitchen/utensil/fork/plastic,
/obj/item/material/kitchen/utensil/spoon/plastic,
/obj/item/material/kitchen/utensil/knife/plastic
diff --git a/code/modules/reagents/reagent_containers/food/snacks.dm b/code/modules/reagents/reagent_containers/food/snacks.dm
index 970d191dce5..d6e0d0346be 100644
--- a/code/modules/reagents/reagent_containers/food/snacks.dm
+++ b/code/modules/reagents/reagent_containers/food/snacks.dm
@@ -3850,7 +3850,7 @@
set category = "Object"
set src in usr
- var/obj/item/material/kitchen/utensil/fork/chopsticks/cheap/S = new()
+ var/obj/item/material/kitchen/utensil/fork/chopsticks/bamboo/S = new()
if(use_check_and_message(usr))
return
diff --git a/code/modules/reagents/reagent_containers/ladle.dm b/code/modules/reagents/reagent_containers/ladle.dm
index 479346e5cc5..d9bd38c3c15 100644
--- a/code/modules/reagents/reagent_containers/ladle.dm
+++ b/code/modules/reagents/reagent_containers/ladle.dm
@@ -1,6 +1,6 @@
/obj/item/reagent_containers/ladle
name = "ladle"
- desc = "A serving ladle. Holds 30u."
+ desc = "A serving ladle. Soup's on!"
icon = 'icons/obj/kitchen.dmi'
icon_state = "ladle"
amount_per_transfer_from_this = 10
diff --git a/html/changelogs/wezzy_kitchen_resprites.yml b/html/changelogs/wezzy_kitchen_resprites.yml
new file mode 100644
index 00000000000..f2bf99908b7
--- /dev/null
+++ b/html/changelogs/wezzy_kitchen_resprites.yml
@@ -0,0 +1,41 @@
+################################
+# Example Changelog File
+#
+# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb.
+#
+# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.)
+# When it is, any changes listed below will disappear.
+#
+# Valid Prefixes:
+# bugfix
+# wip (For works in progress)
+# tweak
+# soundadd
+# sounddel
+# rscadd (general adding of nice things)
+# rscdel (general deleting of nice things)
+# imageadd
+# imagedel
+# maptweak
+# spellcheck (typo fixes)
+# experiment
+# balance
+# admin
+# backend
+# security
+# refactor
+#################################
+
+# Your name.
+author: Wowzewow (Wezzy)
+
+# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again.
+delete-after: True
+
+# Any changes you've made. See valid prefix list above.
+# INDENT WITH TWO SPACES. NOT TABS. SPACES.
+# SCREW THIS UP AND IT WON'T WORK.
+# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries.
+# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog.
+changes:
+ - imageadd: "New sprites for kitchen utensils, tableware, gibber, ice cream stand, grill, all-in-one grinder and other kitchen equipment"
diff --git a/icons/mob/items/lefthand_kitchen.dmi b/icons/mob/items/lefthand_kitchen.dmi
deleted file mode 100644
index e3dd5a78d3b..00000000000
Binary files a/icons/mob/items/lefthand_kitchen.dmi and /dev/null differ
diff --git a/icons/mob/items/righthand_kitchen.dmi b/icons/mob/items/righthand_kitchen.dmi
deleted file mode 100644
index 24ccb6a2c07..00000000000
Binary files a/icons/mob/items/righthand_kitchen.dmi and /dev/null differ
diff --git a/icons/obj/cooking_machines.dmi b/icons/obj/cooking_machines.dmi
deleted file mode 100644
index 9f1c95f79fb..00000000000
Binary files a/icons/obj/cooking_machines.dmi and /dev/null differ
diff --git a/icons/obj/item/reagent_containers/cooking_container.dmi b/icons/obj/item/reagent_containers/cooking_container.dmi
index dc7065e673b..d07c7e7d051 100644
Binary files a/icons/obj/item/reagent_containers/cooking_container.dmi and b/icons/obj/item/reagent_containers/cooking_container.dmi differ
diff --git a/icons/obj/kitchen.dmi b/icons/obj/kitchen.dmi
index 91efa0faebd..812ae1347a0 100644
Binary files a/icons/obj/kitchen.dmi and b/icons/obj/kitchen.dmi differ
diff --git a/icons/obj/machinery/cooking_machines.dmi b/icons/obj/machinery/cooking_machines.dmi
new file mode 100644
index 00000000000..0e74e5ccc3c
Binary files /dev/null and b/icons/obj/machinery/cooking_machines.dmi differ
diff --git a/maps/random_ruins/exoplanets/adhomai/ala_base.dmm b/maps/random_ruins/exoplanets/adhomai/ala_base.dmm
index a26525b9d46..43d646be2a8 100644
--- a/maps/random_ruins/exoplanets/adhomai/ala_base.dmm
+++ b/maps/random_ruins/exoplanets/adhomai/ala_base.dmm
@@ -371,7 +371,7 @@
/area/ala_base)
"qd" = (
/obj/effect/decal/fake_object{
- icon = 'icons/obj/cooking_machines.dmi';
+ icon = 'icons/obj/machinery/cooking_machines.dmi';
icon_state = "adhomai_stove_on";
name = "water heater";
desc = "A rustic Adhomian heater typically filled with firewood This one is connected to a nearby water tank. Warm enough to gather around the winter."
diff --git a/maps/random_ruins/exoplanets/adhomai/pra_base.dmm b/maps/random_ruins/exoplanets/adhomai/pra_base.dmm
index 05080279e93..4138174b6aa 100644
--- a/maps/random_ruins/exoplanets/adhomai/pra_base.dmm
+++ b/maps/random_ruins/exoplanets/adhomai/pra_base.dmm
@@ -1191,7 +1191,7 @@
/area/pra_base)
"Uc" = (
/obj/effect/decal/fake_object{
- icon = 'icons/obj/cooking_machines.dmi';
+ icon = 'icons/obj/machinery/cooking_machines.dmi';
icon_state = "adhomai_stove_on";
name = "water heater";
desc = "A rustic Adhomian heater typically filled with firewood This one is connected to a nearby water tank. Warm enough to gather around the winter."
diff --git a/maps/random_ruins/exoplanets/asteroid/old_outpost/old_outpost.dmm b/maps/random_ruins/exoplanets/asteroid/old_outpost/old_outpost.dmm
index f9d000ca442..88641b3658b 100644
--- a/maps/random_ruins/exoplanets/asteroid/old_outpost/old_outpost.dmm
+++ b/maps/random_ruins/exoplanets/asteroid/old_outpost/old_outpost.dmm
@@ -1798,8 +1798,8 @@
/obj/item/material/kitchen/utensil/fork,
/obj/item/material/kitchen/utensil/fork,
/obj/item/material/kitchen/utensil/fork,
-/obj/item/material/kitchen/utensil/fork/chopsticks/cheap,
-/obj/item/material/kitchen/utensil/fork/chopsticks/cheap,
+/obj/item/material/kitchen/utensil/fork/chopsticks/bamboo,
+/obj/item/material/kitchen/utensil/fork/chopsticks/bamboo,
/turf/simulated/floor/tiled,
/area/old_outpost/dorms)
"Aa" = (
diff --git a/maps/sccv_horizon/sccv_horizon-1_deck_1.dmm b/maps/sccv_horizon/sccv_horizon-1_deck_1.dmm
index 5370d6da163..c0b8da776d7 100644
--- a/maps/sccv_horizon/sccv_horizon-1_deck_1.dmm
+++ b/maps/sccv_horizon/sccv_horizon-1_deck_1.dmm
@@ -4616,10 +4616,6 @@
/area/shuttle/intrepid/crew_compartment)
"dnX" = (
/obj/structure/table/reinforced,
-/obj/machinery/appliance/cooker/oven/small{
- pixel_x = 6;
- pixel_y = 5
- },
/obj/item/reagent_containers/food/condiment/shaker/salt{
pixel_x = -8;
pixel_y = 9
@@ -4637,6 +4633,10 @@
pixel_y = 5
},
/obj/machinery/alarm/north,
+/obj/item/storage/box/snack{
+ pixel_x = 6;
+ pixel_y = 5
+ },
/turf/simulated/floor/lino,
/area/shuttle/intrepid/crew_compartment)
"dob" = (
diff --git a/sound/items/drop/metal_pot.ogg b/sound/items/drop/metal_pot.ogg
new file mode 100644
index 00000000000..f2f26195560
Binary files /dev/null and b/sound/items/drop/metal_pot.ogg differ
diff --git a/sound/items/pickup/metal_pot.ogg b/sound/items/pickup/metal_pot.ogg
new file mode 100644
index 00000000000..3ddf6c66477
Binary files /dev/null and b/sound/items/pickup/metal_pot.ogg differ