diff --git a/code/WorkInProgress/computer3/component.dm b/code/WorkInProgress/computer3/component.dm index 501bbc973e..d5f290b177 100644 --- a/code/WorkInProgress/computer3/component.dm +++ b/code/WorkInProgress/computer3/component.dm @@ -192,9 +192,12 @@ if(reader) reader.loc = loc if(istype(L) && !L.get_active_hand()) - L.put_in_hands(reader) + if(istype(L,/mob/living/carbon/human)) + L.put_in_hands(reader) + else + reader.loc = get_turf(computer) else - reader.loc = computer.loc + reader.loc = get_turf(computer) reader = null return 1 return 0 @@ -203,16 +206,16 @@ if(writer && dualslot) writer.loc = loc if(istype(L) && !L.get_active_hand()) - L.put_in_hands(writer) + if(istype(L,/mob/living/carbon/human)) + L.put_in_hands(writer) + else + writer.loc = get_turf(computer) else - writer.loc = computer.loc + writer.loc = get_turf(computer) writer = null return 1 return 0 - - - // Authorizes the user based on the computer's requirements proc/authenticate() return computer.check_access(reader) diff --git a/code/game/machinery/computer/card.dm b/code/game/machinery/computer/card.dm index 9341aca674..a3fa74173a 100644 --- a/code/game/machinery/computer/card.dm +++ b/code/game/machinery/computer/card.dm @@ -40,13 +40,13 @@ if(scan) usr << "You remove \the [scan] from \the [src]." scan.loc = get_turf(src) - if(!usr.get_active_hand()) + if(!usr.get_active_hand() && istype(usr,/mob/living/carbon/human)) usr.put_in_hands(scan) scan = null else if(modify) usr << "You remove \the [modify] from \the [src]." modify.loc = get_turf(src) - if(!usr.get_active_hand()) + if(!usr.get_active_hand() && istype(usr,/mob/living/carbon/human)) usr.put_in_hands(modify) modify = null else diff --git a/code/game/machinery/computer/medical.dm b/code/game/machinery/computer/medical.dm index 6d347224f2..1086055fd8 100644 --- a/code/game/machinery/computer/medical.dm +++ b/code/game/machinery/computer/medical.dm @@ -26,7 +26,7 @@ if(scan) usr << "You remove \the [scan] from \the [src]." scan.loc = get_turf(src) - if(!usr.get_active_hand()) + if(!usr.get_active_hand() && istype(usr,/mob/living/carbon/human)) usr.put_in_hands(scan) scan = null else diff --git a/code/game/machinery/computer/security.dm b/code/game/machinery/computer/security.dm index af720b8c19..ba0ff29e9c 100644 --- a/code/game/machinery/computer/security.dm +++ b/code/game/machinery/computer/security.dm @@ -32,7 +32,7 @@ if(scan) usr << "You remove \the [scan] from \the [src]." scan.loc = get_turf(src) - if(!usr.get_active_hand()) + if(!usr.get_active_hand() && istype(usr,/mob/living/carbon/human)) usr.put_in_hands(scan) scan = null else