diff --git a/code/modules/modular_computers/computers/item/computer_ui.dm b/code/modules/modular_computers/computers/item/computer_ui.dm index 05028267f54..3a260df7799 100644 --- a/code/modules/modular_computers/computers/item/computer_ui.dm +++ b/code/modules/modular_computers/computers/item/computer_ui.dm @@ -193,7 +193,10 @@ if(!inserted_disk) return - user.put_in_hands(inserted_disk) + if(!user || !Adjacent(user)) + inserted_disk.forceMove(drop_location()) + else + user.put_in_hands(inserted_disk) inserted_disk = null playsound(src, 'sound/machines/card_slide.ogg', 50) return TRUE diff --git a/code/modules/research/ordnance/doppler_array.dm b/code/modules/research/ordnance/doppler_array.dm index 1f1d4600938..3e4757e1675 100644 --- a/code/modules/research/ordnance/doppler_array.dm +++ b/code/modules/research/ordnance/doppler_array.dm @@ -207,10 +207,10 @@ /obj/machinery/doppler_array/proc/eject_disk(mob/user) if(!inserted_disk) return FALSE - if(user) - user.put_in_hands(inserted_disk) - else + if(!user || !Adjacent(user)) inserted_disk.forceMove(drop_location()) + else + user.put_in_hands(inserted_disk) playsound(src, 'sound/machines/card_slide.ogg', 50) return TRUE diff --git a/code/modules/research/ordnance/tank_compressor.dm b/code/modules/research/ordnance/tank_compressor.dm index f78114d6ff1..06069123f94 100644 --- a/code/modules/research/ordnance/tank_compressor.dm +++ b/code/modules/research/ordnance/tank_compressor.dm @@ -220,10 +220,10 @@ /obj/machinery/atmospherics/components/binary/tank_compressor/proc/eject_disk(mob/user) if(!inserted_disk) return FALSE - if(user) - user.put_in_hands(inserted_disk) - else + if(!user || !Adjacent(user)) inserted_disk.forceMove(drop_location()) + else + user.put_in_hands(inserted_disk) playsound(src, 'sound/machines/card_slide.ogg', 50) return TRUE