Air alarms improved. New functions are:

- mass control all air machines in area (5 modes)
 - adjustable alarm thresholds
 - air alarm in server room now is preset to treat temperature 80 K as okay.
EMP now affects bots internal cameras.
Fixed problem with AI clicking on mulebot.
Some fixes for welding with unlit welder, mostly cosmetic.
Airlock controller (as in EVA) now react to commands faster.
Access controller (was in engineering and virology in past) was speeded up too. One is installed into Incinerator to demonstrate that now it isn't fucking slow.
Airlock in toxin mixing room now have pump, so airlock can work properly.
Added some intercoms to medbay lobby.
Doors now won't lag due do mapmakers mistakes.


git-svn-id: http://tgstation13.googlecode.com/svn/trunk@1187 316c924e-a436-60f5-8080-3fe189b3f50e
This commit is contained in:
rastaf.zero@gmail.com
2011-03-14 19:21:02 +00:00
parent b1a5289490
commit 2530b5b995
28 changed files with 7619 additions and 7320 deletions
@@ -120,15 +120,17 @@
signal.transmission_method = 1 //radio signal
signal.source = src
signal.data["tag"] = id
signal.data["device"] = "ADVP"
signal.data["power"] = on?("on"):("off")
signal.data["direction"] = pump_direction?("release"):("siphon")
signal.data["checks"] = pressure_checks
signal.data["input"] = input_pressure_min
signal.data["output"] = output_pressure_max
signal.data["external"] = external_pressure_bound
signal.data = list(
"tag" = id,
"device" = "ADVP",
"power" = on,
"direction" = pump_direction?("release"):("siphon"),
"checks" = pressure_checks,
"input" = input_pressure_min,
"output" = output_pressure_max,
"external" = external_pressure_bound,
"sigtype" = "status"
)
radio_connection.post_signal(src, signal, filter = RADIO_ATMOSIA)
return 1
@@ -143,57 +145,55 @@
set_frequency(frequency)
receive_signal(datum/signal/signal)
if(!signal.data["tag"] || (signal.data["tag"] != id))
if(!signal.data["tag"] || (signal.data["tag"] != id) || (signal.data["sigtype"]!="command"))
return 0
switch(signal.data["command"])
if("power_on")
on = 1
if("power" in signal.data)
on = text2num(signal.data["power"])
if("power_off")
on = 0
if("power_toggle" in signal.data)
on = !on
if("power_toggle")
on = !on
if("set_direction" in signal.data)
pump_direction = text2num(signal.data["set_direction"])
if("set_direction")
var/number = text2num(signal.data["parameter"])
if(number > 0.5)
pump_direction = 1
else
pump_direction = 0
if("checks" in signal.data)
pressure_checks = text2num(signal.data["checks"])
if("set_checks")
var/number = round(text2num(signal.data["parameter"]),1)
pressure_checks = number
if("purge" in signal.data)
pressure_checks &= ~1
pump_direction = 0
if("purge")
pressure_checks &= ~1
pump_direction = 0
if("stabalize" in signal.data)
pressure_checks |= 1
pump_direction = 1
if("stabalize")
pressure_checks |= 1
pump_direction = 1
if("set_input_pressure" in signal.data)
input_pressure_min = between(
0,
text2num(signal.data["set_input_pressure"]),
ONE_ATMOSPHERE*50
)
if("set_input_pressure")
var/number = text2num(signal.data["parameter"])
number = min(max(number, 0), ONE_ATMOSPHERE*50)
if("set_output_pressure" in signal.data)
output_pressure_max = between(
0,
text2num(signal.data["set_output_pressure"]),
ONE_ATMOSPHERE*50
)
input_pressure_min = number
if("set_output_pressure")
var/number = text2num(signal.data["parameter"])
number = min(max(number, 0), ONE_ATMOSPHERE*50)
output_pressure_max = number
if("set_external_pressure")
var/number = text2num(signal.data["parameter"])
number = min(max(number, 0), ONE_ATMOSPHERE*50)
external_pressure_bound = number
if("set_external_pressure" in signal.data)
external_pressure_bound = between(
0,
text2num(signal.data["set_external_pressure"]),
ONE_ATMOSPHERE*50
)
if("status" in signal.data)
spawn(2)
broadcast_status()
return //do not update_icon
//if(signal.data["tag"])
spawn(5)
spawn(2)
broadcast_status()
update_icon()
@@ -22,6 +22,10 @@ obj/machinery/atmospherics/binary/pump
var/on = 0
var/target_pressure = ONE_ATMOSPHERE
var/frequency = 0
var/id = null
var/datum/radio_frequency/radio_connection
/*
attack_hand(mob/user)
on = !on
@@ -87,14 +91,18 @@ obj/machinery/atmospherics/binary/pump
signal.transmission_method = 1 //radio signal
signal.source = src
signal.data["tag"] = id
signal.data["device"] = "AGP"
signal.data["power"] = on
signal.data["target_output"] = target_pressure
signal.data = list(
"tag" = id,
"device" = "AGP",
"power" = on,
"target_output" = target_pressure,
"sigtype" = "status"
)
radio_connection.post_signal(src, signal, filter = RADIO_ATMOSIA)
return 1
interact(mob/user as mob)
var/dat = {"<b>Power: </b><a href='?src=\ref[src];power=1'>[on?"On":"Off"]</a><br>
<b>Desirable output pressure: </b>
@@ -104,35 +112,34 @@ obj/machinery/atmospherics/binary/pump
user << browse("<HEAD><TITLE>[src.name] control</TITLE></HEAD><TT>[dat]</TT>", "window=atmo_pump")
onclose(user, "atmo_pump")
var/frequency = 0
var/id = null
var/datum/radio_frequency/radio_connection
initialize()
..()
if(frequency)
set_frequency(frequency)
receive_signal(datum/signal/signal)
if(!signal.data["tag"] || (signal.data["tag"] != id))
if(!signal.data["tag"] || (signal.data["tag"] != id) || (signal.data["sigtype"]!="command"))
return 0
switch(signal.data["command"])
if("power_on")
on = 1
if("power" in signal.data)
on = text2num(signal.data["power"])
if("power_off")
on = 0
if("power_toggle" in signal.data)
on = !on
if("power_toggle")
on = !on
if("set_output_pressure" in signal.data)
target_pressure = between(
0,
text2num(signal.data["set_output_pressure"]),
ONE_ATMOSPHERE*50
)
if("set_output_pressure")
var/number = text2num(signal.data["parameter"])
number = min(max(number, 0), ONE_ATMOSPHERE*50)
if("status" in signal.data)
spawn(2)
broadcast_status()
return //do not update_icon
target_pressure = number
spawn(5)
spawn(2)
broadcast_status()
update_icon()
return
@@ -74,11 +74,13 @@ obj/machinery/atmospherics/binary/volume_pump
signal.transmission_method = 1 //radio signal
signal.source = src
signal.data["tag"] = id
signal.data["device"] = "APV"
signal.data["power"] = on
signal.data["transfer_rate"] = transfer_rate
signal.data = list(
"tag" = id,
"device" = "APV",
"power" = on,
"transfer_rate" = transfer_rate,
"sigtype" = "status"
)
radio_connection.post_signal(src, signal)
return 1
@@ -89,25 +91,27 @@ obj/machinery/atmospherics/binary/volume_pump
set_frequency(frequency)
receive_signal(datum/signal/signal)
if(!signal.data["tag"] || (signal.data["tag"] != id))
if(!signal.data["tag"] || (signal.data["tag"] != id) || (signal.data["sigtype"]!="command"))
return 0
switch(signal.data["command"])
if("power_on")
on = 1
if("power" in signal.data)
on = text2num(signal.data["power"])
if("power_off")
on = 0
if("power_toggle" in signal.data)
on = !on
if("power_toggle")
on = !on
if("set_transfer_rate" in signal.data)
transfer_rate = between(
0,
text2num(signal.data["set_transfer_rate"]),
air1.volume
)
if("set_transfer_rate")
var/number = text2num(signal.data["parameter"])
number = min(max(number, 0), air1.volume)
if("status" in signal.data)
spawn(2)
broadcast_status()
return //do not update_icon
transfer_rate = number
spawn(5)
spawn(2)
broadcast_status()
update_icon()
@@ -80,10 +80,14 @@
signal.transmission_method = 1 //radio signal
signal.source = src
signal.data["tag"] = id
signal.data["device"] = "AO"
signal.data["power"] = on
signal.data["volume_rate"] = volume_rate
signal.data = list(
"tag" = id,
"device" = "AO",
"power" = on,
"volume_rate" = volume_rate,
//"timestamp" = world.time,
"sigtype" = "status"
)
radio_connection.post_signal(src, signal)
@@ -95,36 +99,31 @@
set_frequency(frequency)
receive_signal(datum/signal/signal)
if(!signal.data["tag"] || (signal.data["tag"] != id) || !signal.data["command"])
if(!signal.data["tag"] || (signal.data["tag"] != id) || (signal.data["sigtype"]!="command"))
return 0
switch(signal.data["command"])
if("power_on")
on = 1
if("power" in signal.data)
on = text2num(signal.data["power"])
if("power_off")
on = 0
if("power_toggle" in signal.data)
on = !on
if("power_toggle")
on = !on
if("inject" in signal.data)
spawn inject()
return
if("inject")
spawn inject()
return
if("set_volume_rate" in signal.data)
var/number = text2num(signal.data["set_volume_rate"])
volume_rate = between(0, number, air_contents.volume)
if("set_volume_rate")
var/number = text2num(signal.data["parameter"])
number = min(max(number, 0), air_contents.volume)
if("status" in signal.data)
spawn(2)
broadcast_status()
return //do not update_icon
volume_rate = number
if("status")
//broadcast_status
else
log_admin("DEBUG \[[world.timeofday]\]: outlet_injector/receive_signal: unknown command \"[signal.data["command"]]\"\n[signal.debug_print()]")
return
spawn(5)
//log_admin("DEBUG \[[world.timeofday]\]: outlet_injector/receive_signal: unknown command \"[signal.data["command"]]\"\n[signal.debug_print()]")
//return
spawn(2)
broadcast_status()
update_icon()
+59 -50
View File
@@ -64,7 +64,7 @@
return
if (!node)
on = 0
//broadcast_status()
//broadcast_status() // from now air alarm/control computer should request update purposely --rastaf0
if(!on)
return 0
@@ -136,12 +136,13 @@
"area" = src.area_uid,
"tag" = src.id_tag,
"device" = "AVP",
"power" = on?("on"):("off"),
"power" = on,
"direction" = pump_direction?("release"):("siphon"),
"checks" = pressure_checks,
"internal" = internal_pressure_bound,
"external" = external_pressure_bound,
"timestamp" = air_master.current_cycle,
"timestamp" = world.time,
"sigtype" = "status"
)
radio_connection.post_signal(src, signal, radio_filter_out)
@@ -153,74 +154,82 @@
..()
//some vents work his own spesial way
radio_filter_in = frequency==initial(frequency)?(RADIO_FROM_AIRALARM):null
radio_filter_out = frequency==initial(frequency)?(RADIO_TO_AIRALARM):null
radio_filter_in = frequency==1439?(RADIO_FROM_AIRALARM):null
radio_filter_out = frequency==1439?(RADIO_TO_AIRALARM):null
if(frequency)
set_frequency(frequency)
update_icon()
receive_signal(datum/signal/signal)
if(stat & (NOPOWER|BROKEN))
return
//log_admin("DEBUG \[[world.timeofday]\]: /obj/machinery/atmospherics/unary/vent_pump/receive_signal([signal.debug_print()])")
if(!signal.data["tag"] || (signal.data["tag"] != id_tag) || !signal.data["command"])
if(!signal.data["tag"] || (signal.data["tag"] != id_tag) || (signal.data["sigtype"]!="command"))
return 0
switch(signal.data["command"])
if("power_on")
on = 1
if("purge" in signal.data)
pressure_checks &= ~1
pump_direction = 0
if("power_off")
on = 0
if("stabalize" in signal.data)
pressure_checks |= 1
pump_direction = 1
if("power_toggle")
on = !on
if("power" in signal.data)
on = text2num(signal.data["power"])
if("toggle_checks")
pressure_checks = (pressure_checks?0:3)
if("power_toggle" in signal.data)
on = !on
if("set_direction")
var/number = text2num(signal.data["parameter"])
if(number > 0.5)
pump_direction = 1
else
pump_direction = 0
if("checks" in signal.data)
pressure_checks = text2num(signal.data["checks"])
if("purge")
pressure_checks &= ~1
pump_direction = 0
if("checks_toggle" in signal.data)
pressure_checks = (pressure_checks?0:3)
if("stabalize")
pressure_checks |= 1
pump_direction = 1
if("direction" in signal.data)
pump_direction = text2num(signal.data["direction"])
if("set_checks")
var/number = round(text2num(signal.data["parameter"]),1)
pressure_checks = number
if("set_internal_pressure" in signal.data)
internal_pressure_bound = between(
0,
text2num(signal.data["set_internal_pressure"]),
ONE_ATMOSPHERE*50
)
if("set_internal_pressure")
var/number = text2num(signal.data["parameter"])
number = min(max(number, 0), ONE_ATMOSPHERE*50)
if("set_external_pressure" in signal.data)
external_pressure_bound = between(
0,
text2num(signal.data["set_external_pressure"]),
ONE_ATMOSPHERE*50
)
internal_pressure_bound = number
if("adjust_internal_pressure" in signal.data)
internal_pressure_bound = between(
0,
internal_pressure_bound + text2num(signal.data["adjust_internal_pressure"]),
ONE_ATMOSPHERE*50
)
if("set_external_pressure")
var/number = text2num(signal.data["parameter"])
number = min(max(number, 0), ONE_ATMOSPHERE*50)
if("adjust_external_pressure" in signal.data)
external_pressure_bound = between(
0,
external_pressure_bound + text2num(signal.data["adjust_external_pressure"]),
ONE_ATMOSPHERE*50
)
external_pressure_bound = number
if("init" in signal.data)
name = signal.data["init"]
return
if("init")
name = signal.data["parameter"]
return
if("status" in signal.data)
spawn(2)
broadcast_status()
return //do not update_icon
if("status")
//broadcast_status
else
log_admin("DEBUG \[[world.timeofday]\]: vent_pump/receive_signal: unknown command \"[signal.data["command"]]\"\n[signal.debug_print()]")
return
//log_admin("DEBUG \[[world.timeofday]\]: vent_pump/receive_signal: unknown command \"[signal.data["command"]]\"\n[signal.debug_print()]")
spawn(2)
broadcast_status()
update_icon()
update_icon()
return
hide(var/i) //to make the little pipe section invisible, the icon changes.
@@ -235,7 +244,7 @@
return
attackby(obj/item/W, mob/user)
if(istype(W, /obj/item/weapon/weldingtool))
if(istype(W, /obj/item/weapon/weldingtool) && W:welding)
if (W:remove_fuel(2,user))
user << "\blue Now welding the vent."
if(do_after(user, 20))
@@ -63,13 +63,14 @@
"area" = area_uid,
"tag" = id_tag,
"device" = "AScr",
"timestamp" = air_master.current_cycle,
"on" = on,
"timestamp" = world.time,
"power" = on,
"scrubbing" = scrubbing,
"panic" = panic,
"filter_co2" = scrub_CO2,
"filter_toxins" = scrub_Toxins,
"filter_n2o" = scrub_N2O,
"sigtype" = "status"
)
radio_connection.post_signal(src, signal, radio_filter_out)
@@ -160,42 +161,68 @@
*/
receive_signal(datum/signal/signal)
if(!signal.data["tag"] || (signal.data["tag"] != id_tag) || !signal.data["command"])
if(stat & (NOPOWER|BROKEN))
return
if(!signal.data["tag"] || (signal.data["tag"] != id_tag) || (signal.data["sigtype"]!="command"))
return 0
switch(signal.data["command"])
if("toggle_power")
on = !on
if("toggle_scrubbing")
scrubbing = !scrubbing
if("toggle_co2_scrub")
scrub_CO2 = !scrub_CO2
if("toggle_tox_scrub")
scrub_Toxins = !scrub_Toxins
if("toggle_n2o_scrub")
scrub_N2O = !scrub_N2O
if("toggle_panic_siphon")
panic = !panic
if(panic)
on = 1
scrubbing = 0
volume_rate = 2000
else
scrubbing = 1
volume_rate = initial(volume_rate)
if("init")
name = signal.data["parameter"]
return
if("status")
//broadcast_status
if("power" in signal.data)
on = text2num(signal.data["power"])
if("power_toggle" in signal.data)
on = !on
if("panic_siphon" in signal.data) //must be before if("scrubbing" thing
panic = text2num(signal.data["panic_siphon"])
if(panic)
on = 1
scrubbing = 0
volume_rate = 2000
else
log_admin("DEBUG \[[world.timeofday]\]: vent_scrubber/receive_signal: unknown command \"[signal.data["command"]]\"\n[signal.debug_print()]")
return
scrubbing = 1
volume_rate = initial(volume_rate)
if("toggle_panic_siphon" in signal.data)
panic = !panic
if(panic)
on = 1
scrubbing = 0
volume_rate = 2000
else
scrubbing = 1
volume_rate = initial(volume_rate)
if("scrubbing" in signal.data)
scrubbing = text2num(signal.data["scrubbing"])
if("toggle_scrubbing" in signal.data)
scrubbing = !scrubbing
if("co2_scrub" in signal.data)
scrub_CO2 = text2num(signal.data["co2_scrub"])
if("toggle_co2_scrub" in signal.data)
scrub_CO2 = !scrub_CO2
if("tox_scrub" in signal.data)
scrub_Toxins = text2num(signal.data["tox_scrub"])
if("toggle_tox_scrub" in signal.data)
scrub_Toxins = !scrub_Toxins
if("n2o_scrub" in signal.data)
scrub_N2O = text2num(signal.data["n2o_scrub"])
if("toggle_n2o_scrub" in signal.data)
scrub_N2O = !scrub_N2O
if("init" in signal.data)
name = signal.data["init"]
return
if("status" in signal.data)
spawn(2)
broadcast_status()
return //do not update_icon
// log_admin("DEBUG \[[world.timeofday]\]: vent_scrubber/receive_signal: unknown command \"[signal.data["command"]]\"\n[signal.debug_print()]")
spawn(2)
broadcast_status()
update_icon()
update_icon()
return
power_change()