From e47e31ff1dd37f4edcea122e78ddab1187c9330c Mon Sep 17 00:00:00 2001 From: Dax Dupont Date: Wed, 24 Jan 2018 07:28:23 +0100 Subject: [PATCH] Puts beakers in your hand on eject (#34787) --- .../reagents/chemistry/machinery/chem_dispenser.dm | 2 ++ code/modules/reagents/chemistry/machinery/chem_heater.dm | 6 ++++-- code/modules/reagents/chemistry/machinery/chem_master.dm | 9 ++++++--- .../reagents/chemistry/machinery/reagentgrinder.dm | 2 ++ 4 files changed, 14 insertions(+), 5 deletions(-) diff --git a/code/modules/reagents/chemistry/machinery/chem_dispenser.dm b/code/modules/reagents/chemistry/machinery/chem_dispenser.dm index ebf2c8913b..a1e913a14e 100644 --- a/code/modules/reagents/chemistry/machinery/chem_dispenser.dm +++ b/code/modules/reagents/chemistry/machinery/chem_dispenser.dm @@ -182,6 +182,8 @@ if("eject") if(beaker) beaker.forceMove(drop_location()) + if(Adjacent(usr) && !issilicon(usr)) + usr.put_in_hands(beaker) beaker = null cut_overlays() . = TRUE diff --git a/code/modules/reagents/chemistry/machinery/chem_heater.dm b/code/modules/reagents/chemistry/machinery/chem_heater.dm index 9037bba6dc..fa88cab801 100644 --- a/code/modules/reagents/chemistry/machinery/chem_heater.dm +++ b/code/modules/reagents/chemistry/machinery/chem_heater.dm @@ -29,9 +29,11 @@ else icon_state = "mixer0b" -/obj/machinery/chem_heater/proc/eject_beaker() +/obj/machinery/chem_heater/proc/eject_beaker(mob/user) if(beaker) beaker.forceMove(drop_location()) + if(Adjacent(user) && !issilicon(user)) + user.put_in_hands(beaker) beaker = null update_icon() @@ -129,5 +131,5 @@ target_temperature = CLAMP(target, 0, 1000) if("eject") on = FALSE - eject_beaker() + eject_beaker(usr) . = TRUE diff --git a/code/modules/reagents/chemistry/machinery/chem_master.dm b/code/modules/reagents/chemistry/machinery/chem_master.dm index 60550a1687..ffa73aa994 100644 --- a/code/modules/reagents/chemistry/machinery/chem_master.dm +++ b/code/modules/reagents/chemistry/machinery/chem_master.dm @@ -59,10 +59,13 @@ else icon_state = "mixer0" -/obj/machinery/chem_master/proc/eject_beaker() +/obj/machinery/chem_master/proc/eject_beaker(mob/user) if(beaker) beaker.forceMove(drop_location()) - adjust_item_drop_location(beaker) + if(Adjacent(user) && !issilicon(user)) + user.put_in_hands(beaker) + else + adjust_item_drop_location(beaker) beaker = null update_icon() @@ -169,7 +172,7 @@ return switch(action) if("eject") - eject_beaker() + eject_beaker(usr) . = TRUE if("ejectp") diff --git a/code/modules/reagents/chemistry/machinery/reagentgrinder.dm b/code/modules/reagents/chemistry/machinery/reagentgrinder.dm index 6629cd018e..ec447ce2e5 100644 --- a/code/modules/reagents/chemistry/machinery/reagentgrinder.dm +++ b/code/modules/reagents/chemistry/machinery/reagentgrinder.dm @@ -201,6 +201,8 @@ if(!beaker) return beaker.forceMove(drop_location()) + if(Adjacent(user) && !issilicon(user)) + user.put_in_hands(beaker) beaker = null update_icon() updateUsrDialog()