diff --git a/code/game/machinery/kitchen/microwave.dm b/code/game/machinery/kitchen/microwave.dm
index f4611b9042db..220772e98b17 100644
--- a/code/game/machinery/kitchen/microwave.dm
+++ b/code/game/machinery/kitchen/microwave.dm
@@ -139,7 +139,6 @@
if (!(R.id in acceptable_reagents))
to_chat(user, SPAN_DANGER("Your [O] contains components unsuitable for cookery."))
return 1
- //G.reagents.trans_to(src,G.amount_per_transfer_from_this)
else if(istype(O,/obj/item/grab))
return 1
else
@@ -152,74 +151,78 @@
/obj/structure/machinery/microwave/attack_hand(mob/user as mob)
user.set_interaction(src)
- interact(user)
+ tgui_interact(user)
+
+/obj/structure/machinery/microwave/tgui_interact(mob/user, datum/tgui/ui)
+ ui = SStgui.try_update_ui(user, src, ui)
+ if (!ui)
+ ui = new(user, src, "Microwave", "Microwave Controls")
+ ui.open()
//*******************
//* Microwave Menu
//********************/
-
-/obj/structure/machinery/microwave/interact(mob/user as mob) // The microwave Menu
- var/dat = ""
- if(src.broken > 0)
- dat = {"Bzzzzttttt"}
- else if(src.operating)
- dat = {"Microwaving in progress!
Please wait...!"}
- else if(src.dirty==100)
- dat = {"This microwave is dirty!
Please clean it before use!"}
- else
- var/list/items_counts = new
- var/list/items_measures = new
- var/list/items_measures_p = new
- for (var/obj/O in contents)
- var/display_name = O.name
- if (istype(O,/obj/item/reagent_container/food/snacks/egg))
- items_measures[display_name] = "egg"
- items_measures_p[display_name] = "eggs"
- if (istype(O,/obj/item/reagent_container/food/snacks/tofu))
- items_measures[display_name] = "tofu chunk"
- items_measures_p[display_name] = "tofu chunks"
- if (istype(O,/obj/item/reagent_container/food/snacks/meat)) //any meat
- items_measures[display_name] = "slab of meat"
- items_measures_p[display_name] = "slabs of meat"
- if (istype(O,/obj/item/reagent_container/food/snacks/donkpocket))
- display_name = "Turnovers"
- items_measures[display_name] = "turnover"
- items_measures_p[display_name] = "turnovers"
- if (istype(O,/obj/item/reagent_container/food/snacks/carpmeat))
- items_measures[display_name] = "fillet of meat"
- items_measures_p[display_name] = "fillets of meat"
- items_counts[display_name]++
- for (var/O in items_counts)
- var/N = items_counts[O]
- if (!(O in items_measures))
- dat += {"[capitalize(O)]: [N] [lowertext(O)]\s
"}
- else
- if (N==1)
- dat += {"[capitalize(O)]: [N] [items_measures[O]]
"}
- else
- dat += {"[capitalize(O)]: [N] [items_measures_p[O]]
"}
-
- for (var/datum/reagent/R in reagents.reagent_list)
- var/display_name = R.name
- if (R.id == "hotsauce")
- display_name = "Hotsauce"
- if (R.id == "frostoil")
- display_name = "Coldsauce"
- dat += {"[display_name]: [R.volume] unit\s
"}
-
- if (items_counts.len==0 && reagents.reagent_list.len==0)
- dat = {"The microwave is empty
"}
+/obj/structure/machinery/microwave/ui_data(mob/user)
+ var/list/data = list()
+
+ data["operating"] = operating
+ data["broken"] = (broken > 0)
+ data["dirty"] = (dirty == 100)
+
+ var/list/ingredients = list()
+ var/list/items_counts = list()
+ var/list/items_measures = list()
+ var/list/items_measures_p = list()
+
+ for (var/obj/contents_item as anything in contents)
+ var/display_name = contents_item.name
+
+ if (istype(contents_item, /obj/item/reagent_container/food/snacks/tofu))
+ items_measures[display_name] = "tofu chunk"
+ items_measures_p[display_name] = "tofu chunks"
+ if (istype(contents_item, /obj/item/reagent_container/food/snacks/meat)) //any meat
+ items_measures[display_name] = "slab of meat"
+ items_measures_p[display_name] = "slabs of meat"
+ if (istype(contents_item, /obj/item/reagent_container/food/snacks/donkpocket))
+ display_name = "Turnovers"
+ items_measures[display_name] = "turnover"
+ items_measures_p[display_name] = "turnovers"
+ if (istype(contents_item, /obj/item/reagent_container/food/snacks/carpmeat))
+ items_measures[display_name] = "fillet of meat"
+ items_measures_p[display_name] = "fillets of meat"
+ items_counts[display_name]++
+
+ for (var/contents_item in items_counts)
+ var/list/item = list()
+
+ item["name"] = capitalize(contents_item)
+ item["count"] = items_counts[contents_item]
+
+ if (!(contents_item in items_measures))
+ item["measure"] = "[lowertext(contents_item)][items_counts[contents_item] > 1 ? "s" : ""]" // Adds 's' for plurals.
+ else if (items_counts[contents_item] == 1)
+ item["measure"] = items_measures[contents_item]
else
- dat = {"Ingredients:
[dat]"}
- dat += {"