Files
Bubberstation/code/ATMOSPHERICS/components/valve.dm
Remie Richards f918815bea Merge pull request #6741 from tkdrg/atmoslog
Adds atmos investigate_log
2015-01-06 07:56:17 +00:00

89 lines
2.5 KiB
Plaintext

/obj/machinery/atmospherics/binary/valve
icon = 'icons/obj/atmospherics/binary_devices.dmi'
icon_state = "mvalve_map"
name = "manual valve"
desc = "A pipe valve"
can_unwrench = 1
var/open = 0
var/frequency = 0
var/id = null
/obj/machinery/atmospherics/binary/valve/open
open = 1
//Separate this because we don't need to update pipe icons if we just are going to crank the handle
/obj/machinery/atmospherics/binary/valve/update_icon_nopipes(animation = 0)
normalize_dir()
icon_state = "mvalve_off"
overlays.Cut()
if(animation)
overlays += getpipeimage('icons/obj/atmospherics/binary_devices.dmi', "mvalve_[open][!open]")
else if(open)
overlays += getpipeimage('icons/obj/atmospherics/binary_devices.dmi', "mvalve_on")
/obj/machinery/atmospherics/binary/valve/update_icon()
update_icon_nopipes()
var/connected = 0
underlays.Cut()
//Add non-broken pieces
if(node1)
connected = icon_addintact(node1, connected)
if(node2)
connected = icon_addintact(node2, connected)
//Add broken pieces
icon_addbroken(connected)
/obj/machinery/atmospherics/binary/valve/proc/open()
open = 1
update_icon_nopipes()
parent1.update = 0
parent2.update = 0
investigate_log("was opened by [usr ? key_name(usr) : "a remote signal"]", "atmos")
return
/obj/machinery/atmospherics/binary/valve/proc/close()
open = 0
update_icon_nopipes()
investigate_log("was closed by [usr ? key_name(usr) : "a remote signal"]", "atmos")
return
/obj/machinery/atmospherics/binary/valve/proc/normalize_dir()
if(dir==2)
dir = 1
else if(dir==8)
dir = 4
/obj/machinery/atmospherics/binary/valve/attack_ai(mob/user)
return
/obj/machinery/atmospherics/binary/valve/attack_hand(mob/user)
add_fingerprint(usr)
update_icon_nopipes(1)
sleep(10)
if(open)
close()
else
open()
parent1.reconcile_air()
/obj/machinery/atmospherics/binary/valve/digital // can be controlled by AI
name = "digital valve"
desc = "A digitally controlled valve."
icon_state = "dvalve_map"
/obj/machinery/atmospherics/binary/valve/digital/attack_ai(mob/user)
return src.attack_hand(user)
/obj/machinery/atmospherics/binary/valve/digital/update_icon_nopipes(animation)
normalize_dir()
if(stat & NOPOWER)
icon_state = "dvalve_nopower"
overlays.Cut()
return
icon_state = "dvalve_off"
overlays.Cut()
if(animation)
overlays += getpipeimage('icons/obj/atmospherics/binary_devices.dmi', "dvalve_[open][!open]")
else if(open)
overlays += getpipeimage('icons/obj/atmospherics/binary_devices.dmi', "dvalve_on")