Adds alt-click removal to chemistry machines (#17052)

* Alt Click Eject

* code tweaks

* changelog

* Update code/modules/reagents/Chemistry-Machinery.dm

Co-authored-by: SleepyGemmy <99297919+SleepyGemmy@users.noreply.github.com>

* Apply suggestions from code review

Co-authored-by: SleepyGemmy <99297919+SleepyGemmy@users.noreply.github.com>

* adjacency check

---------

Co-authored-by: SleepyGemmy <99297919+SleepyGemmy@users.noreply.github.com>
This commit is contained in:
naut
2023-08-14 23:50:13 +08:00
committed by GitHub
parent e58bd2a3f9
commit 13de5c7cba
3 changed files with 74 additions and 16 deletions

View File

@@ -49,6 +49,20 @@
qdel(src)
return
/obj/machinery/chem_master/proc/eject()
if(beaker && usr)
if(use_check_and_message(usr))
usr.put_in_hands(beaker, TRUE)
else
beaker.loc = get_turf(src)
beaker = null
reagents.clear_reagents()
icon_state = "mixer0"
return TRUE
/obj/machinery/chem_master/AltClick()
if(use_check_and_message(usr))
eject()
/obj/machinery/chem_master/attackby(var/obj/item/B, mob/user)
@@ -215,16 +229,8 @@
return TRUE
else if (action == "eject")
if(beaker)
if(Adjacent(usr))
usr.put_in_hands(beaker)
else
beaker:loc = get_turf(src)
beaker = null
reagents.clear_reagents()
icon_state = "mixer0"
CHEMMASTER_BOTTLE_SOUND
return TRUE
if(eject())
return TRUE
if (action == "toggle")
mode = !mode

View File

@@ -79,6 +79,22 @@
cartridges -= label
SStgui.update_uis(src)
/obj/machinery/chemical_dispenser/proc/eject()
if(container && usr)
var/obj/item/reagent_containers/B = container
if(use_check_and_message(usr))
usr.put_in_hands(B, TRUE)
else
B.loc = get_turf(src)
container = null
if(icon_state_active)
icon_state = initial(icon_state)
return TRUE
/obj/machinery/chemical_dispenser/AltClick(mob/user)
if(use_check_and_message(usr))
eject()
/obj/machinery/chemical_dispenser/attackby(obj/item/W, mob/user)
if(W.iswrench())
to_chat(user, SPAN_NOTICE("You begin to [anchored ? "un" : ""]fasten [src]."))
@@ -180,12 +196,7 @@
. = TRUE
if("ejectBeaker")
if(container)
var/obj/item/reagent_containers/B = container
usr.put_in_hands(B)
container = null
if(icon_state_active)
icon_state = initial(icon_state)
if(eject())
. = TRUE
add_fingerprint(usr)