Skip to content

Commit

Permalink
Merge pull request #11348 from Arkatos1/AtmosShortcut
Browse files Browse the repository at this point in the history
Adds shortcuts for handling pumps, volume pumps, filters, and mixers + Ability to rename them with a pen
  • Loading branch information
variableundefined committed Apr 30, 2019
2 parents 99119c0 + fa6a27e commit 92ec9cf
Show file tree
Hide file tree
Showing 4 changed files with 203 additions and 4 deletions.
50 changes: 49 additions & 1 deletion code/ATMOSPHERICS/components/binary_devices/pump.dm
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,46 @@ 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, "<span class='warning'>You can't do that right now!</span>")
return
if(!in_range(src, user) && !issilicon(usr))
return
if(!ishuman(usr) && !issilicon(usr))
return
toggle()
return ..()

/obj/machinery/atmospherics/binary/pump/AICtrlClick()
toggle()
return ..()

/obj/machinery/atmospherics/binary/pump/AltClick(mob/living/user)
if(!istype(user) || user.incapacitated())
to_chat(user, "<span class='warning'>You can't do that right now!</span>")
return
if(!in_range(src, user) && !issilicon(usr))
return
if(!ishuman(usr) && !issilicon(usr))
return
set_max()
return

/obj/machinery/atmospherics/binary/pump/AIAltClick()
set_max()
return ..()

/obj/machinery/atmospherics/binary/pump/proc/toggle()
if(powered())
on = !on
update_icon()

/obj/machinery/atmospherics/binary/pump/proc/set_max()
if(powered())
target_pressure = MAX_OUTPUT_PRESSURE
update_icon()

/obj/machinery/atmospherics/binary/pump/Destroy()
if(SSradio)
SSradio.remove_object(src, frequency)
Expand Down Expand Up @@ -203,7 +243,15 @@ Thus, the two variables affect pump operation are set in New():
update_icon()

/obj/machinery/atmospherics/binary/pump/attackby(obj/item/W, mob/user, params)
if(!istype(W, /obj/item/wrench))
if(istype(W, /obj/item/pen))
var/t = copytext(stripped_input(user, "Enter the name for the pump.", "Rename", name), 1, MAX_NAME_LEN)
if(!t)
return
if(!in_range(src, usr) && loc != usr)
return
name = t
return
else if(!istype(W, /obj/item/wrench))
return ..()
if(!(stat & NOPOWER) && on)
to_chat(user, "<span class='alert'>You cannot unwrench this [src], turn it off first.</span>")
Expand Down
50 changes: 49 additions & 1 deletion code/ATMOSPHERICS/components/binary_devices/volume_pump.dm
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,46 @@ 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, "<span class='warning'>You can't do that right now!</span>")
return
if(!in_range(src, user) && !issilicon(usr))
return
if(!ishuman(usr) && !issilicon(usr))
return
toggle()
return ..()

/obj/machinery/atmospherics/binary/volume_pump/AICtrlClick()
toggle()
return ..()

/obj/machinery/atmospherics/binary/volume_pump/AltClick(mob/living/user)
if(!istype(user) || user.incapacitated())
to_chat(user, "<span class='warning'>You can't do that right now!</span>")
return
if(!in_range(src, user) && !issilicon(usr))
return
if(!ishuman(usr) && !issilicon(usr))
return
set_max()
return

/obj/machinery/atmospherics/binary/volume_pump/AIAltClick()
set_max()
return ..()

/obj/machinery/atmospherics/binary/volume_pump/proc/toggle()
if(powered())
on = !on
update_icon()

/obj/machinery/atmospherics/binary/volume_pump/proc/set_max()
if(powered())
transfer_rate = MAX_TRANSFER_RATE
update_icon()

/obj/machinery/atmospherics/binary/volume_pump/Destroy()
if(SSradio)
SSradio.remove_object(src, frequency)
Expand Down Expand Up @@ -199,7 +239,15 @@ Thus, the two variables affect pump operation are set in New():
update_icon()

/obj/machinery/atmospherics/binary/volume_pump/attackby(obj/item/W, mob/user, params)
if(!istype(W, /obj/item/wrench))
if(istype(W, /obj/item/pen))
var/t = copytext(stripped_input(user, "Enter the name for the volume pump.", "Rename", name), 1, MAX_NAME_LEN)
if(!t)
return
if(!in_range(src, usr) && loc != usr)
return
name = t
return
else if(!istype(W, /obj/item/wrench))
return ..()
if(!(stat & NOPOWER) && on)
to_chat(user, "<span class='alert'>You cannot unwrench this [src], turn it off first.</span>")
Expand Down
53 changes: 52 additions & 1 deletion code/ATMOSPHERICS/components/trinary_devices/filter.dm
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,45 @@ 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, "<span class='warning'>You can't do that right now!</span>")
return
if(!in_range(src, user) && !issilicon(usr))
return
if(!ishuman(usr) && !issilicon(usr))
return
toggle()
return ..()

/obj/machinery/atmospherics/trinary/filter/AICtrlClick()
toggle()
return ..()

/obj/machinery/atmospherics/trinary/filter/AltClick(mob/living/user)
if(!istype(user) || user.incapacitated())
to_chat(user, "<span class='warning'>You can't do that right now!</span>")
return
if(!in_range(src, user) && !issilicon(usr))
return
if(!ishuman(usr) && !issilicon(usr))
return
set_max()
return

/obj/machinery/atmospherics/trinary/filter/AIAltClick()
set_max()
return ..()

/obj/machinery/atmospherics/trinary/filter/proc/toggle()
if(powered())
on = !on
update_icon()

/obj/machinery/atmospherics/trinary/filter/proc/set_max()
if(powered())
target_pressure = MAX_OUTPUT_PRESSURE
update_icon()

/obj/machinery/atmospherics/trinary/filter/Destroy()
if(SSradio)
Expand Down Expand Up @@ -211,4 +250,16 @@ Filter types:
. = TRUE

update_icon()
SSnanoui.update_uis(src)
SSnanoui.update_uis(src)

/obj/machinery/atmospherics/trinary/filter/attackby(obj/item/W, mob/user, params)
if(istype(W, /obj/item/pen))
var/t = copytext(stripped_input(user, "Enter the name for the filter.", "Rename", name), 1, MAX_NAME_LEN)
if(!t)
return
if(!in_range(src, usr) && loc != usr)
return
name = t
return
else
return ..()
54 changes: 53 additions & 1 deletion code/ATMOSPHERICS/components/trinary_devices/mixer.dm
Original file line number Diff line number Diff line change
Expand Up @@ -12,10 +12,50 @@

//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, "<span class='warning'>You can't do that right now!</span>")
return
if(!in_range(src, user) && !issilicon(usr))
return
if(!ishuman(usr) && !issilicon(usr))
return
toggle()
return ..()

/obj/machinery/atmospherics/trinary/mixer/AICtrlClick()
toggle()
return ..()

/obj/machinery/atmospherics/trinary/mixer/AltClick(mob/living/user)
if(!istype(user) || user.incapacitated())
to_chat(user, "<span class='warning'>You can't do that right now!</span>")
return
if(!in_range(src, user) && !issilicon(usr))
return
if(!ishuman(usr) && !issilicon(usr))
return
set_max()
return

/obj/machinery/atmospherics/trinary/mixer/AIAltClick()
set_max()
return ..()

/obj/machinery/atmospherics/trinary/mixer/flipped
icon_state = "mmap"
flipped = 1

/obj/machinery/atmospherics/trinary/mixer/proc/toggle()
if(powered())
on = !on
update_icon()

/obj/machinery/atmospherics/trinary/mixer/proc/set_max()
if(powered())
target_pressure = MAX_OUTPUT_PRESSURE
update_icon()

/obj/machinery/atmospherics/trinary/mixer/update_icon(safety = 0)
if(flipped)
icon_state = "m"
Expand Down Expand Up @@ -176,4 +216,16 @@
. = TRUE

update_icon()
SSnanoui.update_uis(src)
SSnanoui.update_uis(src)

/obj/machinery/atmospherics/trinary/mixer/attackby(obj/item/W, mob/user, params)
if(istype(W, /obj/item/pen))
var/t = copytext(stripped_input(user, "Enter the name for the mixer.", "Rename", name), 1, MAX_NAME_LEN)
if(!t)
return
if(!in_range(src, usr) && loc != usr)
return
name = t
return
else
return ..()

0 comments on commit 92ec9cf

Please sign in to comment.