diff --git a/code/modules/mining/mint.dm b/code/modules/mining/mint.dm
index 9be5996894..8204977058 100644
--- a/code/modules/mining/mint.dm
+++ b/code/modules/mining/mint.dm
@@ -6,106 +6,100 @@
icon = 'icons/obj/economy.dmi'
icon_state = "coinpress0"
density = TRUE
- input_dir = EAST
-
- var/produced_coins = 0 // how many coins the machine has made in it's last cycle
+ var/newCoins = 0 //how many coins the machine made in it's last load
var/processing = FALSE
var/chosen = MAT_METAL //which material will be used to make coins
+ var/coinsToProduce = 10
+ speed_process = TRUE
/obj/machinery/mineral/mint/Initialize()
. = ..()
- AddComponent(/datum/component/material_container, list(MAT_METAL, MAT_PLASMA, MAT_SILVER, MAT_GOLD, MAT_URANIUM, MAT_DIAMOND, MAT_BANANIUM), MINERAL_MATERIAL_AMOUNT * 75, FALSE, /obj/item/stack)
+ AddComponent(/datum/component/material_container, list(MAT_METAL, MAT_PLASMA, MAT_SILVER, MAT_GOLD, MAT_URANIUM, MAT_DIAMOND, MAT_BANANIUM), MINERAL_MATERIAL_AMOUNT * 50, FALSE, /obj/item/stack)
/obj/machinery/mineral/mint/process()
var/turf/T = get_step(src, input_dir)
+ if(!T)
+ return
+
var/datum/component/material_container/materials = GetComponent(/datum/component/material_container)
-
- for(var/obj/item/stack/O in T)
- var/inserted = materials.insert_item(O)
- if(inserted)
- qdel(O)
+ for(var/obj/item/stack/sheet/O in T)
+ materials.insert_stack(O, O.amount)
- if(processing)
- var/datum/material/M = chosen
+/obj/machinery/mineral/mint/attack_hand(mob/user)
+ . = ..()
+ if(.)
+ return
+ var/dat = "Coin Press
"
- if(!M)
- processing = FALSE
- icon_state = "coinpress0"
+ var/datum/component/material_container/materials = GetComponent(/datum/component/material_container)
+ for(var/mat_id in materials.materials)
+ var/datum/material/M = materials.materials[mat_id]
+ if(!M.amount && chosen != mat_id)
+ continue
+ dat += "
[M.name] amount: [M.amount] cm3 "
+ if (chosen == mat_id)
+ dat += "Chosen"
+ else
+ dat += "Choose"
+
+ var/datum/material/M = materials.materials[chosen]
+
+ dat += "
Will produce [coinsToProduce] [lowertext(M.name)] coins if enough materials are available.
"
+ dat += "-10 "
+ dat += "-5 "
+ dat += "-1 "
+ dat += "+1 "
+ dat += "+5 "
+ dat += "+10 "
+
+ dat += "
In total this machine produced [newCoins] coins."
+ dat += "
Make coins"
+ user << browse(dat, "window=mint")
+
+/obj/machinery/mineral/mint/Topic(href, href_list)
+ if(..())
+ return
+ usr.set_machine(src)
+ src.add_fingerprint(usr)
+ if(processing==1)
+ to_chat(usr, "The machine is processing.")
+ return
+ var/datum/component/material_container/materials = GetComponent(/datum/component/material_container)
+ if(href_list["choose"])
+ if(materials.materials[href_list["choose"]])
+ chosen = href_list["choose"]
+ if(href_list["chooseAmt"])
+ coinsToProduce = CLAMP(coinsToProduce + text2num(href_list["chooseAmt"]), 0, 1000)
+ if(href_list["makeCoins"])
+ var/temp_coins = coinsToProduce
+ processing = TRUE
+ icon_state = "coinpress1"
+ var/coin_mat = MINERAL_MATERIAL_AMOUNT * 0.2
+ var/datum/material/M = materials.materials[chosen]
+ if(!M || !M.coin_type)
+ updateUsrDialog()
return
- icon_state = "coinpress1"
- var/coin_mat = MINERAL_MATERIAL_AMOUNT
+ while(coinsToProduce > 0 && materials.use_amount_type(coin_mat, chosen))
+ create_coins(M.coin_type)
+ coinsToProduce--
+ newCoins++
+ src.updateUsrDialog()
+ sleep(5)
- for(var/sheets in 1 to 2)
- if(materials.use_amount_type(coin_mat, chosen))
- for(var/coin_to_make in 1 to 5)
- create_coins()
- produced_coins++
- else
- var/found_new = FALSE
- for(var/datum/material/inserted_material in materials.materials)
- var/amount = materials.get_item_material_amount(inserted_material)
-
- if(amount)
- chosen = inserted_material
- found_new = TRUE
-
- if(!found_new)
- processing = FALSE
- else
icon_state = "coinpress0"
+ processing = FALSE
+ coinsToProduce = temp_coins
+ src.updateUsrDialog()
+ return
-/obj/machinery/mineral/mint/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = FALSE, \
- datum/tgui/master_ui = null, datum/ui_state/state = GLOB.default_state)
- ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open)
- if(!ui)
- ui = new(user, src, ui_key, "mint", name, 300, 250, master_ui, state)
- ui.open()
-
-/obj/machinery/mineral/mint/ui_data()
- var/list/data = list()
- var/datum/component/material_container/materials = GetComponent(/datum/component/material_container)
-
- for(var/datum/material/inserted_material in materials.materials)
- var/amount = materials.get_item_material_amount(inserted_material)
-
- if(!amount)
- continue
-
- data["inserted_materials"] += list(list(
- "material" = inserted_material.name,
- "amount" = amount
- ))
-
- if(chosen == inserted_material)
- data["chosen_material"] = inserted_material.name
-
- data["produced_coins"] = produced_coins
- data["processing"] = processing
-
- return data;
-
-/obj/machinery/mineral/mint/ui_act(action, params, datum/tgui/ui)
- switch(action)
- if("startpress")
- if(!processing)
- produced_coins = 0
- processing = TRUE
- if("stoppress")
- processing = FALSE
- if("changematerial")
- var/datum/component/material_container/materials = GetComponent(/datum/component/material_container)
- for(var/datum/material/mat in materials.materials)
- if(params["material_name"] == mat.name)
- chosen = mat
-
-/obj/machinery/mineral/mint/proc/create_coins()
- var/turf/T = get_step(src, output_dir)
+/obj/machinery/mineral/mint/proc/create_coins(P)
+ var/turf/T = get_step(src,output_dir)
if(T)
- var/obj/item/O = new /obj/item/coin(src)
- var/obj/item/storage/bag/money/B = locate(/obj/item/storage/bag/money, T)
- if(!B)
- B = new /obj/item/storage/bag/money(src)
- unload_mineral(B)
- O.forceMove(B)
\ No newline at end of file
+ var/obj/item/O = new P(src)
+ var/obj/item/storage/bag/money/M = locate(/obj/item/storage/bag/money, T)
+ if(!M)
+ M = new /obj/item/storage/bag/money(src)
+ unload_mineral(M)
+ O.forceMove(M)
diff --git a/tgui-next/packages/tgui/interfaces/Mint.js b/tgui-next/packages/tgui/interfaces/Mint.js
deleted file mode 100644
index 6c715bc5da..0000000000
--- a/tgui-next/packages/tgui/interfaces/Mint.js
+++ /dev/null
@@ -1,47 +0,0 @@
-import { Fragment } from 'inferno';
-import { useBackend } from '../backend';
-import { Button, LabeledList, Section } from '../components';
-
-export const Mint = props => {
- const { act, data } = useBackend(props);
- const inserted_materials = data.inserted_materials || [];
- return (
-
- act(data.processing
- ? 'stoppress'
- : 'startpress')}
- />
- }>
-
- {inserted_materials.map(material => (
- act('changematerial', {
- material_name: material.material,
- })} />
- )}>
- {material.amount} cm³
-
- ))}
-
-
-
- Pressed {data.produced_coins} coins this cycle.
-
-
- );
-};