AWW YEAH GENERAL AIR CONTROL FIXED AND STYLED UP NICE 'N' PRETTY.

(Just as busta got perma'd, ironically.)
This commit is contained in:
Rob Nelson
2013-12-01 16:52:15 -08:00
parent 76e4f289f5
commit 417d7b68b5
2 changed files with 145 additions and 56 deletions

View File

@@ -23,14 +23,16 @@
/area/toxins/xenobiology/specimen_3, /area/toxins/xenobiology/specimen_3,
/area/toxins/xenobiology/specimen_4, /area/toxins/xenobiology/specimen_4,
/area/toxins/xenobiology/specimen_5, /area/toxins/xenobiology/specimen_5,
/area/toxins/xenobiology/specimen_6) /area/toxins/xenobiology/specimen_6
)
req_one_access = list(access_xenobiology,access_ce) req_one_access = list(access_xenobiology,access_ce)
/obj/machinery/computer/atmoscontrol/gas_chamber /obj/machinery/computer/atmoscontrol/gas_chamber
name = "\improper Gas Chamber Atmospherics Computer" name = "\improper Gas Chamber Atmospherics Computer"
filter=list( filter=list(
/area/security/gas_chamber) /area/security/gas_chamber
)
req_one_access = list(access_ce,access_hos) req_one_access = list(access_ce,access_hos)

View File

@@ -74,7 +74,7 @@ obj/machinery/air_sensor
if(radio_controller) if(radio_controller)
set_frequency(frequency) set_frequency(frequency)
obj/machinery/computer/general_air_control /obj/machinery/computer/general_air_control
icon = 'icons/obj/computer.dmi' icon = 'icons/obj/computer.dmi'
icon_state = "tank" icon_state = "tank"
@@ -89,13 +89,18 @@ obj/machinery/computer/general_air_control
attack_hand(mob/user) attack_hand(mob/user)
if(..(user)) if(..(user))
return return
user << browse(return_text(),"window=computer") var/html=return_text()+"</body></html>"
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) user.set_machine(src)
onclose(user, "computer") onclose(user, "gac")
process() process()
..() ..()
src.updateDialog() src.updateUsrDialog()
attackby(I as obj, user as mob) attackby(I as obj, user as mob)
if(istype(I, /obj/item/weapon/screwdriver)) if(istype(I, /obj/item/weapon/screwdriver))
@@ -144,35 +149,77 @@ obj/machinery/computer/general_air_control
for(var/id_tag in sensors) for(var/id_tag in sensors)
var/long_name = sensors[id_tag] var/long_name = sensors[id_tag]
var/list/data = sensor_information[id_tag] var/list/data = sensor_information[id_tag]
var/sensor_part = "<B>[long_name]</B>:<BR>" var/sensor_part = "<fieldset><legend>[long_name]</legend>"
if(data) if(data)
sensor_part += "<table>"
if(data["pressure"]) if(data["pressure"])
sensor_part += " <B>Pressure:</B> [data["pressure"]] kPa<BR>" sensor_part += "<tr><th>Pressure:</th><td>[data["pressure"]] kPa</td></tr>"
if(data["temperature"]) if(data["temperature"])
sensor_part += " <B>Temperature:</B> [data["temperature"]] K<BR>" sensor_part += "<tr><th>Temperature:</th><td>[data["temperature"]] K</td></tr>"
if(data["oxygen"]||data["toxins"]||data["nitrogen"]||data["carbon_dioxide"]) if(data["oxygen"]||data["toxins"]||data["nitrogen"]||data["carbon_dioxide"])
sensor_part += " <B>Gas Composition :</B>" sensor_part += "<tr><th>Gas Composition :</th><td><ul>"
if(data["oxygen"]) if(data["oxygen"])
sensor_part += "[data["oxygen"]]% O2; " sensor_part += "<li>[data["oxygen"]]% O<sub>2</sub></li>"
if(data["nitrogen"]) if(data["nitrogen"])
sensor_part += "[data["nitrogen"]]% N; " sensor_part += "<li>[data["nitrogen"]]% N</li>"
if(data["carbon_dioxide"]) if(data["carbon_dioxide"])
sensor_part += "[data["carbon_dioxide"]]% CO2; " sensor_part += "<li>[data["carbon_dioxide"]]% CO<sub>2</sub></li>"
if(data["toxins"]) if(data["toxins"])
sensor_part += "[data["toxins"]]% TX; " sensor_part += "<li>[data["toxins"]]% Plasma</li>"
sensor_part += "<HR>" sensor_part += "</ul></td></tr>"
sensor_part += "</table>"
else else
sensor_part = "<FONT color='red'>[long_name] can not be found!</FONT><BR>" sensor_part += "<FONT color='red'>[long_name] can not be found!</FONT><BR>"
sensor_part += "</fieldset>"
sensor_data += sensor_part sensor_data += sensor_part
else else
sensor_data = "No sensors connected." sensor_data = "<em>No sensors connected.</em>"
var/output = {"<B>[name]</B><HR> var/output = {"<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
<B>Sensor Data:</B><HR><HR>[sensor_data]"} "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<title>[name]</title>
<style type="text/css">
html,body {
font-family:sans-serif,verdana;
font-size:smaller;
color:#666;
}
h1 {
border-bottom:1px solid maroon;
}
table {
border-spacing: 0;
border-collapse: collapse;
}
td, th {
margin: 0;
font-size: small;
border-bottom: 1px solid #ccc;
padding: 3px;
}
th {
text-align:right;
}
fieldset {
border:1px solid #ccc;
background: #efefef;
}
legend {
font-weight:bold;
}
</style>
</head>
<body>
<h1>[name]</h1>
<h2>Sensor Data:</h2>
[sensor_data]"}
return output return output
@@ -197,36 +244,62 @@ obj/machinery/computer/general_air_control
var/pressure_setting = ONE_ATMOSPHERE * 45 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() return_text()
var/output = ..() var/output = ..()
//if(signal.data) //if(signal.data)
// input_info = signal.data // Attempting to fix intake control -- TLE // input_info = signal.data // Attempting to fix intake control -- TLE
output += "<B>Tank Control System</B><BR>" output += "<h2>Tank Control System</h2><BR>"
if(input_info) if(input_tag)
var/power = (input_info["power"]) if(input_info)
var/volume_rate = input_info["volume_rate"] var/power = (input_info["power"])
output += {"<B>Input</B>: [power?("Injecting"):("On Hold")] <A href='?src=\ref[src];in_refresh_status=1'>Refresh</A><BR> var/volume_rate = input_info["volume_rate"]
Rate: [volume_rate] L/sec<BR>"} output += {"
output += "Command: <A href='?src=\ref[src];in_toggle_injector=1'>Toggle Power</A><BR>" <fieldset>
<legend>Input (<A href='?src=\ref[src];in_refresh_status=1'>Refresh</A>)</legend>
<table>
<tr>
<th>State:</th>
<td><A href='?src=\ref[src];in_toggle_injector=1'>[power?("Injecting"):("On Hold")]</A></td>
</tr>
<tr>
<th>Rate:</th>
<td>[volume_rate] L/sec</td>
</tr>
</table>
</fieldset>
"}
else else
output += "<FONT color='red'>ERROR: Can not find input port</FONT> <A href='?src=\ref[src];in_refresh_status=1'>Search</A><BR>" output += "<FONT color='red'>ERROR: Can not find input port</FONT> <A href='?src=\ref[src];in_refresh_status=1'>Search</A><BR>"
if(output_tag)
output += "<BR>" if(output_info)
var/power = (output_info["power"])
if(output_info) var/output_pressure = output_info["internal"]
var/power = (output_info["power"]) output += {"
var/output_pressure = output_info["internal"] <fieldset>
output += {"<B>Output</B>: [power?("Open"):("On Hold")] <A href='?src=\ref[src];out_refresh_status=1'>Refresh</A><BR> <legend>Output (<A href='?src=\ref[src];out_refresh_status=1'>Refresh</A>)</legend>
Max Output Pressure: [output_pressure] kPa<BR>"} <table>
output += "Command: <A href='?src=\ref[src];out_toggle_power=1'>Toggle Power</A> <A href='?src=\ref[src];out_set_pressure=1'>Set Pressure</A><BR>" <tr>
<th>State:</th>
else <td><A href='?src=\ref[src];out_toggle_power=1'>[power?("Open"):("On Hold")]</A></td>
output += "<FONT color='red'>ERROR: Can not find output port</FONT> <A href='?src=\ref[src];out_refresh_status=1'>Search</A><BR>" </tr>
<tr>
output += "Max Output Pressure Set: <A href='?src=\ref[src];adj_pressure=-1000'>-</A> <A href='?src=\ref[src];adj_pressure=-100'>-</A> <A href='?src=\ref[src];adj_pressure=-10'>-</A> <A href='?src=\ref[src];adj_pressure=-1'>-</A> [pressure_setting] kPa <A href='?src=\ref[src];adj_pressure=1'>+</A> <A href='?src=\ref[src];adj_pressure=10'>+</A> <A href='?src=\ref[src];adj_pressure=100'>+</A> <A href='?src=\ref[src];adj_pressure=1000'>+</A><BR>" <th>Max Output Pressure:</th>
<td><A href='?src=\ref[src];out_set_pressure=1'>[output_pressure]</A> kPa</td>
</tr>
</table>
</fieldset>
"}
else
output += "<FONT color='red'>ERROR: Can not find output port</FONT> <A href='?src=\ref[src];out_refresh_status=1'>Search</A><BR>"
return output return output
@@ -237,21 +310,34 @@ Max Output Pressure: [output_pressure] kPa<BR>"}
if(input_tag == id_tag) if(input_tag == id_tag)
input_info = signal.data input_info = signal.data
updateUsrDialog()
else if(output_tag == id_tag) else if(output_tag == id_tag)
output_info = signal.data output_info = signal.data
updateUsrDialog()
else else
..(signal) ..(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) Topic(href, href_list)
if(..()) if(..())
return return
if(href_list["adj_pressure"]) add_fingerprint(usr)
var/change = text2num(href_list["adj_pressure"])
pressure_setting = between(0, pressure_setting + change, 50*ONE_ATMOSPHERE) if(href_list["out_set_pressure"])
spawn(1) var/response=input(usr,"Set new pressure, in kPa. \[0-[50*ONE_ATMOSPHERE]\]") as num
src.updateDialog() pressure_setting = text2num(response)
return pressure_setting = between(0, pressure_setting, 50*ONE_ATMOSPHERE)
if(!radio_connection) if(!radio_connection)
return 0 return 0
@@ -262,27 +348,28 @@ Max Output Pressure: [output_pressure] kPa<BR>"}
input_info = null input_info = null
signal.data = list ("tag" = input_tag, "status") signal.data = list ("tag" = input_tag, "status")
if(href_list["in_toggle_injector"]) else if(href_list["in_toggle_injector"])
input_info = null input_info = null
signal.data = list ("tag" = input_tag, "power_toggle") signal.data = list ("tag" = input_tag, "power_toggle")
if(href_list["out_refresh_status"]) else if(href_list["out_refresh_status"])
output_info = null output_info = null
signal.data = list ("tag" = output_tag, "status") signal.data = list ("tag" = output_tag, "status")
if(href_list["out_toggle_power"]) else if(href_list["out_toggle_power"])
output_info = null output_info = null
signal.data = list ("tag" = output_tag, "power_toggle") signal.data = list ("tag" = output_tag, "power_toggle")
if(href_list["out_set_pressure"]) else if(href_list["out_set_pressure"])
output_info = null output_info = null
signal.data = list ("tag" = output_tag, "set_internal_pressure" = "[pressure_setting]") 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" signal.data["sigtype"]="command"
radio_connection.post_signal(src, signal, filter = RADIO_ATMOSIA) radio_connection.post_signal(src, signal, filter = RADIO_ATMOSIA)
src.updateUsrDialog()
spawn(5)
src.updateDialog()
fuel_injection fuel_injection
icon = 'icons/obj/computer.dmi' icon = 'icons/obj/computer.dmi'