diff --git a/_maps/map_files/Delta/delta.dmm b/_maps/map_files/Delta/delta.dmm
index 93815774e61..f4202c2aea3 100644
--- a/_maps/map_files/Delta/delta.dmm
+++ b/_maps/map_files/Delta/delta.dmm
@@ -33633,7 +33633,7 @@
dir = 4;
level = 1
},
-/obj/machinery/icecream_vat,
+/obj/machinery/icemachine,
/obj/effect/decal/warning_stripes/yellow,
/turf/simulated/floor/plasteel,
/area/crew_quarters/kitchen)
diff --git a/_maps/map_files/MetaStation/MetaStation.v41A.II.dmm b/_maps/map_files/MetaStation/MetaStation.v41A.II.dmm
index f7eda3fe8ee..f8ee23f3f7e 100644
--- a/_maps/map_files/MetaStation/MetaStation.v41A.II.dmm
+++ b/_maps/map_files/MetaStation/MetaStation.v41A.II.dmm
@@ -58653,7 +58653,7 @@
},
/area/crew_quarters/kitchen)
"bXn" = (
-/obj/machinery/icecream_vat,
+/obj/machinery/icemachine,
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
dir = 10
},
diff --git a/_maps/map_files/RandomZLevels/centcomAway.dmm b/_maps/map_files/RandomZLevels/centcomAway.dmm
index 84515f06d49..1614171fabd 100644
--- a/_maps/map_files/RandomZLevels/centcomAway.dmm
+++ b/_maps/map_files/RandomZLevels/centcomAway.dmm
@@ -6142,7 +6142,7 @@
},
/area/awaymission/centcomAway/thunderdome)
"oN" = (
-/obj/machinery/icecream_vat,
+/obj/machinery/icemachine,
/turf/simulated/floor/plasteel{
tag = "icon-barber (WEST)";
icon_state = "barber";
diff --git a/code/modules/food_and_drinks/food/foods/desserts.dm b/code/modules/food_and_drinks/food/foods/desserts.dm
index 9e8ded0bd1b..67034e164ce 100644
--- a/code/modules/food_and_drinks/food/foods/desserts.dm
+++ b/code/modules/food_and_drinks/food/foods/desserts.dm
@@ -17,10 +17,10 @@
update_icon()
/obj/item/reagent_containers/food/snacks/icecream/update_icon()
- overlays.Cut()
- var/image/filling = image('icons/obj/kitchen.dmi', src, "icecream_color")
- filling.icon += mix_color_from_reagents(reagents.reagent_list)
- overlays += filling
+ cut_overlays()
+ var/mutable_appearance/filling = mutable_appearance('icons/obj/kitchen.dmi', "icecream_color")
+ filling.color = mix_color_from_reagents(reagents.reagent_list)
+ add_overlay(filling)
/obj/item/reagent_containers/food/snacks/icecream/icecreamcone
name = "ice cream cone"
diff --git a/code/modules/food_and_drinks/kitchen_machinery/icecream_vat.dm b/code/modules/food_and_drinks/kitchen_machinery/icecream_vat.dm
index 69eda1e4269..0e9ecbaa7e4 100644
--- a/code/modules/food_and_drinks/kitchen_machinery/icecream_vat.dm
+++ b/code/modules/food_and_drinks/kitchen_machinery/icecream_vat.dm
@@ -43,10 +43,9 @@
return
if(istype(I, /obj/item/reagent_containers/food/snacks/icecream))
if(!I.reagents.has_reagent("sprinkles"))
- if(I.reagents.total_volume > 29) I.reagents.remove_any(1)
- I.reagents.add_reagent("sprinkles",1)
- var/image/sprinkles = image('icons/obj/kitchen.dmi', src, "sprinkles")
- I.overlays += sprinkles
+ if(I.reagents.total_volume > 29)
+ I.reagents.remove_any(1)
+ I.reagents.add_reagent("sprinkles", 1)
I.name += " with sprinkles"
I.desc += ". This also has sprinkles."
else
diff --git a/code/modules/food_and_drinks/kitchen_machinery/icecream_vat_2.dm b/code/modules/food_and_drinks/kitchen_machinery/icecream_vat_2.dm
deleted file mode 100644
index c1602a14251..00000000000
--- a/code/modules/food_and_drinks/kitchen_machinery/icecream_vat_2.dm
+++ /dev/null
@@ -1,256 +0,0 @@
-#define ICECREAM_VANILLA 1
-#define FLAVOUR_CHOCOLATE 2
-#define FLAVOUR_STRAWBERRY 3
-#define FLAVOUR_BLUE 4
-#define CONE_WAFFLE 5
-#define CONE_CHOC 6
-#define INGR_MILK 7
-#define INGR_FLOUR 8
-#define INGR_SUGAR 9
-#define INGR_ICE 10
-#define MUCK 11
-
-GLOBAL_LIST_INIT(ingredients_source, list(
-"berryjuice" = FLAVOUR_STRAWBERRY,\
-"cocoa" = FLAVOUR_CHOCOLATE,\
-"singulo" = FLAVOUR_BLUE,\
-"milk" = INGR_MILK,\
-"soymilk" = INGR_MILK,\
-"ice" = INGR_ICE,\
-"flour" = INGR_FLOUR,\
-"sugar" = INGR_SUGAR,\
-))
-
-/proc/get_icecream_flavour_string(var/flavour_type)
- switch(flavour_type)
- if(FLAVOUR_CHOCOLATE)
- return "chocolate"
- if(FLAVOUR_STRAWBERRY)
- return "strawberry"
- if(FLAVOUR_BLUE)
- return "blue"
- if(CONE_WAFFLE)
- return "waffle"
- if(CONE_CHOC)
- return "chocolate"
- if(INGR_MILK)
- return "milk"
- if(INGR_FLOUR)
- return "flour"
- if(INGR_SUGAR)
- return "sugar"
- if(INGR_ICE)
- return "ice"
- if(MUCK)
- return "muck"
- else
- return "vanilla"
-
-/obj/machinery/icecream_vat
- name = "icecream vat"
- desc = "Ding-aling ding dong. Get your Nanotrasen-approved ice cream!"
- icon = 'icons/obj/kitchen.dmi'
- icon_state = "icecream_vat"
- density = 1
- anchored = 0
- max_integrity = 300
- var/list/ingredients = list()
- var/dispense_flavour = 1
- var/obj/item/reagent_containers/glass/held_container
-
-/obj/machinery/icecream_vat/New()
- ..()
- create_reagents(50)
- while(ingredients.len < 11)
- ingredients.Add(5)
-
-/obj/machinery/icecream_vat/attack_hand(mob/user)
- user.set_machine(src)
- interact(user)
-
-/obj/machinery/icecream_vat/interact(mob/user)
- var/dat
- dat += "Dispense vanilla icecream There is [ingredients[ICECREAM_VANILLA]] scoops of vanilla icecream left (made from milk and ice).
"
- dat += "Dispense strawberry icecream There is [ingredients[FLAVOUR_STRAWBERRY]] dollops of strawberry flavouring left (obtained from berry juice.
"
- dat += "Dispense chocolate icecream There is [ingredients[FLAVOUR_CHOCOLATE]] dollops of chocolate flavouring left (obtained from cocoa powder).
"
- dat += "Dispense blue icecream There is [ingredients[FLAVOUR_BLUE]] dollops of blue flavouring left (obtained from bluespace tomato singulo).
"
- dat += "
"
- dat += "Dispense waffle cones There are [ingredients[CONE_WAFFLE]] waffle cones left.
"
- dat += "Dispense chocolate cones There are [ingredients[CONE_CHOC]] chocolate cones left.
"
- dat += "
"
- dat += "Make waffle cones There is [ingredients[INGR_FLOUR]]/[ingredients[INGR_SUGAR]] of flour and sugar left.
"
- dat += "Make chocolate cones There is [ingredients[FLAVOUR_CHOCOLATE]]/[ingredients[CONE_WAFFLE]] of chocolate flavouring and waffle cones left.
"
- dat += "Make vanilla icecream There is [ingredients[INGR_MILK]]/[ingredients[INGR_ICE]] of milk and ice left.
"
- dat += "
"
- if(held_container)
- dat += "Eject [held_container] "
- else
- dat += "No beaker inserted. "
- dat += "Refresh Close"
-
- var/datum/browser/popup = new(user, "icecreamvat", name, 600, 400)
- popup.set_content(dat)
- popup.open(0)
-
-/obj/machinery/icecream_vat/attackby(obj/item/O, mob/user, params)
- if(istype(O, /obj/item/reagent_containers))
- if(istype(O, /obj/item/reagent_containers/food/snacks/icecream))
- var/obj/item/reagent_containers/food/snacks/icecream/I = O
- if(!I.ice_creamed)
- if(ingredients[ICECREAM_VANILLA] > 0)
- var/flavour_name = get_icecream_flavour_string(dispense_flavour)
- if(dispense_flavour < 11 && ingredients[dispense_flavour] > 0)
- visible_message("[bicon(src)] [user] scoops delicious [flavour_name] flavoured icecream into [I].")
- ingredients[dispense_flavour] -= 1
- ingredients[ICECREAM_VANILLA] -= 1
-
- I.add_ice_cream(dispense_flavour)
- if(held_container)
- held_container.reagents.trans_to(I, 10)
- if(I.reagents.total_volume < 10)
- I.reagents.add_reagent("sugar", 10 - I.reagents.total_volume)
- else
- to_chat(user, "There is not enough [flavour_name] flavouring left! Insert more of the required ingredients.")
- else
- to_chat(user, "There is not enough icecream left! Insert more milk and ice.")
- else
- to_chat(user, "[O] already has icecream in it.")
- else if(istype(O, /obj/item/reagent_containers/glass))
- if(held_container)
- to_chat(user, "You must remove [held_container] from [src] first.")
- else
- if(!user.drop_item())
- to_chat(user, "\The [O] is stuck to your hand!")
- return
- O.forceMove(src)
- to_chat(user, "You insert [O] into [src].")
- held_container = O
- else
- var/obj/item/reagent_containers/R = O
- if(R.reagents)
- visible_message("[user] has emptied all of [R] into [src].")
- for(var/datum/reagent/current_reagent in R.reagents.reagent_list)
- if(GLOB.ingredients_source[current_reagent.id])
- add(GLOB.ingredients_source[current_reagent.id], current_reagent.volume / 2)
- else
- add(MUCK, current_reagent.volume / 5)
- R.reagents.clear_reagents()
- return 1
- else
- return ..()
-
-/obj/machinery/icecream_vat/proc/add(var/add_type, var/amount)
- if(add_type <= ingredients.len)
- ingredients[add_type] += amount
- updateDialog()
-
-/obj/machinery/icecream_vat/proc/make(var/mob/user, var/make_type)
- switch(make_type)
- if(CONE_WAFFLE)
- if(ingredients[INGR_FLOUR] > 0 && ingredients[INGR_SUGAR] > 0)
- var/amount = max( min(ingredients[INGR_FLOUR], ingredients[INGR_SUGAR]), 5)
- ingredients[INGR_FLOUR] -= amount
- ingredients[INGR_SUGAR] -= amount
- ingredients[CONE_WAFFLE] += amount
- visible_message("[user] cooks up some waffle cones.")
- else
- to_chat(user, "You require sugar and flour to make waffle cones.")
- if(CONE_CHOC)
- if(ingredients[FLAVOUR_CHOCOLATE] > 0 && ingredients[CONE_WAFFLE] > 0)
- var/amount = min(ingredients[CONE_WAFFLE], ingredients[FLAVOUR_CHOCOLATE])
- ingredients[CONE_WAFFLE] -= amount
- ingredients[FLAVOUR_CHOCOLATE] -= amount
- ingredients[CONE_CHOC] += amount
- visible_message("[user] cooks up some chocolate cones.")
- else
- to_chat(user, "You require waffle cones and chocolate flavouring to make chocolate cones.")
- if(ICECREAM_VANILLA)
- if(ingredients[INGR_ICE] > 0 && ingredients[INGR_MILK] > 0)
- var/amount = min(ingredients[INGR_ICE], ingredients[INGR_MILK])
- ingredients[INGR_ICE] -= amount
- ingredients[INGR_MILK] -= amount
- ingredients[ICECREAM_VANILLA] += amount
- visible_message("[user] whips up some vanilla icecream.")
- else
- to_chat(user, "You require milk and ice to make vanilla icecream.")
- updateDialog()
-
-/obj/machinery/icecream_vat/Topic(href, href_list)
- if(..())
- return
- if(href_list["dispense"])
- dispense_flavour = text2num(href_list["dispense"])
- visible_message("[usr] sets [src] to dispense [get_icecream_flavour_string(dispense_flavour)] flavoured icecream.")
-
- if(href_list["cone"])
- var/dispense_cone = text2num(href_list["cone"])
- if(ingredients[dispense_cone] <= ingredients.len)
- var/cone_name = get_icecream_flavour_string(dispense_cone)
- if(ingredients[dispense_cone] >= 1)
- ingredients[dispense_cone] -= 1
- var/obj/item/reagent_containers/food/snacks/icecream/I = new(loc)
- I.cone_type = cone_name
- I.icon_state = "icecream_cone_[cone_name]"
- I.desc = "Delicious [cone_name] cone, but no ice cream."
- visible_message("[usr] dispenses a crunchy [cone_name] cone from [src].")
- else
- to_chat(usr, "There are no [cone_name] cones left!")
- updateDialog()
-
- if(href_list["make"])
- make( usr, text2num(href_list["make"]) )
- updateDialog()
-
- if(href_list["eject"])
- if(held_container)
- held_container.forceMove(loc)
- held_container = null
- updateDialog()
-
- if(href_list["refresh"])
- updateDialog()
-
- if(href_list["close"])
- usr.unset_machine()
- usr << browse(null,"window=icecreamvat")
- return
-
-/obj/machinery/icecream_vat/deconstruct(disassembled = TRUE)
- if(!(flags & NODECONSTRUCT))
- new /obj/item/stack/sheet/metal(loc, 4)
- qdel(src)
-
-
-/obj/item/reagent_containers/food/snacks/icecream
- name = "ice cream cone"
- desc = "Delicious waffle cone, but no ice cream."
- icon = 'icons/obj/kitchen.dmi'
- icon_state = "icecream_cone"
- layer = 3.1
- var/ice_creamed = 0
- var/cone_type
- bitesize = 3
-
-/obj/item/reagent_containers/food/snacks/icecream/New()
- ..()
- create_reagents(20)
- reagents.add_reagent("nutriment", 5)
-
-/obj/item/reagent_containers/food/snacks/icecream/proc/add_ice_cream(var/flavour)
- var/flavour_name = get_icecream_flavour_string(flavour)
- name = "[flavour_name] icecream"
- overlays += "icecream_[flavour_name]"
- desc = "Delicious [cone_type] cone with a dollop of [flavour_name] ice cream."
- ice_creamed = 1
-
-#undef ICECREAM_VANILLA
-#undef FLAVOUR_CHOCOLATE
-#undef FLAVOUR_STRAWBERRY
-#undef FLAVOUR_BLUE
-#undef CONE_WAFFLE
-#undef CONE_CHOC
-#undef INGR_MILK
-#undef INGR_FLOUR
-#undef INGR_SUGAR
-#undef INGR_ICE
-#undef MUCK
diff --git a/icons/obj/kitchen.dmi b/icons/obj/kitchen.dmi
index 0e9ee4649ac..40a8d2f7452 100644
Binary files a/icons/obj/kitchen.dmi and b/icons/obj/kitchen.dmi differ
diff --git a/paradise.dme b/paradise.dme
index 21029f96bfc..f7740ff7334 100644
--- a/paradise.dme
+++ b/paradise.dme
@@ -1570,7 +1570,6 @@
#include "code\modules\food_and_drinks\kitchen_machinery\gibber.dm"
#include "code\modules\food_and_drinks\kitchen_machinery\grill_new.dm"
#include "code\modules\food_and_drinks\kitchen_machinery\icecream_vat.dm"
-#include "code\modules\food_and_drinks\kitchen_machinery\icecream_vat_2.dm"
#include "code\modules\food_and_drinks\kitchen_machinery\juicer.dm"
#include "code\modules\food_and_drinks\kitchen_machinery\kitchen_machine.dm"
#include "code\modules\food_and_drinks\kitchen_machinery\microwave.dm"