mirror of
https://github.com/CHOMPstation/CHOMPstation.git
synced 2026-08-25 13:06:38 +01:00
Updates portable pumps and scrubbers
This commit is contained in:
@@ -71,11 +71,19 @@
|
||||
<font color="red">[status]</font><br>
|
||||
<a href="?src=\ref[src];scan=1">Scan</a>
|
||||
<table border="1" width="90%">"}
|
||||
for(var/obj/machinery/portable_atmospherics/scrubber/huge/scrubber in connectedscrubbers)
|
||||
for(var/obj/machinery/portable_atmospherics/powered/scrubber/huge/scrubber in connectedscrubbers)
|
||||
dat += {"
|
||||
<tr>
|
||||
<td>[scrubber.name]</td>
|
||||
<td width="150"><a class="green" href="?src=\ref[src];scrub=\ref[scrubber];toggle=1">Turn On</a> <a class="red" href="?src=\ref[src];scrub=\ref[scrubber];toggle=0">Turn Off</a></td>
|
||||
<td>
|
||||
[scrubber.name]<br>
|
||||
Pressure: [round(scrubber.air_contents.return_pressure(), 0.01)] kPa<br>
|
||||
Flow Rate: [round(scrubber.last_flow_rate,0.1)] L/s<br>
|
||||
</td>
|
||||
<td width="150">
|
||||
<a class="green" href="?src=\ref[src];scrub=\ref[scrubber];toggle=1">Turn On</a>
|
||||
<a class="red" href="?src=\ref[src];scrub=\ref[scrubber];toggle=0">Turn Off</a><br>
|
||||
Load: [round(scrubber.last_power_draw)] W
|
||||
</td>
|
||||
</tr>"}
|
||||
|
||||
dat += {"
|
||||
@@ -96,7 +104,7 @@
|
||||
if(href_list["scan"])
|
||||
scanscrubbers()
|
||||
else if(href_list["toggle"])
|
||||
var/obj/machinery/portable_atmospherics/scrubber/huge/scrubber = locate(href_list["scrub"])
|
||||
var/obj/machinery/portable_atmospherics/powered/scrubber/huge/scrubber = locate(href_list["scrub"])
|
||||
|
||||
if(!validscrubber(scrubber))
|
||||
spawn(20)
|
||||
@@ -108,7 +116,7 @@
|
||||
scrubber.on = text2num(href_list["toggle"])
|
||||
scrubber.update_icon()
|
||||
|
||||
proc/validscrubber( var/obj/machinery/portable_atmospherics/scrubber/huge/scrubber as obj )
|
||||
proc/validscrubber( var/obj/machinery/portable_atmospherics/powered/scrubber/huge/scrubber as obj )
|
||||
if(!isobj(scrubber) || get_dist(scrubber.loc, src.loc) > src.range || scrubber.loc.z != src.loc.z)
|
||||
return 0
|
||||
|
||||
@@ -118,7 +126,7 @@
|
||||
connectedscrubbers = new()
|
||||
|
||||
var/found = 0
|
||||
for(var/obj/machinery/portable_atmospherics/scrubber/huge/scrubber in range(range, src.loc))
|
||||
for(var/obj/machinery/portable_atmospherics/powered/scrubber/huge/scrubber in range(range, src.loc))
|
||||
if(istype(scrubber))
|
||||
found = 1
|
||||
connectedscrubbers += scrubber
|
||||
@@ -132,7 +140,7 @@
|
||||
/obj/machinery/computer/area_atmos/area
|
||||
zone = "This computer is working in a wired network limited to this area."
|
||||
|
||||
validscrubber( var/obj/machinery/portable_atmospherics/scrubber/huge/scrubber as obj )
|
||||
validscrubber( var/obj/machinery/portable_atmospherics/powered/scrubber/huge/scrubber as obj )
|
||||
if(!isobj(scrubber))
|
||||
return 0
|
||||
|
||||
@@ -166,7 +174,7 @@
|
||||
var/area/A = T.loc
|
||||
if (A.master)
|
||||
A = A.master
|
||||
for(var/obj/machinery/portable_atmospherics/scrubber/huge/scrubber in world )
|
||||
for(var/obj/machinery/portable_atmospherics/powered/scrubber/huge/scrubber in world )
|
||||
var/turf/T2 = get_turf(scrubber)
|
||||
if(T2 && T2.loc)
|
||||
var/area/A2 = T2.loc
|
||||
|
||||
@@ -133,3 +133,39 @@
|
||||
return
|
||||
|
||||
return
|
||||
|
||||
|
||||
|
||||
/obj/machinery/portable_atmospherics/powered
|
||||
var/power_rating
|
||||
var/power_losses
|
||||
var/last_power_draw = 0
|
||||
var/obj/item/weapon/cell/cell
|
||||
|
||||
/obj/machinery/portable_atmospherics/powered/attackby(obj/item/I, mob/user)
|
||||
if(istype(I, /obj/item/weapon/cell))
|
||||
if(cell)
|
||||
user << "There is already a power cell installed."
|
||||
return
|
||||
|
||||
var/obj/item/weapon/cell/C = I
|
||||
|
||||
user.drop_item()
|
||||
C.add_fingerprint(user)
|
||||
cell = C
|
||||
C.loc = src
|
||||
user.visible_message("\blue [user] opens the panel on [src] and inserts [C].", "\blue You open the panel on [src] and insert [C].")
|
||||
return
|
||||
|
||||
if(istype(I, /obj/item/weapon/screwdriver))
|
||||
if(!cell)
|
||||
user << "\red There is no power cell installed."
|
||||
return
|
||||
|
||||
user.visible_message("\blue [user] opens the panel on [src] and removes [cell].", "\blue You open the panel on [src] and remove [cell].")
|
||||
cell.add_fingerprint(user)
|
||||
cell.loc = src.loc
|
||||
cell = null
|
||||
return
|
||||
|
||||
..()
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/obj/machinery/portable_atmospherics/pump
|
||||
name = "Portable Air Pump"
|
||||
/obj/machinery/portable_atmospherics/powered/pump
|
||||
name = "portable air pump"
|
||||
|
||||
icon = 'icons/obj/atmos.dmi'
|
||||
icon_state = "psiphon:0"
|
||||
@@ -10,11 +10,18 @@
|
||||
var/target_pressure = 100
|
||||
|
||||
volume = 1000
|
||||
|
||||
power_rating = 7500 //7500 W ~ 10 HP
|
||||
power_losses = 150
|
||||
|
||||
/obj/machinery/portable_atmospherics/pump/update_icon()
|
||||
/obj/machinery/portable_atmospherics/powered/pump/New()
|
||||
..()
|
||||
cell = new/obj/item/weapon/cell(src)
|
||||
|
||||
/obj/machinery/portable_atmospherics/powered/pump/update_icon()
|
||||
src.overlays = 0
|
||||
|
||||
if(on)
|
||||
if(on && cell && cell.charge)
|
||||
icon_state = "psiphon:1"
|
||||
else
|
||||
icon_state = "psiphon:0"
|
||||
@@ -27,7 +34,7 @@
|
||||
|
||||
return
|
||||
|
||||
/obj/machinery/portable_atmospherics/pump/emp_act(severity)
|
||||
/obj/machinery/portable_atmospherics/powered/pump/emp_act(severity)
|
||||
if(stat & (BROKEN|NOPOWER))
|
||||
..(severity)
|
||||
return
|
||||
@@ -43,76 +50,79 @@
|
||||
|
||||
..(severity)
|
||||
|
||||
/obj/machinery/portable_atmospherics/pump/process()
|
||||
/obj/machinery/portable_atmospherics/powered/pump/process()
|
||||
..()
|
||||
if(on)
|
||||
var/power_draw = -1
|
||||
|
||||
if(on && cell && cell.charge)
|
||||
var/datum/gas_mixture/environment
|
||||
if(holding)
|
||||
environment = holding.air_contents
|
||||
else
|
||||
environment = loc.return_air()
|
||||
|
||||
var/pressure_delta
|
||||
var/output_volume
|
||||
var/air_temperature
|
||||
if(direction_out)
|
||||
var/pressure_delta = target_pressure - environment.return_pressure()
|
||||
//Can not have a pressure delta that would cause environment pressure > tank pressure
|
||||
|
||||
var/transfer_moles = 0
|
||||
if(air_contents.temperature > 0)
|
||||
transfer_moles = pressure_delta*environment.volume/(air_contents.temperature * R_IDEAL_GAS_EQUATION)
|
||||
|
||||
//Actually transfer the gas
|
||||
var/datum/gas_mixture/removed = air_contents.remove(transfer_moles)
|
||||
|
||||
if(holding)
|
||||
environment.merge(removed)
|
||||
else
|
||||
loc.assume_air(removed)
|
||||
pressure_delta = target_pressure - environment.return_pressure()
|
||||
output_volume = environment.volume * environment.group_multiplier
|
||||
air_temperature = environment.temperature? environment.temperature : air_contents.temperature
|
||||
else
|
||||
var/pressure_delta = target_pressure - air_contents.return_pressure()
|
||||
//Can not have a pressure delta that would cause environment pressure > tank pressure
|
||||
|
||||
var/transfer_moles = 0
|
||||
if(environment.temperature > 0)
|
||||
transfer_moles = pressure_delta*air_contents.volume/(environment.temperature * R_IDEAL_GAS_EQUATION)
|
||||
|
||||
//Actually transfer the gas
|
||||
var/datum/gas_mixture/removed
|
||||
if(holding)
|
||||
removed = environment.remove(transfer_moles)
|
||||
else
|
||||
removed = loc.remove_air(transfer_moles)
|
||||
|
||||
air_contents.merge(removed)
|
||||
//src.update_icon()
|
||||
|
||||
pressure_delta = target_pressure - air_contents.return_pressure()
|
||||
output_volume = air_contents.volume * air_contents.group_multiplier
|
||||
air_temperature = air_contents.temperature? air_contents.temperature : environment.temperature
|
||||
|
||||
var/transfer_moles = pressure_delta*output_volume/(air_temperature * R_IDEAL_GAS_EQUATION)
|
||||
|
||||
if (pressure_delta > 0.01)
|
||||
if (direction_out)
|
||||
power_draw = pump_gas(src, air_contents, environment, transfer_moles, power_rating)
|
||||
else
|
||||
power_draw = pump_gas(src, environment, air_contents, transfer_moles, power_rating)
|
||||
|
||||
if (power_draw < 0)
|
||||
last_flow_rate = 0
|
||||
last_power_draw = 0
|
||||
else
|
||||
power_draw = max(power_draw, power_losses)
|
||||
cell.use(power_draw * CELLRATE)
|
||||
last_power_draw = power_draw
|
||||
|
||||
//ran out of charge
|
||||
if (!cell.charge)
|
||||
update_icon()
|
||||
|
||||
src.updateDialog()
|
||||
return
|
||||
|
||||
/obj/machinery/portable_atmospherics/pump/return_air()
|
||||
/obj/machinery/portable_atmospherics/powered/pump/return_air()
|
||||
return air_contents
|
||||
|
||||
/obj/machinery/portable_atmospherics/pump/attack_ai(var/mob/user as mob)
|
||||
/obj/machinery/portable_atmospherics/powered/pump/attack_ai(var/mob/user as mob)
|
||||
return src.attack_hand(user)
|
||||
|
||||
/obj/machinery/portable_atmospherics/pump/attack_paw(var/mob/user as mob)
|
||||
/obj/machinery/portable_atmospherics/powered/pump/attack_paw(var/mob/user as mob)
|
||||
return src.attack_hand(user)
|
||||
|
||||
/obj/machinery/portable_atmospherics/pump/attack_hand(var/mob/user as mob)
|
||||
/obj/machinery/portable_atmospherics/powered/pump/attack_hand(var/mob/user as mob)
|
||||
|
||||
user.set_machine(src)
|
||||
var/holding_text
|
||||
|
||||
if(holding)
|
||||
holding_text = {"<BR><B>Tank Pressure</B>: [holding.air_contents.return_pressure()] KPa<BR>
|
||||
<A href='?src=\ref[src];remove_tank=1'>Remove Tank</A><BR>
|
||||
holding_text = {"<BR><B>Tank Pressure</B>: [round(holding.air_contents.return_pressure(), 0.01)] kPa<BR>
|
||||
<A href='?src=\ref[src];remove_tank=1'>Remove Tank</A>
|
||||
"}
|
||||
var/output_text = {"<TT><B>[name]</B><BR>
|
||||
Pressure: [air_contents.return_pressure()] KPa<BR>
|
||||
var/output_text = {"<TT><B>[capitalize(name)]</B><BR>
|
||||
Pressure: [round(air_contents.return_pressure(), 0.01)] kPa<BR>
|
||||
Flow Rate: [round(last_flow_rate, 0.1)] L/s<BR>
|
||||
Port Status: [(connected_port)?("Connected"):("Disconnected")]
|
||||
[holding_text]
|
||||
[holding_text]<BR>
|
||||
<BR>
|
||||
Cell Charge: [cell? "[round(cell.percent())]%" : "N/A"] | Load: [round(last_power_draw)] W<BR>
|
||||
Power Switch: <A href='?src=\ref[src];power=1'>[on?("On"):("Off")]</A><BR>
|
||||
Pump Direction: <A href='?src=\ref[src];direction=1'>[direction_out?("Out"):("In")]</A><BR>
|
||||
Target Pressure: <A href='?src=\ref[src];pressure_adj=-1000'>-</A> <A href='?src=\ref[src];pressure_adj=-100'>-</A> <A href='?src=\ref[src];pressure_adj=-10'>-</A> <A href='?src=\ref[src];pressure_adj=-1'>-</A> [target_pressure] <A href='?src=\ref[src];pressure_adj=1'>+</A> <A href='?src=\ref[src];pressure_adj=10'>+</A> <A href='?src=\ref[src];pressure_adj=100'>+</A> <A href='?src=\ref[src];pressure_adj=1000'>+</A><BR>
|
||||
Target Pressure: <A href='?src=\ref[src];pressure_adj=-1000'>-</A> <A href='?src=\ref[src];pressure_adj=-100'>-</A> <A href='?src=\ref[src];pressure_adj=-10'>-</A> <A href='?src=\ref[src];pressure_adj=-1'>-</A> [target_pressure] kPa<A href='?src=\ref[src];pressure_adj=1'>+</A> <A href='?src=\ref[src];pressure_adj=10'>+</A> <A href='?src=\ref[src];pressure_adj=100'>+</A> <A href='?src=\ref[src];pressure_adj=1000'>+</A><BR>
|
||||
<HR>
|
||||
<A href='?src=\ref[user];mach_close=pump'>Close</A><BR>
|
||||
"}
|
||||
@@ -122,7 +132,7 @@ Target Pressure: <A href='?src=\ref[src];pressure_adj=-1000'>-</A> <A href='?src
|
||||
|
||||
return
|
||||
|
||||
/obj/machinery/portable_atmospherics/pump/Topic(href, href_list)
|
||||
/obj/machinery/portable_atmospherics/powered/pump/Topic(href, href_list)
|
||||
..()
|
||||
if (usr.stat || usr.restrained())
|
||||
return
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
/obj/machinery/portable_atmospherics/scrubber
|
||||
/obj/machinery/portable_atmospherics/powered/scrubber
|
||||
name = "Portable Air Scrubber"
|
||||
|
||||
icon = 'icons/obj/atmos.dmi'
|
||||
@@ -9,8 +9,17 @@
|
||||
var/volume_rate = 800
|
||||
|
||||
volume = 750
|
||||
|
||||
power_rating = 7500 //7500 W ~ 10 HP
|
||||
power_losses = 150
|
||||
|
||||
/obj/machinery/portable_atmospherics/scrubber/emp_act(severity)
|
||||
var/list/scrubbing_gas = list("phoron", "carbon_dioxide", "sleeping_agent", "oxygen_agent_b")
|
||||
|
||||
/obj/machinery/portable_atmospherics/powered/scrubber/New()
|
||||
..()
|
||||
cell = new/obj/item/weapon/cell(src)
|
||||
|
||||
/obj/machinery/portable_atmospherics/powered/scrubber/emp_act(severity)
|
||||
if(stat & (BROKEN|NOPOWER))
|
||||
..(severity)
|
||||
return
|
||||
@@ -21,62 +30,10 @@
|
||||
|
||||
..(severity)
|
||||
|
||||
/obj/machinery/portable_atmospherics/scrubber/huge
|
||||
name = "Huge Air Scrubber"
|
||||
icon_state = "scrubber:0"
|
||||
anchored = 1
|
||||
volume = 50000
|
||||
volume_rate = 5000
|
||||
|
||||
var/global/gid = 1
|
||||
var/id = 0
|
||||
New()
|
||||
..()
|
||||
id = gid
|
||||
gid++
|
||||
|
||||
name = "[name] (ID [id])"
|
||||
|
||||
attack_hand(var/mob/user as mob)
|
||||
usr << "\blue You can't directly interact with this machine. Use the area atmos computer."
|
||||
|
||||
update_icon()
|
||||
src.overlays = 0
|
||||
|
||||
if(on)
|
||||
icon_state = "scrubber:1"
|
||||
else
|
||||
icon_state = "scrubber:0"
|
||||
|
||||
attackby(var/obj/item/weapon/W as obj, var/mob/user as mob)
|
||||
if(istype(W, /obj/item/weapon/wrench))
|
||||
if(on)
|
||||
user << "\blue Turn it off first!"
|
||||
return
|
||||
|
||||
anchored = !anchored
|
||||
playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1)
|
||||
user << "\blue You [anchored ? "wrench" : "unwrench"] \the [src]."
|
||||
|
||||
return
|
||||
|
||||
..()
|
||||
|
||||
/obj/machinery/portable_atmospherics/scrubber/huge/stationary
|
||||
name = "Stationary Air Scrubber"
|
||||
|
||||
attackby(var/obj/item/weapon/W as obj, var/mob/user as mob)
|
||||
if(istype(W, /obj/item/weapon/wrench))
|
||||
user << "\blue The bolts are too tight for you to unscrew!"
|
||||
return
|
||||
|
||||
..()
|
||||
|
||||
|
||||
/obj/machinery/portable_atmospherics/scrubber/update_icon()
|
||||
/obj/machinery/portable_atmospherics/powered/scrubber/update_icon()
|
||||
src.overlays = 0
|
||||
|
||||
if(on)
|
||||
if(on && cell && cell.charge)
|
||||
icon_state = "pscrubber:1"
|
||||
else
|
||||
icon_state = "pscrubber:0"
|
||||
@@ -89,79 +46,64 @@
|
||||
|
||||
return
|
||||
|
||||
/obj/machinery/portable_atmospherics/scrubber/process()
|
||||
/obj/machinery/portable_atmospherics/powered/scrubber/process()
|
||||
..()
|
||||
|
||||
var/power_draw = -1
|
||||
|
||||
if(on)
|
||||
if(on && cell && cell.charge)
|
||||
var/datum/gas_mixture/environment
|
||||
if(holding)
|
||||
environment = holding.air_contents
|
||||
else
|
||||
environment = loc.return_air()
|
||||
|
||||
var/transfer_moles = min(1, volume_rate/environment.volume)*environment.total_moles
|
||||
|
||||
//Take a gas sample
|
||||
var/datum/gas_mixture/removed
|
||||
if(holding)
|
||||
removed = environment.remove(transfer_moles)
|
||||
else
|
||||
removed = loc.remove_air(transfer_moles)
|
||||
|
||||
//Filter it
|
||||
if (removed)
|
||||
var/datum/gas_mixture/filtered_out = new
|
||||
|
||||
filtered_out.temperature = removed.temperature
|
||||
|
||||
|
||||
filtered_out.gas["phoron"] = removed.gas["phoron"]
|
||||
removed.gas["phoron"] = 0
|
||||
|
||||
filtered_out.gas["carbon_dioxide"] = removed.gas["carbon_dioxide"]
|
||||
removed.gas["carbon_dioxide"] = 0
|
||||
|
||||
filtered_out.gas["sleeping_agent"] = removed.gas["sleeping_agent"]
|
||||
removed.gas["sleeping_agent"] = 0
|
||||
|
||||
filtered_out.gas["oxygen_agent_b"] = removed.gas["oxygen_agent_b"]
|
||||
removed.gas["oxygen_agent_b"] = 0
|
||||
|
||||
//Remix the resulting gases
|
||||
air_contents.merge(filtered_out)
|
||||
|
||||
if(holding)
|
||||
environment.merge(removed)
|
||||
else
|
||||
loc.assume_air(removed)
|
||||
//src.update_icon()
|
||||
|
||||
power_draw = scrub_gas(src, scrubbing_gas, environment, air_contents, transfer_moles, power_rating)
|
||||
|
||||
if (power_draw < 0)
|
||||
last_flow_rate = 0
|
||||
last_power_draw = 0
|
||||
else
|
||||
power_draw = max(power_draw, power_losses)
|
||||
cell.use(power_draw * CELLRATE)
|
||||
last_power_draw = power_draw
|
||||
|
||||
//ran out of charge
|
||||
if (!cell.charge)
|
||||
update_icon()
|
||||
|
||||
//src.update_icon()
|
||||
src.updateDialog()
|
||||
return
|
||||
|
||||
/obj/machinery/portable_atmospherics/scrubber/return_air()
|
||||
/obj/machinery/portable_atmospherics/powered/scrubber/return_air()
|
||||
return air_contents
|
||||
|
||||
/obj/machinery/portable_atmospherics/scrubber/attack_ai(var/mob/user as mob)
|
||||
/obj/machinery/portable_atmospherics/powered/scrubber/attack_ai(var/mob/user as mob)
|
||||
return src.attack_hand(user)
|
||||
|
||||
/obj/machinery/portable_atmospherics/scrubber/attack_paw(var/mob/user as mob)
|
||||
/obj/machinery/portable_atmospherics/powered/scrubber/attack_paw(var/mob/user as mob)
|
||||
return src.attack_hand(user)
|
||||
|
||||
/obj/machinery/portable_atmospherics/scrubber/attack_hand(var/mob/user as mob)
|
||||
/obj/machinery/portable_atmospherics/powered/scrubber/attack_hand(var/mob/user as mob)
|
||||
|
||||
user.set_machine(src)
|
||||
var/holding_text
|
||||
|
||||
if(holding)
|
||||
holding_text = {"<BR><B>Tank Pressure</B>: [holding.air_contents.return_pressure()] KPa<BR>
|
||||
<A href='?src=\ref[src];remove_tank=1'>Remove Tank</A><BR>
|
||||
holding_text = {"<BR><B>Tank Pressure</B>: [round(holding.air_contents.return_pressure(), 0.01)] kPa<BR>
|
||||
<A href='?src=\ref[src];remove_tank=1'>Remove Tank</A>
|
||||
"}
|
||||
var/output_text = {"<TT><B>[name]</B><BR>
|
||||
Pressure: [air_contents.return_pressure()] KPa<BR>
|
||||
Pressure: [round(air_contents.return_pressure(), 0.01)] kPa<BR>
|
||||
Flow Rate: [round(last_flow_rate, 0.1)] L/s<BR>
|
||||
Port Status: [(connected_port)?("Connected"):("Disconnected")]
|
||||
[holding_text]
|
||||
[holding_text]<BR>
|
||||
<BR>
|
||||
Cell Charge: [cell? "[round(cell.percent())]%" : "N/A"] | Load: [round(last_power_draw)] W<BR>
|
||||
Power Switch: <A href='?src=\ref[src];power=1'>[on?("On"):("Off")]</A><BR>
|
||||
Power regulator: <A href='?src=\ref[src];volume_adj=-1000'>-</A> <A href='?src=\ref[src];volume_adj=-100'>-</A> <A href='?src=\ref[src];volume_adj=-10'>-</A> <A href='?src=\ref[src];volume_adj=-1'>-</A> [volume_rate] <A href='?src=\ref[src];volume_adj=1'>+</A> <A href='?src=\ref[src];volume_adj=10'>+</A> <A href='?src=\ref[src];volume_adj=100'>+</A> <A href='?src=\ref[src];volume_adj=1000'>+</A><BR>
|
||||
Flow Rate Regulator: <A href='?src=\ref[src];volume_adj=-1000'>-</A> <A href='?src=\ref[src];volume_adj=-100'>-</A> <A href='?src=\ref[src];volume_adj=-10'>-</A> <A href='?src=\ref[src];volume_adj=-1'>-</A> [volume_rate] L/s <A href='?src=\ref[src];volume_adj=1'>+</A> <A href='?src=\ref[src];volume_adj=10'>+</A> <A href='?src=\ref[src];volume_adj=100'>+</A> <A href='?src=\ref[src];volume_adj=1000'>+</A><BR>
|
||||
|
||||
<HR>
|
||||
<A href='?src=\ref[user];mach_close=scrubber'>Close</A><BR>
|
||||
@@ -171,7 +113,7 @@ Power regulator: <A href='?src=\ref[src];volume_adj=-1000'>-</A> <A href='?src=\
|
||||
onclose(user, "scrubber")
|
||||
return
|
||||
|
||||
/obj/machinery/portable_atmospherics/scrubber/Topic(href, href_list)
|
||||
/obj/machinery/portable_atmospherics/powered/scrubber/Topic(href, href_list)
|
||||
..()
|
||||
if (usr.stat || usr.restrained())
|
||||
return
|
||||
@@ -189,7 +131,7 @@ Power regulator: <A href='?src=\ref[src];volume_adj=-1000'>-</A> <A href='?src=\
|
||||
|
||||
if (href_list["volume_adj"])
|
||||
var/diff = text2num(href_list["volume_adj"])
|
||||
volume_rate = min(10*ONE_ATMOSPHERE, max(0, volume_rate+diff))
|
||||
volume_rate = min(initial(volume_rate), max(0, volume_rate+diff))
|
||||
|
||||
src.updateUsrDialog()
|
||||
src.add_fingerprint(usr)
|
||||
@@ -197,4 +139,103 @@ Power regulator: <A href='?src=\ref[src];volume_adj=-1000'>-</A> <A href='?src=\
|
||||
else
|
||||
usr << browse(null, "window=scrubber")
|
||||
return
|
||||
return
|
||||
return
|
||||
|
||||
|
||||
//Huge scrubber
|
||||
/obj/machinery/portable_atmospherics/powered/scrubber/huge
|
||||
name = "Huge Air Scrubber"
|
||||
icon_state = "scrubber:0"
|
||||
anchored = 1
|
||||
volume = 50000
|
||||
volume_rate = 5000
|
||||
|
||||
chan
|
||||
use_power = 1
|
||||
idle_power_usage = 150 //internal circuitry, friction losses and stuff
|
||||
active_power_usage = 100000 //100 kW ~ 135 HP
|
||||
|
||||
var/global/gid = 1
|
||||
var/id = 0
|
||||
|
||||
/obj/machinery/portable_atmospherics/powered/scrubber/huge/New()
|
||||
..()
|
||||
cell = null
|
||||
|
||||
id = gid
|
||||
gid++
|
||||
|
||||
name = "[name] (ID [id])"
|
||||
|
||||
/obj/machinery/portable_atmospherics/powered/scrubber/huge/attack_hand(var/mob/user as mob)
|
||||
usr << "\blue You can't directly interact with this machine. Use the area atmos computer."
|
||||
|
||||
/obj/machinery/portable_atmospherics/powered/scrubber/huge/update_icon()
|
||||
src.overlays = 0
|
||||
|
||||
if(on && !(stat & (NOPOWER|BROKEN)))
|
||||
icon_state = "scrubber:1"
|
||||
else
|
||||
icon_state = "scrubber:0"
|
||||
|
||||
/obj/machinery/portable_atmospherics/powered/scrubber/huge/power_change()
|
||||
var/old_stat = stat
|
||||
..()
|
||||
if (old_stat != stat)
|
||||
update_icon()
|
||||
|
||||
/obj/machinery/portable_atmospherics/powered/scrubber/huge/process()
|
||||
if(!on || (stat & (NOPOWER|BROKEN)))
|
||||
update_use_power(0)
|
||||
last_flow_rate = 0
|
||||
last_power_draw = 0
|
||||
return 0
|
||||
|
||||
var/power_draw = -1
|
||||
|
||||
var/datum/gas_mixture/environment = loc.return_air()
|
||||
|
||||
var/transfer_moles = min(1, volume_rate/environment.volume)*environment.total_moles
|
||||
|
||||
power_draw = scrub_gas(src, scrubbing_gas, environment, air_contents, transfer_moles, active_power_usage)
|
||||
|
||||
if (power_draw < 0)
|
||||
last_flow_rate = 0
|
||||
last_power_draw = 0
|
||||
else
|
||||
last_power_draw = handle_power_draw(power_draw)
|
||||
|
||||
/obj/machinery/portable_atmospherics/powered/scrubber/huge/attackby(var/obj/item/I as obj, var/mob/user as mob)
|
||||
if(istype(I, /obj/item/weapon/wrench))
|
||||
if(on)
|
||||
user << "\blue Turn it off first!"
|
||||
return
|
||||
|
||||
anchored = !anchored
|
||||
playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1)
|
||||
user << "\blue You [anchored ? "wrench" : "unwrench"] \the [src]."
|
||||
|
||||
return
|
||||
|
||||
//doesn't use power cells
|
||||
if(istype(I, /obj/item/weapon/cell))
|
||||
return
|
||||
if (istype(I, /obj/item/weapon/screwdriver))
|
||||
return
|
||||
|
||||
//doesn't hold tanks
|
||||
if(istype(I, /obj/item/weapon/tank))
|
||||
return
|
||||
|
||||
..()
|
||||
|
||||
|
||||
/obj/machinery/portable_atmospherics/powered/scrubber/huge/stationary
|
||||
name = "Stationary Air Scrubber"
|
||||
|
||||
/obj/machinery/portable_atmospherics/powered/scrubber/huge/stationary/attackby(var/obj/item/I as obj, var/mob/user as mob)
|
||||
if(istype(I, /obj/item/weapon/wrench))
|
||||
user << "\blue The bolts are too tight for you to unscrew!"
|
||||
return
|
||||
|
||||
..()
|
||||
+26
-26
@@ -41,7 +41,7 @@
|
||||
"aaO" = (/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/structure/stool,/turf/simulated/floor{icon_state = "floorgrime"},/area/security/prison)
|
||||
"aaP" = (/turf/simulated/wall,/area/security/prison)
|
||||
"aaQ" = (/obj/structure/lattice,/obj/machinery/camera{c_tag = "Armory Exterior"; dir = 4},/turf/space,/area)
|
||||
"aaR" = (/obj/machinery/portable_atmospherics/scrubber/huge/stationary,/obj/machinery/atmospherics/pipe/simple/hidden{dir = 6},/turf/simulated/floor/plating,/area/security/prison)
|
||||
"aaR" = (/obj/machinery/portable_atmospherics/powered/scrubber/huge/stationary,/obj/machinery/atmospherics/pipe/simple/hidden{dir = 6},/turf/simulated/floor/plating,/area/security/prison)
|
||||
"aaS" = (/obj/item/weapon/cigbutt,/turf/simulated/floor{icon_state = "floorgrime"},/area/security/prison)
|
||||
"aaT" = (/obj/machinery/light/small{dir = 1},/obj/structure/window/reinforced/tinted{dir = 8; icon_state = "twindow"},/turf/simulated/floor{icon_state = "freezerfloor"},/area/security/prison)
|
||||
"aaU" = (/obj/item/weapon/soap/nanotrasen,/obj/machinery/shower{icon_state = "shower"; dir = 8},/obj/structure/sink{pixel_y = 30},/turf/simulated/floor{icon_state = "freezerfloor"},/area/security/prison)
|
||||
@@ -78,7 +78,7 @@
|
||||
"abz" = (/obj/structure/table/woodentable,/obj/item/device/taperecorder{pixel_x = 0; pixel_y = 0},/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/structure/disposalpipe/segment,/turf/simulated/floor{icon_state = "grimy"},/area/security/detectives_office)
|
||||
"abA" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor/plating,/area/security/prison)
|
||||
"abB" = (/obj/structure/table,/obj/item/weapon/storage/fancy/donut_box,/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 4},/turf/simulated/floor{icon_state = "cafeteria"; dir = 5},/area/security/prison)
|
||||
"abC" = (/obj/machinery/portable_atmospherics/scrubber/huge/stationary,/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor/plating,/area/security/prison)
|
||||
"abC" = (/obj/machinery/portable_atmospherics/powered/scrubber/huge/stationary,/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor/plating,/area/security/prison)
|
||||
"abD" = (/obj/structure/reagent_dispensers/water_cooler,/turf/simulated/floor{icon_state = "cafeteria"; dir = 5},/area/security/prison)
|
||||
"abE" = (/obj/machinery/light/small{dir = 8},/turf/simulated/floor{icon_state = "freezerfloor"},/area/security/prison)
|
||||
"abF" = (/turf/simulated/floor{dir = 10; icon_state = "warning"},/area/security/range)
|
||||
@@ -2707,8 +2707,8 @@
|
||||
"bac" = (/obj/structure/table,/obj/structure/window/reinforced{dir = 1},/obj/item/clothing/under/suit_jacket/female{pixel_x = 3; pixel_y = 1},/obj/item/clothing/under/lawyer/oldman,/obj/item/clothing/under/suit_jacket/really_black{pixel_x = -2; pixel_y = 0},/turf/simulated/floor{dir = 8; icon_state = "barber"},/area/crew_quarters/locker)
|
||||
"bad" = (/turf/simulated/floor{dir = 8; icon_state = "barber"},/area/crew_quarters/locker)
|
||||
"bae" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/closet,/turf/simulated/floor{dir = 8; icon_state = "barber"},/area/crew_quarters/locker)
|
||||
"baf" = (/obj/machinery/portable_atmospherics/pump,/turf/simulated/floor{icon_state = "delivery"},/area/crew_quarters/locker)
|
||||
"bag" = (/obj/machinery/portable_atmospherics/scrubber,/turf/simulated/floor{icon_state = "delivery"},/area/crew_quarters/locker)
|
||||
"baf" = (/obj/machinery/portable_atmospherics/powered/pump,/turf/simulated/floor{icon_state = "delivery"},/area/crew_quarters/locker)
|
||||
"bag" = (/obj/machinery/portable_atmospherics/powered/scrubber,/turf/simulated/floor{icon_state = "delivery"},/area/crew_quarters/locker)
|
||||
"bah" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor{dir = 8; icon_state = "warning"},/area/crew_quarters/locker)
|
||||
"bai" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 2; icon_state = "map_vent_out"; on = 1},/obj/machinery/requests_console{pixel_x = -30},/turf/simulated/floor{icon_state = "cult"; dir = 2},/area/lawoffice)
|
||||
"baj" = (/obj/structure/table,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/random/tech_supply,/obj/random/tech_supply,/obj/random/tech_supply,/obj/random/tech_supply,/turf/simulated/floor,/area/storage/primary)
|
||||
@@ -2910,7 +2910,7 @@
|
||||
"bdX" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/simulated/floor{icon_state = "freezerfloor"},/area/crew_quarters/locker/locker_toilet)
|
||||
"bdY" = (/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/turf/simulated/floor{icon_state = "freezerfloor"},/area/crew_quarters/locker/locker_toilet)
|
||||
"bdZ" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/turf/simulated/floor/plating,/area/maintenance/fsmaint)
|
||||
"bea" = (/obj/machinery/portable_atmospherics/scrubber,/obj/machinery/light,/turf/simulated/floor{icon_state = "delivery"},/area/crew_quarters/locker)
|
||||
"bea" = (/obj/machinery/portable_atmospherics/powered/scrubber,/obj/machinery/light,/turf/simulated/floor{icon_state = "delivery"},/area/crew_quarters/locker)
|
||||
"beb" = (/obj/structure/closet/secure_closet/security,/obj/machinery/light{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor{icon_state = "red"; dir = 9},/area/security/checkpoint2)
|
||||
"bec" = (/obj/item/device/radio/intercom{dir = 0; name = "Station Intercom (General)"; pixel_x = -27},/turf/simulated/floor{icon_state = "floorgrime"},/area/quartermaster/storage)
|
||||
"bed" = (/obj/structure/closet/crate/freezer,/turf/simulated/floor{icon_state = "floorgrime"},/area/quartermaster/storage)
|
||||
@@ -3260,7 +3260,7 @@
|
||||
"bkJ" = (/turf/simulated/wall/r_wall,/area/rnd/research)
|
||||
"bkK" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Biohazard"; name = "Biohazard Shutter"; opacity = 0},/turf/simulated/floor{dir = 8; icon_state = "whitegreencorner"},/area/rnd/research)
|
||||
"bkL" = (/obj/machinery/disposal,/obj/machinery/alarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/obj/structure/disposalpipe/trunk{dir = 8},/turf/simulated/floor{icon_state = "white"},/area/rnd/misc_lab)
|
||||
"bkM" = (/obj/machinery/portable_atmospherics/pump,/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/rnd/misc_lab)
|
||||
"bkM" = (/obj/machinery/portable_atmospherics/powered/pump,/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/rnd/misc_lab)
|
||||
"bkN" = (/obj/machinery/firealarm{dir = 4; pixel_x = 24},/obj/machinery/light,/obj/machinery/suit_storage_unit/standard_unit,/turf/simulated/floor{icon_state = "white"},/area/rnd/misc_lab)
|
||||
"bkO" = (/obj/structure/cable,/obj/machinery/power/apc{dir = 2; name = "south bump"; pixel_y = -24},/turf/simulated/floor{icon_state = "blue"; dir = 6},/area/medical/surgeryobs)
|
||||
"bkP" = (/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -29},/obj/structure/closet/bombcloset,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor{icon_state = "white"},/area/rnd/misc_lab)
|
||||
@@ -3276,7 +3276,7 @@
|
||||
"bkZ" = (/turf/simulated/floor/plating,/area/maintenance/disposal)
|
||||
"bla" = (/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_x = 0; pixel_y = -29},/obj/machinery/light/small,/turf/simulated/floor/plating,/area/maintenance/disposal)
|
||||
"blb" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/light_switch{pixel_y = -25},/turf/simulated/floor/plating,/area/maintenance/disposal)
|
||||
"blc" = (/obj/machinery/portable_atmospherics/scrubber,/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; on = 1},/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/simulated/floor{icon_state = "white"},/area/rnd/misc_lab)
|
||||
"blc" = (/obj/machinery/portable_atmospherics/powered/scrubber,/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; on = 1},/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/simulated/floor{icon_state = "white"},/area/rnd/misc_lab)
|
||||
"bld" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/simulated/floor/plating,/area/maintenance/port)
|
||||
"ble" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/poddoor/shutters{density = 0; dir = 2; icon_state = "shutter0"; id = "medprivb"; name = "Patient Privacy Shutters"; opacity = 0},/turf/simulated/floor/plating,/area/medical/patient_b)
|
||||
"blf" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/medical{name = "Sub-Acute B"; req_access_txt = "0"},/turf/simulated/floor{icon_state = "white"},/area/medical/patient_wing)
|
||||
@@ -4227,7 +4227,7 @@
|
||||
"bDo" = (/obj/machinery/door/airlock/maintenance{name = "Firefighting equipment"; req_access_txt = "12"},/turf/simulated/floor/plating,/area/maintenance/asmaint)
|
||||
"bDp" = (/obj/machinery/portable_atmospherics/canister/sleeping_agent,/turf/simulated/floor{icon_state = "delivery"; name = "floor"},/area/rnd/storage)
|
||||
"bDq" = (/obj/machinery/door/firedoor,/obj/machinery/door/poddoor/shutters{density = 0; dir = 4; icon_state = "shutter0"; id = "acute2"; name = "Acute Two Privacy Shutters"; opacity = 0},/turf/simulated/floor{dir = 8; icon_state = "whitered"},/area/medical/medbay2)
|
||||
"bDr" = (/obj/machinery/portable_atmospherics/pump,/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor{dir = 2; icon_state = "whitepurple"},/area/rnd/mixing)
|
||||
"bDr" = (/obj/machinery/portable_atmospherics/powered/pump,/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor{dir = 2; icon_state = "whitepurple"},/area/rnd/mixing)
|
||||
"bDs" = (/obj/structure/table/reinforced,/obj/item/weapon/wrench,/obj/item/weapon/screwdriver{pixel_y = 10},/obj/item/device/radio/intercom{pixel_y = 25},/turf/simulated/floor{dir = 6; icon_state = "whitepurple"},/area/rnd/mixing)
|
||||
"bDt" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/turf/simulated/floor{icon_state = "cafeteria"; dir = 5},/area/crew_quarters/hor)
|
||||
"bDu" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/crew_quarters/hor)
|
||||
@@ -4256,7 +4256,7 @@
|
||||
"bDR" = (/obj/machinery/navbeacon{codes_txt = "patrol;next_patrol=CHE"; location = "AIE"},/turf/simulated/floor,/area/hallway/primary/central)
|
||||
"bDS" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/simulated/floor,/area/hallway/primary/central)
|
||||
"bDT" = (/obj/machinery/portable_atmospherics/canister,/turf/simulated/floor{dir = 2; icon_state = "whitepurple"},/area/rnd/mixing)
|
||||
"bDU" = (/obj/machinery/portable_atmospherics/scrubber,/obj/structure/disposalpipe/segment,/turf/simulated/floor{dir = 2; icon_state = "whitepurple"},/area/rnd/mixing)
|
||||
"bDU" = (/obj/machinery/portable_atmospherics/powered/scrubber,/obj/structure/disposalpipe/segment,/turf/simulated/floor{dir = 2; icon_state = "whitepurple"},/area/rnd/mixing)
|
||||
"bDV" = (/obj/structure/dispenser,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor{dir = 5; icon_state = "whitepurple"},/area/rnd/mixing)
|
||||
"bDW" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor,/area/hallway/primary/central)
|
||||
"bDX" = (/obj/machinery/atmospherics/portables_connector,/turf/simulated/floor{icon_state = "warnwhite"; dir = 5},/area/rnd/mixing)
|
||||
@@ -4297,8 +4297,8 @@
|
||||
"bEG" = (/obj/structure/computerframe,/obj/item/weapon/shard{icon_state = "medium"},/turf/simulated/floor{icon_state = "floorgrime"},/area/medical/genetics)
|
||||
"bEH" = (/obj/machinery/computer/shuttle_control/mining,/turf/simulated/shuttle/floor,/area/shuttle/mining/station)
|
||||
"bEI" = (/obj/structure/table,/obj/machinery/embedded_controller/radio/simple_docking_controller{frequency = 1380; id_tag = "mining_shuttle"; pixel_x = 25; pixel_y = -8; req_access_txt = "0"; req_one_access_txt = "13;48"; tag_door = "mining_shuttle_hatch"},/turf/simulated/shuttle/floor,/area/shuttle/mining/station)
|
||||
"bEJ" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/machinery/portable_atmospherics/scrubber/huge,/turf/simulated/floor/plating,/area/rnd/mixing)
|
||||
"bEK" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/machinery/portable_atmospherics/scrubber/huge,/turf/simulated/floor/plating,/area/rnd/mixing)
|
||||
"bEJ" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/machinery/portable_atmospherics/powered/scrubber/huge,/turf/simulated/floor/plating,/area/rnd/mixing)
|
||||
"bEK" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/machinery/portable_atmospherics/powered/scrubber/huge,/turf/simulated/floor/plating,/area/rnd/mixing)
|
||||
"bEL" = (/turf/simulated/wall/r_wall,/area/rnd/storage)
|
||||
"bEM" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; on = 1},/turf/simulated/floor/plating,/area/storage/tech)
|
||||
"bEN" = (/obj/machinery/navbeacon{codes_txt = "patrol;next_patrol=HOP"; location = "CHE"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor,/area/hallway/primary/central)
|
||||
@@ -4332,7 +4332,7 @@
|
||||
"bFp" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/door/airlock/glass{name = "Central Access"},/turf/simulated/floor,/area/hallway/primary/central)
|
||||
"bFq" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/research{name = "Xenobiology Research"; req_access_txt = "47"},/turf/simulated/floor{icon_state = "white"},/area/rnd/xenobiology)
|
||||
"bFr" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/simulated/floor,/area/hallway/primary/central)
|
||||
"bFs" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/disposalpipe/segment,/obj/machinery/portable_atmospherics/scrubber/huge,/turf/simulated/floor/plating,/area/rnd/mixing)
|
||||
"bFs" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/disposalpipe/segment,/obj/machinery/portable_atmospherics/powered/scrubber/huge,/turf/simulated/floor/plating,/area/rnd/mixing)
|
||||
"bFt" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/disposalpipe/segment,/turf/simulated/floor{dir = 4; icon_state = "whiteblue"; tag = "icon-whitehall (WEST)"},/area/medical/medbay2)
|
||||
"bFu" = (/turf/simulated/floor{icon_state = "white_1"},/area/medical/medbay2)
|
||||
"bFv" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor{icon_state = "white"},/area/medical/cmo)
|
||||
@@ -4521,7 +4521,7 @@
|
||||
"bIW" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/wall/r_wall,/area/rnd/mixing)
|
||||
"bIX" = (/obj/structure/sign/nosmoking_2{pixel_x = -32},/obj/machinery/camera{c_tag = "Toxins Lab"; dir = 4; network = list("SS13","Research")},/turf/simulated/floor{icon_state = "white"},/area/rnd/mixing)
|
||||
"bIY" = (/turf/simulated/floor{icon_state = "white"},/area/rnd/mixing)
|
||||
"bIZ" = (/obj/machinery/portable_atmospherics/scrubber/huge,/obj/structure/sign/nosmoking_2{pixel_x = 28},/turf/simulated/floor{icon_state = "bot"},/area/rnd/storage)
|
||||
"bIZ" = (/obj/machinery/portable_atmospherics/powered/scrubber/huge,/obj/structure/sign/nosmoking_2{pixel_x = 28},/turf/simulated/floor{icon_state = "bot"},/area/rnd/storage)
|
||||
"bJa" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay2)
|
||||
"bJb" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/wall,/area/hallway/primary/aft)
|
||||
"bJc" = (/obj/structure/grille{density = 0; icon_state = "brokengrille"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plating,/area/maintenance/asmaint)
|
||||
@@ -5453,7 +5453,7 @@
|
||||
"caS" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor,/area/engine/hallway)
|
||||
"caT" = (/turf/simulated/floor,/area/engine/hallway)
|
||||
"caU" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/simulated/floor,/area/engine/hallway)
|
||||
"caV" = (/obj/machinery/portable_atmospherics/scrubber,/obj/machinery/atmospherics/pipe/simple/visible/scrubbers{tag = "icon-intact (EAST)"; icon_state = "intact"; dir = 4},/turf/simulated/floor,/area/atmos)
|
||||
"caV" = (/obj/machinery/portable_atmospherics/powered/scrubber,/obj/machinery/atmospherics/pipe/simple/visible/scrubbers{tag = "icon-intact (EAST)"; icon_state = "intact"; dir = 4},/turf/simulated/floor,/area/atmos)
|
||||
"caW" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor{icon_state = "white"},/area/medical/medbay2)
|
||||
"caX" = (/obj/machinery/meter,/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1},/turf/simulated/wall/r_wall,/area/atmos)
|
||||
"caY" = (/obj/machinery/atmospherics/portables_connector{dir = 8},/turf/simulated/floor{icon_state = "red"; dir = 8},/area/engine/hallway)
|
||||
@@ -5799,7 +5799,7 @@
|
||||
"chA" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/closet/crate,/obj/item/stack/sheet/glass{amount = 50},/obj/item/stack/sheet/glass{amount = 50},/obj/item/stack/sheet/glass{amount = 50},/turf/simulated/floor,/area/engine/workshop)
|
||||
"chB" = (/turf/simulated/wall/r_wall,/area/engine/engineering_monitoring)
|
||||
"chC" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/visible/scrubbers{tag = "icon-intact (EAST)"; icon_state = "intact"; dir = 4},/turf/simulated/floor/plating,/area/engine/engine_room)
|
||||
"chD" = (/obj/machinery/portable_atmospherics/scrubber,/obj/machinery/atmospherics/pipe/manifold/visible/scrubbers{dir = 1; icon_state = "map"; tag = "icon-manifold (NORTH)"},/turf/simulated/floor,/area/atmos)
|
||||
"chD" = (/obj/machinery/portable_atmospherics/powered/scrubber,/obj/machinery/atmospherics/pipe/manifold/visible/scrubbers{dir = 1; icon_state = "map"; tag = "icon-manifold (NORTH)"},/turf/simulated/floor,/area/atmos)
|
||||
"chE" = (/obj/machinery/space_heater,/turf/simulated/floor,/area/atmos)
|
||||
"chF" = (/obj/machinery/door/firedoor/border_only{dir = 1; name = "Engineering Firelock"},/obj/machinery/atmospherics/pipe/simple/visible/scrubbers{tag = "icon-intact (EAST)"; icon_state = "intact"; dir = 4},/obj/machinery/door/airlock/atmos{name = "Atmospherics Storage"; req_access_txt = "24"},/turf/simulated/floor,/area/atmos)
|
||||
"chG" = (/obj/machinery/atmospherics/pipe/simple/visible/cyan{dir = 4; icon_state = "intact"; tag = "icon-intact (EAST)"},/obj/machinery/atmospherics/pipe/simple/visible/yellow,/turf/simulated/floor,/area/atmos)
|
||||
@@ -6003,8 +6003,8 @@
|
||||
"clw" = (/turf/simulated/floor/plating/airless,/area/solar/port)
|
||||
"clx" = (/obj/machinery/atmospherics/pipe/manifold/hidden/yellow,/obj/machinery/meter,/turf/simulated/wall/r_wall,/area/atmos)
|
||||
"cly" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/airlock/external{frequency = 1379; icon_state = "door_locked"; id_tag = "robotics_solar_outer"; locked = 1; name = "Engineering External Access"; req_access = null; req_access_txt = "10;13"},/turf/simulated/floor/plating,/area/maintenance/portsolar)
|
||||
"clz" = (/obj/machinery/atmospherics/pipe/simple/visible/yellow{dir = 4},/obj/machinery/portable_atmospherics/pump,/turf/simulated/floor,/area/atmos)
|
||||
"clA" = (/obj/machinery/atmospherics/pipe/simple/visible/yellow{dir = 4},/obj/machinery/portable_atmospherics/pump,/obj/machinery/light/small{dir = 1},/turf/simulated/floor,/area/atmos)
|
||||
"clz" = (/obj/machinery/atmospherics/pipe/simple/visible/yellow{dir = 4},/obj/machinery/portable_atmospherics/powered/pump,/turf/simulated/floor,/area/atmos)
|
||||
"clA" = (/obj/machinery/atmospherics/pipe/simple/visible/yellow{dir = 4},/obj/machinery/portable_atmospherics/powered/pump,/obj/machinery/light/small{dir = 1},/turf/simulated/floor,/area/atmos)
|
||||
"clB" = (/obj/machinery/atmospherics/pipe/manifold4w/visible/yellow,/turf/simulated/floor,/area/atmos)
|
||||
"clC" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/plating,/area/maintenance/portsolar)
|
||||
"clD" = (/obj/machinery/atmospherics/pipe/manifold/visible/yellow,/obj/machinery/meter,/turf/simulated/floor,/area/atmos)
|
||||
@@ -6998,10 +6998,10 @@
|
||||
"cED" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/obj/structure/flora/grass/brown,/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "gravsnow_corner"; dir = 8},/area/syndicate_mothership)
|
||||
"cEE" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/turf/unsimulated/floor{dir = 1; icon = 'icons/turf/snow.dmi'; icon_state = "gravsnow_corner"},/area/syndicate_mothership)
|
||||
"cEF" = (/obj/structure/stool/bed,/obj/item/weapon/bedsheet/red,/turf/simulated/floor/wood,/area/syndicate_mothership)
|
||||
"cEG" = (/obj/machinery/atmospherics/portables_connector,/obj/machinery/portable_atmospherics/pump,/turf/simulated/floor{dir = 1; icon_state = "blue"},/area/hallway/primary/aft)
|
||||
"cEG" = (/obj/machinery/atmospherics/portables_connector,/obj/machinery/portable_atmospherics/powered/pump,/turf/simulated/floor{dir = 1; icon_state = "blue"},/area/hallway/primary/aft)
|
||||
"cEH" = (/turf/simulated/floor/wood{icon_state = "wood-broken6"},/area/syndicate_mothership)
|
||||
"cEI" = (/obj/machinery/atmospherics/portables_connector,/obj/machinery/portable_atmospherics/scrubber,/turf/simulated/floor{icon_state = "red"; dir = 1},/area/hallway/primary/aft)
|
||||
"cEJ" = (/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = 32},/obj/machinery/atmospherics/portables_connector,/obj/machinery/portable_atmospherics/pump,/turf/simulated/floor{dir = 1; icon_state = "blue"},/area/hallway/primary/aft)
|
||||
"cEI" = (/obj/machinery/atmospherics/portables_connector,/obj/machinery/portable_atmospherics/powered/scrubber,/turf/simulated/floor{icon_state = "red"; dir = 1},/area/hallway/primary/aft)
|
||||
"cEJ" = (/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = 32},/obj/machinery/atmospherics/portables_connector,/obj/machinery/portable_atmospherics/powered/pump,/turf/simulated/floor{dir = 1; icon_state = "blue"},/area/hallway/primary/aft)
|
||||
"cEK" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 8; icon_state = "map_vent_out"; on = 1},/turf/simulated/floor{icon_state = "blue"; dir = 6},/area/medical/surgeryobs)
|
||||
"cEL" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/airlock/external{frequency = 1379; icon_state = "door_locked"; id_tag = "robotics_solar_inner"; locked = 1; name = "Engineering External Access"; req_access = null; req_access_txt = "13"},/obj/machinery/atmospherics/pipe/simple/visible{dir = 4},/turf/simulated/floor/plating,/area/maintenance/portsolar)
|
||||
"cEM" = (/turf/unsimulated/wall/fakeglass{dir = 1; icon_state = "fakewindows"},/area/syndicate_mothership)
|
||||
@@ -7466,7 +7466,7 @@
|
||||
"cND" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/box/bodybags,/obj/item/weapon/storage/firstaid/o2,/obj/item/weapon/storage/firstaid/regular,/obj/item/device/flash,/obj/item/clothing/glasses/hud/health,/obj/item/clothing/glasses/hud/health,/obj/item/clothing/glasses/hud/health,/obj/item/device/flash,/obj/item/weapon/storage/firstaid/regular,/obj/item/weapon/storage/firstaid/regular,/obj/item/weapon/storage/pill_bottle/antitox,/obj/item/weapon/storage/pill_bottle/kelotane,/obj/item/weapon/storage/pill_bottle/kelotane,/obj/item/weapon/storage/pill_bottle/antitox,/obj/item/weapon/storage/pill_bottle/kelotane,/obj/item/weapon/storage/firstaid/adv,/obj/item/weapon/storage/firstaid/adv,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom/specops)
|
||||
"cNE" = (/obj/structure/rack,/obj/item/bodybag,/obj/item/bodybag,/obj/item/bodybag,/obj/item/bodybag,/obj/item/bodybag,/obj/item/bodybag,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom/specops)
|
||||
"cNF" = (/obj/structure/rack,/obj/item/bodybag/cryobag,/obj/item/bodybag/cryobag,/obj/item/bodybag/cryobag,/obj/item/bodybag/cryobag,/obj/item/bodybag/cryobag,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom/specops)
|
||||
"cNG" = (/obj/machinery/portable_atmospherics/scrubber,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom/specops)
|
||||
"cNG" = (/obj/machinery/portable_atmospherics/powered/scrubber,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom/specops)
|
||||
"cNH" = (/obj/structure/table/reinforced,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom/specops)
|
||||
"cNI" = (/obj/structure/rack,/obj/item/weapon/tank/emergency_oxygen/double,/obj/item/weapon/tank/emergency_oxygen/double,/obj/item/weapon/tank/emergency_oxygen/double,/obj/item/weapon/tank/emergency_oxygen/double,/obj/item/weapon/tank/emergency_oxygen/double,/obj/item/weapon/tank/emergency_oxygen/double,/obj/item/weapon/tank/emergency_oxygen/double,/obj/item/weapon/tank/emergency_oxygen/double,/obj/item/weapon/tank/emergency_oxygen/double,/obj/item/weapon/tank/emergency_oxygen/double,/obj/item/weapon/tank/emergency_oxygen/double,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom/specops)
|
||||
"cNJ" = (/obj/structure/rack,/obj/item/clothing/under/syndicate/combat,/obj/item/clothing/shoes/galoshes,/obj/item/clothing/gloves/purple,/obj/item/clothing/suit/bio_suit/janitor,/obj/item/clothing/head/bio_hood/janitor,/obj/item/device/radio/headset/ert,/obj/item/clothing/mask/breath,/obj/item/clothing/glasses/science,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom/specops)
|
||||
@@ -7998,7 +7998,7 @@
|
||||
"cXP" = (/turf/simulated/shuttle/floor{icon_state = "floor3"},/turf/simulated/shuttle/wall{icon_state = "swall_f6"; dir = 2},/area/derelict/ship)
|
||||
"cXQ" = (/obj/machinery/door/airlock/glass,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/derelict/ship)
|
||||
"cXR" = (/obj/machinery/light_switch{pixel_x = 27},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/derelict/ship)
|
||||
"cXS" = (/obj/machinery/portable_atmospherics/scrubber,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/derelict/ship)
|
||||
"cXS" = (/obj/machinery/portable_atmospherics/powered/scrubber,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/derelict/ship)
|
||||
"cXT" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/turf/simulated/shuttle/plating,/area/derelict/ship)
|
||||
"cXU" = (/obj/structure/stool/bed,/obj/item/weapon/bedsheet,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/derelict/ship)
|
||||
"cXV" = (/obj/machinery/door/window,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/derelict/ship)
|
||||
@@ -9315,7 +9315,7 @@
|
||||
"dxg" = (/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/camera{c_tag = "Research Outpost Expedition Prep"; dir = 8; network = list("Research","SS13")},/obj/machinery/power/apc{dir = 4; name = "east bump"; pixel_x = 24},/turf/simulated/floor,/area/research_outpost/gearstore)
|
||||
"dxh" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating,/area/research_outpost/power)
|
||||
"dxi" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating,/area/research_outpost/power)
|
||||
"dxj" = (/obj/machinery/portable_atmospherics/scrubber,/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/plating,/area/research_outpost/power)
|
||||
"dxj" = (/obj/machinery/portable_atmospherics/powered/scrubber,/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/plating,/area/research_outpost/power)
|
||||
"dxk" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/disposalpipe/segment,/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/research_outpost/power)
|
||||
"dxl" = (/obj/structure/toilet{dir = 4},/turf/simulated/shuttle/floor{icon_state = "floor7"},/area/syndicate_station/start)
|
||||
"dxm" = (/obj/machinery/embedded_controller/radio/airlock/docking_port{frequency = 1380; id_tag = "mining_outpost_airlock"; pixel_x = 0; pixel_y = 30; req_access_txt = "0"; req_one_access_txt = "13;48"; tag_airpump = "mining_outpost_pump"; tag_chamber_sensor = "mining_outpost_sensor"; tag_exterior_door = "mining_outpost_outer"; tag_interior_door = "mining_outpost_inner"},/obj/machinery/airlock_sensor{frequency = 1380; id_tag = "mining_outpost_sensor"; pixel_x = 0; pixel_y = -25},/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 4; frequency = 1380; id_tag = "mining_outpost_pump"},/turf/simulated/floor,/area/mine/production)
|
||||
@@ -9348,7 +9348,7 @@
|
||||
"dxN" = (/obj/machinery/atmospherics/pipe/manifold4w/visible,/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start)
|
||||
"dxO" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 8; frequency = 1331; id_tag = "synd_pump"},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start)
|
||||
"dxP" = (/obj/machinery/conveyor_switch{id = "archgunc"},/turf/simulated/floor/plating,/area/research_outpost/power)
|
||||
"dxQ" = (/obj/machinery/portable_atmospherics/scrubber,/turf/simulated/floor/plating,/area/research_outpost/power)
|
||||
"dxQ" = (/obj/machinery/portable_atmospherics/powered/scrubber,/turf/simulated/floor/plating,/area/research_outpost/power)
|
||||
"dxR" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/disposalpipe/segment,/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/research_outpost/power)
|
||||
"dxS" = (/obj/item/stack/rods,/turf/simulated/floor/plating/airless,/area/mine/abandoned)
|
||||
"dxT" = (/obj/item/weapon/shard{icon_state = "small"},/obj/item/clothing/suit/space/syndicate,/turf/simulated/floor/plating/airless,/area/mine/abandoned)
|
||||
@@ -10306,10 +10306,10 @@
|
||||
"dQj" = (/obj/machinery/atmospherics/unary/outlet_injector{dir = 8; frequency = 1443; icon_state = "map_injector"; id = "d_air_in"; on = 1},/turf/simulated/floor/engine{name = "air floor"; nitrogen = 10580; oxygen = 2644},/area/constructionsite/atmospherics)
|
||||
"dQk" = (/obj/structure/table/reinforced,/obj/item/weapon/clipboard,/obj/item/weapon/stamp,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor4"},/area/centcom/evac)
|
||||
"dQl" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor{dir = 10; icon_state = "warning"},/area/mine/production)
|
||||
"dQm" = (/obj/machinery/portable_atmospherics/pump,/turf/simulated/shuttle/plating,/area/centcom/evac)
|
||||
"dQm" = (/obj/machinery/portable_atmospherics/powered/pump,/turf/simulated/shuttle/plating,/area/centcom/evac)
|
||||
"dQn" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/wall,/area/mine/living_quarters)
|
||||
"dQo" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only{dir = 2},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plating,/area/mine/living_quarters)
|
||||
"dQp" = (/obj/machinery/portable_atmospherics/scrubber,/turf/simulated/shuttle/plating,/area/centcom/evac)
|
||||
"dQp" = (/obj/machinery/portable_atmospherics/powered/scrubber,/turf/simulated/shuttle/plating,/area/centcom/evac)
|
||||
"dQq" = (/obj/machinery/vending/engineering,/turf/simulated/shuttle/plating,/area/centcom/evac)
|
||||
"dQr" = (/obj/machinery/atmospherics/unary/outlet_injector{dir = 8; frequency = 1441; icon_state = "map_injector"; id = "d_o2_in"; on = 1},/turf/simulated/floor/engine{name = "o2 floor"; nitrogen = 0; oxygen = 100000},/area/constructionsite/atmospherics)
|
||||
"dQs" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor,/area/mine/production)
|
||||
|
||||
Reference in New Issue
Block a user