From 38b47ddbed31ba42a0f57b23b378ae5dc5506dfa Mon Sep 17 00:00:00 2001 From: ZomgPonies Date: Fri, 6 Dec 2013 23:07:14 -0500 Subject: [PATCH] New atmo control computer --- code/game/machinery/atmo_control.dm | 195 ++++++++++++++++++++-------- 1 file changed, 141 insertions(+), 54 deletions(-) diff --git a/code/game/machinery/atmo_control.dm b/code/game/machinery/atmo_control.dm index 3f1e72f43a2..80f794c99b7 100644 --- a/code/game/machinery/atmo_control.dm +++ b/code/game/machinery/atmo_control.dm @@ -74,7 +74,7 @@ obj/machinery/air_sensor if(radio_controller) set_frequency(frequency) -obj/machinery/computer/general_air_control +/obj/machinery/computer/general_air_control icon = 'icons/obj/computer.dmi' icon_state = "tank" @@ -89,13 +89,18 @@ obj/machinery/computer/general_air_control attack_hand(mob/user) if(..(user)) return - user << browse(return_text(),"window=computer") + var/html=return_text()+"" + testing("Remember to remove [__FILE__]:[__LINE__]!") + var/f = file("data/gac_debug.html") + fdel(f) + f << html + user << browse(html,"window=gac") user.set_machine(src) - onclose(user, "computer") + onclose(user, "gac") process() ..() - src.updateDialog() + src.updateUsrDialog() attackby(I as obj, user as mob) if(istype(I, /obj/item/weapon/screwdriver)) @@ -144,35 +149,77 @@ obj/machinery/computer/general_air_control for(var/id_tag in sensors) var/long_name = sensors[id_tag] var/list/data = sensor_information[id_tag] - var/sensor_part = "[long_name]:
" + var/sensor_part = "
[long_name]" if(data) + sensor_part += "" if(data["pressure"]) - sensor_part += " Pressure: [data["pressure"]] kPa
" + sensor_part += "" if(data["temperature"]) - sensor_part += " Temperature: [data["temperature"]] K
" + sensor_part += "" if(data["oxygen"]||data["toxins"]||data["nitrogen"]||data["carbon_dioxide"]) - sensor_part += " Gas Composition :" + sensor_part += "" + sensor_part += "
Pressure:[data["pressure"]] kPa
Temperature:[data["temperature"]] K
Gas Composition :
    " if(data["oxygen"]) - sensor_part += "[data["oxygen"]]% O2; " + sensor_part += "
  • [data["oxygen"]]% O2
  • " if(data["nitrogen"]) - sensor_part += "[data["nitrogen"]]% N; " + sensor_part += "
  • [data["nitrogen"]]% N
  • " if(data["carbon_dioxide"]) - sensor_part += "[data["carbon_dioxide"]]% CO2; " + sensor_part += "
  • [data["carbon_dioxide"]]% CO2
  • " if(data["toxins"]) - sensor_part += "[data["toxins"]]% TX; " - sensor_part += "
    " + sensor_part += "
  • [data["toxins"]]% Plasma
  • " + sensor_part += "
" else - sensor_part = "[long_name] can not be found!
" - + sensor_part += "[long_name] can not be found!
" + sensor_part += "
" sensor_data += sensor_part else - sensor_data = "No sensors connected." + sensor_data = "No sensors connected." - var/output = {"[name]
-Sensor Data:

[sensor_data]"} + var/output = {" + + + [name] + + + +

[name]

+

Sensor Data:

+ [sensor_data]"} return output @@ -197,36 +244,62 @@ obj/machinery/computer/general_air_control var/pressure_setting = ONE_ATMOSPHERE * 45 + process() + ..() + if(!input_info && input_tag) + request_device_refresh(input_tag) + if(!output_info && output_tag) + request_device_refresh(output_tag) return_text() var/output = ..() //if(signal.data) // input_info = signal.data // Attempting to fix intake control -- TLE - output += "Tank Control System
" - if(input_info) - var/power = (input_info["power"]) - var/volume_rate = input_info["volume_rate"] - output += {"Input: [power?("Injecting"):("On Hold")] Refresh
-Rate: [volume_rate] L/sec
"} - output += "Command: Toggle Power
" + output += "

Tank Control System


" + if(input_tag) + if(input_info) + var/power = (input_info["power"]) + var/volume_rate = input_info["volume_rate"] + output += {" +
+ Input (Refresh) + + + + + + + + + +
State:[power?("Injecting"):("On Hold")]
Rate:[volume_rate] L/sec
+
+"} - else - output += "ERROR: Can not find input port Search
" - - output += "
" - - if(output_info) - var/power = (output_info["power"]) - var/output_pressure = output_info["internal"] - output += {"Output: [power?("Open"):("On Hold")] Refresh
-Max Output Pressure: [output_pressure] kPa
"} - output += "Command: Toggle Power Set Pressure
" - - else - output += "ERROR: Can not find output port Search
" - - output += "Max Output Pressure Set: - - - - [pressure_setting] kPa + + + +
" + else + output += "ERROR: Can not find input port Search
" + if(output_tag) + if(output_info) + var/power = (output_info["power"]) + var/output_pressure = output_info["internal"] + output += {" +
+ Output (Refresh) + + + + + + + + + +
State:[power?("Open"):("On Hold")]
Max Output Pressure:[output_pressure] kPa
+
+"} + else + output += "ERROR: Can not find output port Search
" return output @@ -237,21 +310,34 @@ Max Output Pressure: [output_pressure] kPa
"} if(input_tag == id_tag) input_info = signal.data + updateUsrDialog() else if(output_tag == id_tag) output_info = signal.data + updateUsrDialog() else ..(signal) + proc/request_device_refresh(var/device) + send_signal(list("tag"=device, "status")) + + proc/send_signal(var/list/data) + var/datum/signal/signal = new + signal.transmission_method = 1 //radio signal + signal.source = src + signal.data=data + signal.data["sigtype"]="command" + radio_connection.post_signal(src, signal, filter = RADIO_ATMOSIA) + Topic(href, href_list) if(..()) return - if(href_list["adj_pressure"]) - var/change = text2num(href_list["adj_pressure"]) - pressure_setting = between(0, pressure_setting + change, 50*ONE_ATMOSPHERE) - spawn(1) - src.updateDialog() - return + add_fingerprint(usr) + + if(href_list["out_set_pressure"]) + var/response=input(usr,"Set new pressure, in kPa. \[0-[50*ONE_ATMOSPHERE]\]") as num + pressure_setting = text2num(response) + pressure_setting = between(0, pressure_setting, 50*ONE_ATMOSPHERE) if(!radio_connection) return 0 @@ -262,27 +348,28 @@ Max Output Pressure: [output_pressure] kPa
"} input_info = null signal.data = list ("tag" = input_tag, "status") - if(href_list["in_toggle_injector"]) + else if(href_list["in_toggle_injector"]) input_info = null signal.data = list ("tag" = input_tag, "power_toggle") - if(href_list["out_refresh_status"]) + else if(href_list["out_refresh_status"]) output_info = null signal.data = list ("tag" = output_tag, "status") - if(href_list["out_toggle_power"]) + else if(href_list["out_toggle_power"]) output_info = null signal.data = list ("tag" = output_tag, "power_toggle") - if(href_list["out_set_pressure"]) + else if(href_list["out_set_pressure"]) output_info = null signal.data = list ("tag" = output_tag, "set_internal_pressure" = "[pressure_setting]") + else + testing("Bad Topic() to GAC \"[src.name]\": [href]") + return // NOPE. signal.data["sigtype"]="command" radio_connection.post_signal(src, signal, filter = RADIO_ATMOSIA) - - spawn(5) - src.updateDialog() + src.updateUsrDialog() fuel_injection icon = 'icons/obj/computer.dmi'