From 70f25618c6e7df2ea1ffca8f2a2e7ead33f29df1 Mon Sep 17 00:00:00 2001 From: Rob Nelson Date: Fri, 31 Jan 2014 17:09:46 -0800 Subject: [PATCH] Fixes for #476 and #475. --- .../components/unary/outlet_injector.dm | 2 +- .../components/unary/vent_pump.dm | 6 ++- .../components/unary/vent_scrubber.dm | 48 +++++++++++++++++++ 3 files changed, 53 insertions(+), 3 deletions(-) diff --git a/code/ATMOSPHERICS/components/unary/outlet_injector.dm b/code/ATMOSPHERICS/components/unary/outlet_injector.dm index 64228da00a6..d42c0b564f3 100644 --- a/code/ATMOSPHERICS/components/unary/outlet_injector.dm +++ b/code/ATMOSPHERICS/components/unary/outlet_injector.dm @@ -198,7 +198,7 @@ P.buffer = null usr.set_machine(src) - updateUsrDialog() + update_multitool_menu() attackby(var/obj/item/weapon/W as obj, var/mob/user as mob) if(istype(W, /obj/item/device/multitool)) diff --git a/code/ATMOSPHERICS/components/unary/vent_pump.dm b/code/ATMOSPHERICS/components/unary/vent_pump.dm index 8ec58d2287b..27275721343 100644 --- a/code/ATMOSPHERICS/components/unary/vent_pump.dm +++ b/code/ATMOSPHERICS/components/unary/vent_pump.dm @@ -333,7 +333,7 @@ user << "\blue You need more welding fuel to complete this task." return 1 if(istype(W, /obj/item/device/multitool)) - interact(user) + update_multitool_menu(user) return 1 if (!istype(W, /obj/item/weapon/wrench)) return ..() @@ -376,6 +376,8 @@ return var/obj/item/device/multitool/P = get_multitool(usr) + if(!P || !istype(P)) + return if("set_id" in href_list) var/newid = copytext(reject_bad_text(input(usr, "Specify the new ID tag for this machine", src, id_tag) as null|text),1,MAX_MESSAGE_LEN) @@ -408,4 +410,4 @@ P.buffer = null usr.set_machine(src) - updateUsrDialog() \ No newline at end of file + update_multitool_menu() \ No newline at end of file diff --git a/code/ATMOSPHERICS/components/unary/vent_scrubber.dm b/code/ATMOSPHERICS/components/unary/vent_scrubber.dm index d0c92e821bd..c4fb7c3f04b 100644 --- a/code/ATMOSPHERICS/components/unary/vent_scrubber.dm +++ b/code/ATMOSPHERICS/components/unary/vent_scrubber.dm @@ -278,6 +278,9 @@ update_icon() attackby(var/obj/item/weapon/W as obj, var/mob/user as mob) + if(istype(W, /obj/item/device/multitool)) + update_multitool_menu(user) + return 1 if (!istype(W, /obj/item/weapon/wrench)) return ..() if (!(stat & NOPOWER) && on) @@ -311,6 +314,51 @@ "} +/obj/machinery/atmospherics/unary/vent_scrubber/Topic(href, href_list) + if(..()) + return + + if(!issilicon(usr)) + if(!istype(usr.get_active_hand(), /obj/item/device/multitool)) + return + + var/obj/item/device/multitool/P = get_multitool(usr) + if(!P || !istype(P)) + return + + if("set_id" in href_list) + var/newid = copytext(reject_bad_text(input(usr, "Specify the new ID tag for this machine", src, id_tag) as null|text),1,MAX_MESSAGE_LEN) + if(newid) + id_tag = newid + initialize() + if("set_freq" in href_list) + var/newfreq=frequency + if(href_list["set_freq"]!="-1") + newfreq=text2num(href_list["set_freq"]) + else + newfreq = input(usr, "Specify a new frequency (GHz). Decimals assigned automatically.", src, network) as null|num + if(newfreq) + if(findtext(num2text(newfreq), ".")) + newfreq *= 10 // shift the decimal one place + if(newfreq < 10000) + frequency = newfreq + initialize() + + if(href_list["unlink"]) + P.visible_message("\The [P] buzzes in an annoying tone.","You hear a buzz.") + + if(href_list["link"]) + P.visible_message("\The [P] buzzes in an annoying tone.","You hear a buzz.") + + if(href_list["buffer"]) + P.buffer = src + + if(href_list["flush"]) + P.buffer = null + + usr.set_machine(src) + update_multitool_menu() + /obj/machinery/atmospherics/unary/vent_scrubber/Del() if(initial_loc) initial_loc.air_scrub_info -= id_tag