diff --git a/code/modules/mining/machine_processing.dm b/code/modules/mining/machine_processing.dm
index 9e05c1caa1d..8c3cc49e43c 100644
--- a/code/modules/mining/machine_processing.dm
+++ b/code/modules/mining/machine_processing.dm
@@ -17,7 +17,6 @@
var/obj/machinery/mineral/processing_unit/machine
var/show_all_ores = TRUE
var/points = 0
- var/datum/weakref/scanned_id
var/list/ore/input_mats = list()
var/list/material/output_mats = list()
@@ -71,32 +70,10 @@
/obj/machinery/mineral/processing_unit_console/attack_hand(mob/user)
add_fingerprint(user)
- if(!scanned_id)
- get_user_id(user)
- else
- var/obj/item/card/id/ID = scanned_id.resolve()
- if(!ID)
- scanned_id = null
- get_user_id(user)
- else
- var/turf/id_turf = get_turf(user)
- if(id_turf && !id_turf.Adjacent(loc))
- scanned_id = null
- get_user_id(user)
if(!setup_machine(user))
return
ui_interact(user)
-/obj/machinery/mineral/processing_unit_console/proc/get_user_id(var/mob/user)
- if(isDrone(user))
- var/mob/living/silicon/robot/drone/D = user
- if(D.standard_drone)
- return
- if(!scanned_id)
- var/obj/item/card/id/ID = user.GetIdCard()
- if(ID)
- scanned_id = WEAKREF(ID)
-
/obj/machinery/mineral/processing_unit_console/ui_interact(mob/user, datum/tgui/ui)
ui = SStgui.try_update_ui(user, src, ui)
if(!ui)
@@ -106,7 +83,7 @@
/obj/machinery/mineral/processing_unit_console/ui_data(mob/user)
var/list/data = list()
- var/obj/item/card/id/ID = scanned_id?.resolve()
+ var/obj/item/card/id/ID = user.GetIdCard()
if(ID)
data["hasId"] = TRUE
data["miningPoints"] = ID.mining_points ? ID.mining_points : 0
@@ -143,7 +120,7 @@
return TRUE
if(action == "choice")
- var/obj/item/card/id/ID = scanned_id.resolve()
+ var/obj/item/card/id/ID = usr.GetIdCard()
if(ID)
if(params["choice"] == "claim")
if(access_mining_station in ID.access)
@@ -161,10 +138,6 @@
print_report(usr)
else
to_chat(usr, SPAN_WARNING("Required access not found."))
- else if(params["choice"] == "scan")
- var/obj/item/card/id/I = usr.get_active_hand()
- if(istype(I))
- scanned_id = WEAKREF(I)
return TRUE
if(action == "toggle_smelting")
@@ -200,9 +173,9 @@
return TRUE
/obj/machinery/mineral/processing_unit_console/proc/print_report(var/mob/living/user)
- var/obj/item/card/id/ID = scanned_id.resolve()
+ var/obj/item/card/id/ID = user.GetIdCard()
if(!ID)
- to_chat(user, SPAN_WARNING("No ID inserted. Cannot digitally sign."))
+ to_chat(user, SPAN_WARNING("No ID detected. Cannot digitally sign."))
return
if(!input_mats.len && !output_mats.len && !alloy_mats)
to_chat(user, SPAN_WARNING("There is no data to print."))
diff --git a/code/modules/mining/machine_vending.dm b/code/modules/mining/machine_vending.dm
index f426adb9105..ce1d66b2e76 100644
--- a/code/modules/mining/machine_vending.dm
+++ b/code/modules/mining/machine_vending.dm
@@ -68,7 +68,6 @@ var/global/list/minevendor_list = list( //keep in order of price
icon_state = "mining"
density = TRUE
anchored = TRUE
- var/datum/weakref/scanned_id
/datum/data/mining_equipment
var/equipment_name = "generic"
@@ -105,30 +104,8 @@ var/global/list/minevendor_list = list( //keep in order of price
/obj/machinery/mineral/equipment_vendor/attack_hand(mob/user)
if(..())
return
- if(!scanned_id)
- get_user_id(user)
- else
- var/obj/item/card/id/ID = scanned_id.resolve()
- if(!ID)
- scanned_id = null
- get_user_id(user)
- else
- var/turf/id_turf = get_turf(ID)
- if(!id_turf.Adjacent(loc))
- scanned_id = null
- get_user_id(user)
ui_interact(user)
-/obj/machinery/mineral/equipment_vendor/proc/get_user_id(var/mob/user)
- if(isDrone(user))
- var/mob/living/silicon/robot/drone/D = user
- if(D.standard_drone)
- return
- if(!scanned_id)
- var/obj/item/card/id/ID = user.GetIdCard()
- if(ID)
- scanned_id = WEAKREF(ID)
-
/obj/machinery/mineral/equipment_vendor/ui_interact(mob/user, datum/tgui/ui)
ui = SStgui.try_update_ui(user, src, ui)
if(!ui)
@@ -138,7 +115,7 @@ var/global/list/minevendor_list = list( //keep in order of price
/obj/machinery/mineral/equipment_vendor/ui_data(mob/user)
var/list/data = list()
- var/obj/item/card/id/ID = scanned_id?.resolve()
+ var/obj/item/card/id/ID = user.GetIdCard()
if(ID)
data["hasId"] = TRUE
data["miningPoints"] = ID.mining_points ? ID.mining_points : 0
@@ -155,15 +132,8 @@ var/global/list/minevendor_list = list( //keep in order of price
if(.)
return
- if(action == "choice")
- if(params["choice"] == "scan")
- var/obj/item/card/id/I = usr.get_active_hand()
- if(istype(I))
- scanned_id = WEAKREF(I)
- return TRUE
-
if(action == "purchase")
- var/obj/item/card/id/ID = scanned_id.resolve()
+ var/obj/item/card/id/ID = usr.GetIdCard()
if(ID)
var/datum/data/mining_equipment/prize = locate(params["purchase"])
if(!prize || !(prize in minevendor_list))
diff --git a/html/changelogs/geeves-mining_machine_id_tweak.yml b/html/changelogs/geeves-mining_machine_id_tweak.yml
new file mode 100644
index 00000000000..c523a43ae99
--- /dev/null
+++ b/html/changelogs/geeves-mining_machine_id_tweak.yml
@@ -0,0 +1,6 @@
+author: Geeves
+
+delete-after: True
+
+changes:
+ - bugfix: "Mining machines now correctly give or subtract the points from the user's ID."
diff --git a/tgui/packages/tgui/interfaces/MiningProcessor.tsx b/tgui/packages/tgui/interfaces/MiningProcessor.tsx
index 0617c4fc654..62ff5e514c4 100644
--- a/tgui/packages/tgui/interfaces/MiningProcessor.tsx
+++ b/tgui/packages/tgui/interfaces/MiningProcessor.tsx
@@ -45,11 +45,6 @@ export const MiningProcessor = (props, context) => {
) : (
No ID detected.
-
)}
diff --git a/tgui/packages/tgui/interfaces/MiningVendor.tsx b/tgui/packages/tgui/interfaces/MiningVendor.tsx
index 50ea754641a..10966eed0ae 100644
--- a/tgui/packages/tgui/interfaces/MiningVendor.tsx
+++ b/tgui/packages/tgui/interfaces/MiningVendor.tsx
@@ -29,11 +29,6 @@ export const MiningVendor = (props, context) => {
) : (
No ID detected.
-
)}