From d28d7402161f6d3fc13c6b25cef356620ea588fa Mon Sep 17 00:00:00 2001 From: Mira <42539014+MiraHell@users.noreply.github.com> Date: Wed, 29 Jan 2025 00:03:31 +0300 Subject: [PATCH] Fix some cases of silicons teleporting items on put_in_hands (#28017) * fix some cases * forceMove * replace usr with user --- code/game/machinery/spaceheater.dm | 4 +++- code/modules/hydroponics/gene_modder.dm | 9 ++++++--- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/code/game/machinery/spaceheater.dm b/code/game/machinery/spaceheater.dm index e534e3b4739..9550e85b474 100644 --- a/code/game/machinery/spaceheater.dm +++ b/code/game/machinery/spaceheater.dm @@ -134,7 +134,9 @@ if("cellremove") if(open && cell && !usr.get_active_hand()) cell.update_icon() - usr.put_in_hands(cell) + cell.forceMove(loc) + if(Adjacent(usr) && !issilicon(usr)) + usr.put_in_hands(cell) cell.add_fingerprint(usr) cell = null usr.visible_message("[usr] removes the power cell from [src].", "You remove the power cell from [src].") diff --git a/code/modules/hydroponics/gene_modder.dm b/code/modules/hydroponics/gene_modder.dm index 54fa10e4018..72c77d48fa7 100644 --- a/code/modules/hydroponics/gene_modder.dm +++ b/code/modules/hydroponics/gene_modder.dm @@ -338,7 +338,8 @@ if("eject_seed") if(seed) seed.forceMove(loc) - user.put_in_hands(seed) + if(Adjacent(user) && !issilicon(user)) + user.put_in_hands(seed) seed = null update_genes() update_icon(UPDATE_OVERLAYS) @@ -351,7 +352,8 @@ var/obj/item/disk/plantgene/D = contents[text2num(params["index"])] if(D) D.forceMove(loc) - user.put_in_hands(D) + if(Adjacent(user) && !issilicon(user)) + user.put_in_hands(D) disk = null update_genes() else @@ -420,7 +422,8 @@ for(var/obj/item/disk/plantgene/D in contents) if(!D.gene && !D.is_bulk_core) D.forceMove(loc) - user.put_in_hands(D) + if(Adjacent(user) && !issilicon(user)) + user.put_in_hands(D) update_genes() return to_chat(user, "No Empty Disks to Eject!")