diff --git a/code/game/machinery/bloodbankgen.dm b/code/game/machinery/bloodbankgen.dm index b1bec0bb7d..c489f6c9c9 100644 --- a/code/game/machinery/bloodbankgen.dm +++ b/code/game/machinery/bloodbankgen.dm @@ -208,20 +208,20 @@ if(!panel_open) if(bag && outbag) to_chat(user, "This machine already has bags attached.") + + if(!bag && !outbag) + var/choice = alert(user, "Choose where to place [O]", "", "Input", "Cancel", "Output") + switch(choice) + if("Cancel") + return FALSE + if("Input") + attachinput(O, user) + if("Output") + attachoutput(O, user) else if(!bag) - if(!user.transferItemToLoc(O, src)) - return - bag = O - to_chat(user, "You add the container to the machine's input slot.") - update_icon() - updateUsrDialog() + attachinput(O, user) else if(!outbag) - if(!user.transferItemToLoc(O, src)) - return - outbag = O - to_chat(user, "You add the container to the machine's output slot.") - update_icon() - updateUsrDialog() + attachoutput(O, user) else to_chat(user, "Close the maintenance panel first.") return @@ -303,15 +303,41 @@ /obj/machinery/bloodbankgen/proc/detachinput() if(bag) bag.forceMove(drop_location()) + if(usr && Adjacent(usr) && !issiliconoradminghost(usr)) + usr.put_in_hands(bag) bag = null update_icon() /obj/machinery/bloodbankgen/proc/detachoutput() if(outbag) outbag.forceMove(drop_location()) + if(usr && Adjacent(usr) && !issiliconoradminghost(usr)) + usr.put_in_hands(outbag) outbag = null update_icon() +/obj/machinery/bloodbankgen/proc/attachinput(obj/item/O, mob/user) + if(!bag) + if(!user.transferItemToLoc(O, src)) + return + bag = O + to_chat(user, "You add [O] to the machine's input slot.") + update_icon() + updateUsrDialog() + else + to_chat(user, "There is already something in this slot!") + +/obj/machinery/bloodbankgen/proc/attachoutput(obj/item/O, mob/user) + if(!outbag) + if(!user.transferItemToLoc(O, src)) + return + outbag = O + to_chat(user, "You add [O] to the machine's output slot.") + update_icon() + updateUsrDialog() + else + to_chat(user, "There is already something in this slot!") + /obj/machinery/bloodbankgen/Topic(href, href_list) if(..() || panel_open) return