diff --git a/code/ATMOSPHERICS/components/binary_devices/pump.dm b/code/ATMOSPHERICS/components/binary_devices/pump.dm index 9d21fece152..cf0ff74e03c 100644 --- a/code/ATMOSPHERICS/components/binary_devices/pump.dm +++ b/code/ATMOSPHERICS/components/binary_devices/pump.dm @@ -28,6 +28,40 @@ Thus, the two variables affect pump operation are set in New(): var/id = null var/datum/radio_frequency/radio_connection +/obj/machinery/atmospherics/binary/pump/CtrlClick(mob/living/user) + if(!istype(user) || user.incapacitated()) + to_chat(user, "You can't do that right now!") + return + if(!in_range(src, user) && !issilicon(usr)) + return + if(!ishuman(usr) && !issilicon(usr)) + return + on = !on + update_icon() + return ..() + +/obj/machinery/atmospherics/binary/pump/AICtrlClick() + on = !on + update_icon() + return ..() + +/obj/machinery/atmospherics/binary/pump/AltClick(mob/living/user) + if(!istype(user) || user.incapacitated()) + to_chat(user, "You can't do that right now!") + return + if(!in_range(src, user) && !issilicon(usr)) + return + if(!ishuman(usr) && !issilicon(usr)) + return + target_pressure = MAX_OUTPUT_PRESSURE + update_icon() + return ..() + +/obj/machinery/atmospherics/binary/pump/AIAltClick() + target_pressure = MAX_OUTPUT_PRESSURE + update_icon() + return ..() + /obj/machinery/atmospherics/binary/pump/Destroy() if(radio_controller) radio_controller.remove_object(src, frequency) diff --git a/code/ATMOSPHERICS/components/binary_devices/volume_pump.dm b/code/ATMOSPHERICS/components/binary_devices/volume_pump.dm index a64c94e7fc5..7480ea45eb5 100644 --- a/code/ATMOSPHERICS/components/binary_devices/volume_pump.dm +++ b/code/ATMOSPHERICS/components/binary_devices/volume_pump.dm @@ -28,6 +28,40 @@ Thus, the two variables affect pump operation are set in New(): var/id = null var/datum/radio_frequency/radio_connection +/obj/machinery/atmospherics/binary/volume_pump/CtrlClick(mob/living/user) + if(!istype(user) || user.incapacitated()) + to_chat(user, "You can't do that right now!") + return + if(!in_range(src, user) && !issilicon(usr)) + return + if(!ishuman(usr) && !issilicon(usr)) + return + on = !on + update_icon() + return ..() + +/obj/machinery/atmospherics/binary/volume_pump/AICtrlClick() + on = !on + update_icon() + return ..() + +/obj/machinery/atmospherics/binary/volume_pump/AltClick(mob/living/user) + if(!istype(user) || user.incapacitated()) + to_chat(user, "You can't do that right now!") + return + if(!in_range(src, user) && !issilicon(usr)) + return + if(!ishuman(usr) && !issilicon(usr)) + return + transfer_rate = MAX_TRANSFER_RATE + update_icon() + return ..() + +/obj/machinery/atmospherics/binary/volume_pump/AIAltClick() + transfer_rate = MAX_TRANSFER_RATE + update_icon() + return ..() + /obj/machinery/atmospherics/binary/volume_pump/Destroy() if(radio_controller) radio_controller.remove_object(src, frequency) diff --git a/code/ATMOSPHERICS/components/trinary_devices/filter.dm b/code/ATMOSPHERICS/components/trinary_devices/filter.dm index 903f917e0c6..d0f0075a3bf 100755 --- a/code/ATMOSPHERICS/components/trinary_devices/filter.dm +++ b/code/ATMOSPHERICS/components/trinary_devices/filter.dm @@ -22,6 +22,39 @@ Filter types: var/frequency = 0 var/datum/radio_frequency/radio_connection +/obj/machinery/atmospherics/trinary/filter/CtrlClick(mob/living/user) + if(!istype(user) || user.incapacitated()) + to_chat(user, "You can't do that right now!") + return + if(!in_range(src, user) && !issilicon(usr)) + return + if(!ishuman(usr) && !issilicon(usr)) + return + on = !on + update_icon() + return ..() + +/obj/machinery/atmospherics/trinary/filter/AICtrlClick() + on = !on + update_icon() + return ..() + +/obj/machinery/atmospherics/trinary/filter/AltClick(mob/living/user) + if(!istype(user) || user.incapacitated()) + to_chat(user, "You can't do that right now!") + return + if(!in_range(src, user) && !issilicon(usr)) + return + if(!ishuman(usr) && !issilicon(usr)) + return + target_pressure = MAX_OUTPUT_PRESSURE + update_icon() + return ..() + +/obj/machinery/atmospherics/trinary/filter/AIAltClick() + target_pressure = MAX_OUTPUT_PRESSURE + update_icon() + return ..() /obj/machinery/atmospherics/trinary/filter/Destroy() if(radio_controller) diff --git a/code/ATMOSPHERICS/components/trinary_devices/mixer.dm b/code/ATMOSPHERICS/components/trinary_devices/mixer.dm index 0c64804b6da..7a962c3626c 100644 --- a/code/ATMOSPHERICS/components/trinary_devices/mixer.dm +++ b/code/ATMOSPHERICS/components/trinary_devices/mixer.dm @@ -12,6 +12,40 @@ //node 3 is the outlet, nodes 1 & 2 are intakes +/obj/machinery/atmospherics/trinary/mixer/CtrlClick(mob/living/user) + if(!istype(user) || user.incapacitated()) + to_chat(user, "You can't do that right now!") + return + if(!in_range(src, user) && !issilicon(usr)) + return + if(!ishuman(usr) && !issilicon(usr)) + return + on = !on + update_icon() + return ..() + +/obj/machinery/atmospherics/trinary/mixer/AICtrlClick() + on = !on + update_icon() + return ..() + +/obj/machinery/atmospherics/trinary/mixer/AltClick(mob/living/user) + if(!istype(user) || user.incapacitated()) + to_chat(user, "You can't do that right now!") + return + if(!in_range(src, user) && !issilicon(usr)) + return + if(!ishuman(usr) && !issilicon(usr)) + return + target_pressure = MAX_OUTPUT_PRESSURE + update_icon() + return ..() + +/obj/machinery/atmospherics/trinary/mixer/AIAltClick() + target_pressure = MAX_OUTPUT_PRESSURE + update_icon() + return ..() + /obj/machinery/atmospherics/trinary/mixer/flipped icon_state = "mmap" flipped = 1