From 745fe098a7096b01d34946722456fd8fef8d1408 Mon Sep 17 00:00:00 2001 From: Geeves Date: Sun, 1 Oct 2023 13:59:43 +0200 Subject: [PATCH] Mining Machine ID Fix (#17490) --- code/modules/mining/machine_processing.dm | 35 +++---------------- code/modules/mining/machine_vending.dm | 34 ++---------------- .../geeves-mining_machine_id_tweak.yml | 6 ++++ .../tgui/interfaces/MiningProcessor.tsx | 5 --- .../packages/tgui/interfaces/MiningVendor.tsx | 5 --- 5 files changed, 12 insertions(+), 73 deletions(-) create mode 100644 html/changelogs/geeves-mining_machine_id_tweak.yml 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. -