From ff92b1c8e107b043b24f19c343e4169c016290e0 Mon Sep 17 00:00:00 2001 From: Kashargul <144968721+Kashargul@users.noreply.github.com> Date: Mon, 9 Sep 2024 21:59:13 +0200 Subject: [PATCH 1/2] Mining ID --- .../objects/items/weapons/id cards/cards.dm | 27 +++++++++++++++++++ .../mining/machinery/machine_processing.dm | 3 +-- .../equipment_vendor.dm | 2 +- .../silicon/robot/robot_modules/station.dm | 1 + 4 files changed, 30 insertions(+), 3 deletions(-) diff --git a/code/game/objects/items/weapons/id cards/cards.dm b/code/game/objects/items/weapons/id cards/cards.dm index 7b038025b6..479e3841a5 100644 --- a/code/game/objects/items/weapons/id cards/cards.dm +++ b/code/game/objects/items/weapons/id cards/cards.dm @@ -268,3 +268,30 @@ reset_icon() return return + +/obj/item/weapon/card/id/cargo/miner/borg + var/mob/living/silicon/robot/R + var/last_robot_loc + name = "Robot Miner ID" + +/obj/item/weapon/card/id/cargo/miner/borg/Initialize() + . = ..() + R = loc.loc + registered_name = R.braintype + RegisterSignal(src, COMSIG_OBSERVER_MOVED, PROC_REF(check_loc)) + +/obj/item/weapon/card/id/cargo/miner/borg/proc/check_loc(atom/movable/mover, atom/old_loc, atom/new_loc) + if(old_loc == R || old_loc == R.module) + last_robot_loc = old_loc + if(!istype(loc, /obj/machinery) && loc != R && loc != R.module) + if(last_robot_loc) + forceMove(last_robot_loc) + last_robot_loc = null + else + forceMove(R) + if(loc == R) + hud_layerise() + +/obj/item/weapon/card/id/cargo/miner/borg/Destroy() + UnregisterSignal(src, COMSIG_OBSERVER_MOVED) + ..() diff --git a/code/modules/mining/machinery/machine_processing.dm b/code/modules/mining/machinery/machine_processing.dm index 62842e9ebb..f889350ec6 100644 --- a/code/modules/mining/machinery/machine_processing.dm +++ b/code/modules/mining/machinery/machine_processing.dm @@ -43,7 +43,7 @@ if(istype(I, /obj/item/weapon/card/id)) if(!powered()) return - if(!inserted_id && user.unEquip(I)) + if(!inserted_id && (user.unEquip(I) || isrobot(user))) I.forceMove(src) inserted_id = I SStgui.update_uis(src) @@ -347,4 +347,3 @@ #undef PROCESS_SMELT #undef PROCESS_COMPRESS #undef PROCESS_ALLOY - diff --git a/code/modules/mining/ore_redemption_machine/equipment_vendor.dm b/code/modules/mining/ore_redemption_machine/equipment_vendor.dm index b9e2c2d75e..36358efb4a 100644 --- a/code/modules/mining/ore_redemption_machine/equipment_vendor.dm +++ b/code/modules/mining/ore_redemption_machine/equipment_vendor.dm @@ -310,7 +310,7 @@ if(istype(I,/obj/item/weapon/card/id)) if(!powered()) return - else if(!inserted_id && user.unEquip(I)) + else if(!inserted_id && (user.unEquip(I) || isrobot(user))) I.forceMove(src) inserted_id = I tgui_interact(user) diff --git a/code/modules/mob/living/silicon/robot/robot_modules/station.dm b/code/modules/mob/living/silicon/robot/robot_modules/station.dm index 9815ea36d7..02554d1f21 100644 --- a/code/modules/mob/living/silicon/robot/robot_modules/station.dm +++ b/code/modules/mob/living/silicon/robot/robot_modules/station.dm @@ -679,6 +679,7 @@ var/global/list/robot_modules = list( src.modules += new /obj/item/weapon/storage/bag/sheetsnatcher/borg(src) src.modules += new /obj/item/weapon/gripper/miner(src) src.modules += new /obj/item/weapon/mining_scanner(src) + src.modules += new /obj/item/weapon/card/id/cargo/miner/borg(src) src.emag += new /obj/item/weapon/kinetic_crusher/machete/dagger(src) src.modules += new /obj/item/device/dogborg/sleeper/compactor/supply(src) From d26cc1d566a0ede33d4ba1ea556aca28a208841f Mon Sep 17 00:00:00 2001 From: Kashargul <144968721+Kashargul@users.noreply.github.com> Date: Mon, 9 Sep 2024 22:01:24 +0200 Subject: [PATCH 2/2] . --- code/modules/mining/ore_redemption_machine/equipment_vendor.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/mining/ore_redemption_machine/equipment_vendor.dm b/code/modules/mining/ore_redemption_machine/equipment_vendor.dm index 36358efb4a..43b4ed8e70 100644 --- a/code/modules/mining/ore_redemption_machine/equipment_vendor.dm +++ b/code/modules/mining/ore_redemption_machine/equipment_vendor.dm @@ -310,7 +310,7 @@ if(istype(I,/obj/item/weapon/card/id)) if(!powered()) return - else if(!inserted_id && (user.unEquip(I) || isrobot(user))) + else if(!inserted_id && (user.unEquip(I) || isrobot(user))) I.forceMove(src) inserted_id = I tgui_interact(user)