From e70ddc535669eb252cbe655ce4cb36b6ecef1e30 Mon Sep 17 00:00:00 2001 From: "giacomand@gmail.com" Date: Mon, 4 Feb 2013 20:24:55 +0000 Subject: [PATCH] Committing SuperSayu and Kaze Espada's patch. http://forums.nanotrasen.com/viewtopic.php?f=16&t=11958 Atmospherics: * Atmo computer UI auto updates again (simple interact() fix) * Injectors should show up on atmo computers without hitting refresh * Fixes Issue 1258 Powernets: * Rebuild powernets no longer breaks the system. git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5652 316c924e-a436-60f5-8080-3fe189b3f50e --- .../components/unary/outlet_injector.dm | 2 ++ .../components/unary/vent_pump.dm | 26 +++++++++---------- code/game/machinery/atmo_control.dm | 3 +++ code/modules/power/apc.dm | 8 ++++++ code/modules/power/power.dm | 4 +-- 5 files changed, 28 insertions(+), 15 deletions(-) diff --git a/code/ATMOSPHERICS/components/unary/outlet_injector.dm b/code/ATMOSPHERICS/components/unary/outlet_injector.dm index f070882ba82..64a016bc626 100644 --- a/code/ATMOSPHERICS/components/unary/outlet_injector.dm +++ b/code/ATMOSPHERICS/components/unary/outlet_injector.dm @@ -105,6 +105,8 @@ ..() set_frequency(frequency) + spawn(rand(25,50)) + broadcast_status() receive_signal(datum/signal/signal) if(!signal.data["tag"] || (signal.data["tag"] != id) || (signal.data["sigtype"]!="command")) diff --git a/code/ATMOSPHERICS/components/unary/vent_pump.dm b/code/ATMOSPHERICS/components/unary/vent_pump.dm index 9590a9015e8..67bf0688d9e 100644 --- a/code/ATMOSPHERICS/components/unary/vent_pump.dm +++ b/code/ATMOSPHERICS/components/unary/vent_pump.dm @@ -190,62 +190,62 @@ if(!signal.data["tag"] || (signal.data["tag"] != id_tag) || (signal.data["sigtype"]!="command")) return 0 - if(signal.data["purge"] != null) + if("purge" in signal.data) pressure_checks &= ~1 pump_direction = 0 - if(signal.data["stabalize"] != null) + if("stabalize" in signal.data) pressure_checks |= 1 pump_direction = 1 - if(signal.data["power"] != null) + if("power" in signal.data) on = text2num(signal.data["power"]) - if(signal.data["power_toggle"] != null) + if("power_toggle" in signal.data) on = !on - if(signal.data["checks"] != null) + if("checks" in signal.data) pressure_checks = text2num(signal.data["checks"]) - if(signal.data["checks_toggle"] != null) + if("checks_toggle" in signal.data) pressure_checks = (pressure_checks?0:3) - if(signal.data["direction"] != null) + if("direction" in signal.data) pump_direction = text2num(signal.data["direction"]) - if(signal.data["set_internal_pressure"] != null) + if("set_internal_pressure" in signal.data) internal_pressure_bound = between( 0, text2num(signal.data["set_internal_pressure"]), ONE_ATMOSPHERE*50 ) - if(signal.data["set_external_pressure"] != null) + if("set_external_pressure" in signal.data) external_pressure_bound = between( 0, text2num(signal.data["set_external_pressure"]), ONE_ATMOSPHERE*50 ) - if(signal.data["adjust_internal_pressure"] != null) + 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(signal.data["adjust_external_pressure"] != null) + if("adjust_external_pressure" in signal.data) external_pressure_bound = between( 0, external_pressure_bound + text2num(signal.data["adjust_external_pressure"]), ONE_ATMOSPHERE*50 ) - if(signal.data["init"] != null) + if("init" in signal.data) name = signal.data["init"] return - if(signal.data["status"] != null) + if("status" in signal.data) spawn(2) broadcast_status() return //do not update_icon diff --git a/code/game/machinery/atmo_control.dm b/code/game/machinery/atmo_control.dm index f949cc5cc09..bc4aedb5331 100644 --- a/code/game/machinery/atmo_control.dm +++ b/code/game/machinery/atmo_control.dm @@ -93,6 +93,9 @@ obj/machinery/computer/general_air_control user.set_machine(src) onclose(user, "computer") + interact(mob/user) + attack_hand(user) + process() ..() src.updateDialog() diff --git a/code/modules/power/apc.dm b/code/modules/power/apc.dm index c3139f1682d..531522eaabc 100644 --- a/code/modules/power/apc.dm +++ b/code/modules/power/apc.dm @@ -92,6 +92,14 @@ return ..() +/obj/machinery/power/apc/connect_to_network() + //Override because the APC does not directly connect to the network; it goes through a terminal. + //The terminal is what the power computer looks for anyway. + if(!terminal) + make_terminal() + if(terminal) + terminal.connect_to_network() + /obj/machinery/power/apc/New(turf/loc, var/ndir, var/building=0) ..() diff --git a/code/modules/power/power.dm b/code/modules/power/power.dm index bdb6837e00b..e878bdd3efe 100644 --- a/code/modules/power/power.dm +++ b/code/modules/power/power.dm @@ -98,8 +98,7 @@ C.powernet.cables += C for(var/obj/machinery/power/M in machines) - if(!M.powernet) continue // APCs have powernet=0 so they don't count as network nodes directly - M.powernet.nodes[M] = M + M.connect_to_network() // returns a list of all power-related objects (nodes, cable, junctions) in turf, @@ -396,6 +395,7 @@ /obj/machinery/power/proc/connect_to_network() var/turf/T = src.loc + if(!T || !istype(T)) return 0 var/obj/structure/cable/C = T.get_cable_node() if(!C || !C.powernet) return 0 // makepowernets() //TODO: find fast way //EWWWW what are you doing!?