Made a framework for buildable/repairable piping and shit.

Currently it is only possible to repair "simple" pipe.
  The pipe assemblies cannot be created outside of admin intervention at present.
  

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@395 316c924e-a436-60f5-8080-3fe189b3f50e
This commit is contained in:
n3ophyt3@gmail.com
2010-11-10 02:25:58 +00:00
parent e62649b706
commit daba310235
3 changed files with 44 additions and 242 deletions
+19 -218
View File
@@ -159,14 +159,14 @@ Buildable meters
return 0
/obj/item/weapon/pipe/attackby(var/obj/item/weapon/W as obj, var/mob/user as mob)
/*
//*
if (istype(W, /obj/item/weapon/wrench))
var/pipedir = src.get_pdir()|src.get_hdir() // all possible pipe dirs including h/e#
for(var/obj/machinery/M in src.loc)
for(var/obj/machinery/atmospherics/M in src.loc)
if(M.level == src.level) // only on same level
if( (M.p_dir & pipedir) || (M.h_dir & pipedir) ) // matches at least one direction on either type of pipe
if( (M.initialize_directions & pipedir) || (M.initialize_directions & pipedir) ) // matches at least one direction on either type of pipe
user << "There is already a pipe at that location."
return
playsound(src.loc, 'Ratchet.ogg', 50, 1)
@@ -176,21 +176,24 @@ Buildable meters
// 0 1 2 3 4 5 6 7 8 9 10
//"pipe", "bent pipe", "h/e pipe", "bent h/e pipe", "connector", "manifold", "junction", "vent", "valve", "pump", "filter inlet"
var/obj/machinery/pipes/P
switch(pipe_type)
if(0,1) // straight or bent pipe
P = new/obj/machinery/pipes( src.loc )
P.p_dir = get_pdir()
P.icon_state = get_pdir()
var/obj/machinery/atmospherics/pipe/simple/P = new /obj/machinery/atmospherics/pipe/simple( src.loc )
P.dir = dir
P.New()
P.level = level
P.update()
var/list/dirs = P.get_dirs()
P.node1 = get_machine(P.level, P.loc, dirs[1])
P.node2 = get_machine(P.level, P.loc, dirs[2])
P.initialize()
P.pipeline_expansion()
if (P.node1)
P.node1:initialize()
P.node1:pipeline_expansion()
if (P.node2)
P.node2:initialize()
P.node2:pipeline_expansion()
/*
if(2,3) // straight or bent h/e pipe
P = new/obj/machinery/pipes/heat_exch( src.loc )
P.h_dir = get_hdir()
@@ -200,8 +203,6 @@ Buildable meters
var/list/dirs = P.get_dirs()
P.node1 = get_he_machine(P.level, P.loc, dirs[1])
P.node2 = get_he_machine(P.level, P.loc, dirs[2])
if(4) // connector
var/obj/machinery/connector/C = new( src.loc )
@@ -209,20 +210,12 @@ Buildable meters
C.p_dir = src.dir
C.level = level
C.buildnodes()
setlineterm(C.node, C.vnode)
if(5) //manifold
var/obj/machinery/manifold/M = new( src.loc )
M.dir = dir
M.p_dir = pipedir
M.level = level
M.buildnodes()
setlineterm(M.node1, M.vnode1)
setlineterm(M.node2, M.vnode2)
setlineterm(M.node3, M.vnode3)
if(6) //junctions
var/obj/machinery/junction/J = new( src.loc )
@@ -231,19 +224,12 @@ Buildable meters
J.h_dir = src.get_hdir()
J.level = 2
J.buildnodes()
setlineterm(J.node1, J.vnode1)
setlineterm(J.node2, J.vnode2)
if(7) // vent
var/obj/machinery/vent/V = new( src.loc )
V.dir = src.dir
V.p_dir = src.dir
V.level = level
V.buildnodes()
setlineterm(V.node, V.vnode)
if(8) //valve
var/obj/machinery/valve/mvalve/V = new( src.loc)
@@ -253,9 +239,6 @@ Buildable meters
V.p_dir = 3
if(4,8)
V.p_dir = 12
V.buildnodes()
setlineterm(V.node1, V.vnode1)
setlineterm(V.node2, V.vnode2)
if(9) //Pipe pump
var/obj/machinery/oneway/pipepump/PP = new(src.loc)
@@ -263,10 +246,6 @@ Buildable meters
PP.dir = src.dir
PP.p_dir = dir|turn(dir, 180)
PP.buildnodes()
setlineterm(PP.node1, PP.vnode1)
setlineterm(PP.node2, PP.vnode2)
if(10) //filter inlet
var/obj/machinery/inlet/filter/F = new(src.loc)
@@ -274,131 +253,18 @@ Buildable meters
F.p_dir = src.dir
F.level = level
F.buildnodes()
setlineterm(F.node, F.vnode)
// for pipe objects, now do updating of pipelines if needed
switch(pipe_type)
if(0,1,2,3) // new regular or or h/e pipe
// number of pipes connected to P
var/pipecon = (P.node1 && P.node1.ispipe()) + (P.node2 && P.node2.ispipe())
if(Debug) world << "Pipecon [pipecon]"
if(!pipecon) // simplest case - no connection pipes (but may be machines)
var/obj/machinery/pipeline/PL = new() // create a new pipeline
P.buildnodes(++linenums) // set new pipe to use new pl
P.pl = PL
P.plnum = linenums
PL.linenumber = linenums // set new pipe to use new pl
PL.nodes += P // and add it
PL.numnodes = 1
PL.capmult = 2
plines += PL // and new pipeline to the global list
PL.setterm() // and ensure any connections to machines are made
PL.name = "pipeline #[plines.Find(PL)]" // set the name
else if(pipecon == 1) // single connected pipe
var/obj/machinery/pipes/CP // the connected pipe
if(P.node1 && P.node1.ispipe()) // find the connected pipe
CP = P.node1
else
CP = P.node2
var/obj/machinery/pipeline/PL = CP.pl // the pipeline we connected to
P.pl = PL
P.buildnodes(PL.linenumber) // set the pipeline and nodes of any adjoining pipes
if(PL.nodes[1] == CP) // if the connected pipe is at start of line nodes list
PL.nodes.Insert(1, P) // insert new pipe into start of node list
else
PL.nodes += P // otherwise, insert it at end
PL.numnodes++
PL.capmult++
PL.setterm() // connect to any machines
CP.termination = 0 // connected pipe no longer terminal
else //(pipecon==2)
var/obj/machinery/pipes/CP1 = P.node1
var/obj/machinery/pipes/CP2 = P.node2
var/obj/machinery/pipeline/PL1 = CP1.pl
var/obj/machinery/pipeline/PL2 = CP2.pl
P.pl = PL1
if(PL1 == PL2) // special case - completing a loop
// make sure to check if this works properly
P.buildnodes(PL1.linenumber)
PL1.nodes += P
PL1.numnodes++
PL1.capmult++
PL1.setterm()
CP1.termination = 0
CP2.termination = 0
PL1.vnode1 = PL1 // link pipeline to self
PL1.vnode2 = PL1
else // separate pipelines
P.buildnodes(PL1.linenumber)
CP1.termination = 0
CP2.termination = 0
var/list/plist
if(PL1.nodes[1] == CP1)
plist = pipelist(null, PL1.nodes[PL1.nodes.len])
else
plist = pipelist(null, PL1.nodes[1])
PL1.gas.transfer_from(PL2.gas, -1)
PL1.ngas.transfer_from(PL2.ngas, -1)
plines -= PL2
for(var/obj/machinery/pipes/OP in PL2.nodes)
OP.pl = PL1
OP.plnum = PL1.linenumber
PL1.nodes = plist
PL1.numnodes = plist.len
PL1.capmult = plist.len+1
PL1.setterm()
del(PL2)
*/
user << "You have fastened the pipe"
del(src) // remove the pipe item
return
*/ //TODO: DEFERRED
//TODO: DEFERRED
// ensure that setterm() is called for a newly connected pipeline
/proc/setlineterm(var/obj/machinery/node, var/obj/machinery/vnode)
if(vnode)
if( istype(vnode, /obj/machinery/pipeline) )
var/obj/machinery/pipeline/PL = vnode
node.buildnodes(PL.linenumber)
PL.setterm()
else
node.buildnodes()
/obj/item/weapon/pipe_meter
@@ -413,7 +279,7 @@ Buildable meters
/obj/item/weapon/pipe_meter/attackby(var/obj/item/weapon/W as obj, var/mob/user as mob)
if (istype(W, /obj/item/weapon/wrench))
if(locate(/obj/machinery/pipes, src.loc))
if(locate(/obj/machinery/atmospherics/pipe, src.loc))
new/obj/machinery/meter( src.loc )
playsound(src.loc, 'Ratchet.ogg', 50, 1)
user << "You have fastened the meter to the pipe"
@@ -422,68 +288,3 @@ Buildable meters
user << "You need to fasten it to a pipe"
return
/obj/item/weapon/filter_control
name = "filter control"
desc = "A switch to control filter inlets"
icon = 'pipe-item.dmi'
icon_state = "filter_control"
item_state = "buildpipe"
flags = TABLEPASS|FPRINT
w_class = 4
var/control = null
/obj/item/weapon/filter_control/verb/set_control()
set src in usr
src.control = input("Enter the name of the control?.", "Control", "")
/obj/item/weapon/filter_control/proc/wall_place(turf/simulated/F, mob/user)
if(!isturf(user.loc))
return
if(get_dist(F,user) > 1)
user << "You can't place the control on from this distance."
return
else
var/dirn
if(user.loc != F)
dirn = get_dir(F, user)
else
user << "Cannot place the filter control like this"
if(locate(/obj/machinery, F))
user << "There's already a piece of machinery in this position."
return
var/obj/machinery/filter_control/FC = new(src.loc)
switch(dirn)
if(NORTH)
FC.pixel_y = 22
if(SOUTH)
FC.pixel_y = -22
if(EAST)
FC.pixel_x = 22
if(WEST)
FC.pixel_x = -22
if(NORTHEAST)
FC.pixel_y = 22
FC.pixel_x = 22
if(NORTHWEST)
FC.pixel_y = 22
FC.pixel_x = -22
if(SOUTHEAST)
FC.pixel_y = -22
FC.pixel_x = 22
if(SOUTHWEST)
FC.pixel_y = -22
FC.pixel_x = -22
else
world << "Invalid direction [dirn], [src.x], [src.y], [src.z]. Please report this."
FC.control = src.control
FC.add_fingerprint(user)
FC.updateicon()
del(src)
+1
View File
@@ -381,6 +381,7 @@
#include "code\game\machinery\embedded_controller\access_controller.dm"
#include "code\game\machinery\embedded_controller\airlock_controller.dm"
#include "code\game\machinery\embedded_controller\embedded_controller_base.dm"
#include "code\game\machinery\pipe\construction.dm"
#include "code\game\magic\library.dm"
#include "code\game\magic\magicmonster.dm"
#include "code\game\magic\musician.dm"
+24 -24
View File
@@ -3158,10 +3158,10 @@
"biL" = (/obj/machinery/atmospherics/pipe/simple{dir = 5; icon_state = "intact-f"; layer = 3},/turf/simulated/wall,/area/hallway/primary/aft)
"biM" = (/obj/grille,/obj/window/reinforced/east,/obj/window/reinforced/west,/obj/machinery/atmospherics/pipe/simple{color = "blue"; icon_state = "intact-b"; level = 2},/turf/simulated/floor/plating,/area/atmos)
"biN" = (/obj/machinery/computer/general_air_control/large_tank_control{frequency = 1441; input_tag = "waste_in"; name = "Waste Air Tank Control"; output_tag = "waste_out"; sensors = list("waste_sensor" = "Tank")},/turf/simulated/floor,/area/atmos)
"biO" = (/obj/machinery/atmospherics/pipe/manifold{dir = 8; icon_state = "manifold-g"; level = 2},/turf/simulated/floor,/area/atmos)
"biO" = (/obj/machinery/atmospherics/pipe/manifold{color = "green"; dir = 8; icon_state = "manifold-g"; level = 2},/turf/simulated/floor,/area/atmos)
"biP" = (/obj/machinery/atmospherics/binary/pump{dir = 8; icon_state = "intact_on"; name = "Distribution Loop Drain Pump"; on = 1},/turf/simulated/floor,/area/atmos)
"biQ" = (/obj/machinery/atmospherics/pipe/simple{color = "blue"; dir = 4; icon_state = "intact-b"; layer = 3; level = 2},/turf/simulated/floor,/area/atmos)
"biR" = (/obj/machinery/atmospherics/pipe/manifold{dir = 4; icon_state = "manifold-b"; initialize_directions = 11; level = 2},/turf/simulated/floor,/area/atmos)
"biR" = (/obj/machinery/atmospherics/pipe/manifold{color = "blue"; dir = 4; icon_state = "manifold-b"; initialize_directions = 11; level = 2},/turf/simulated/floor,/area/atmos)
"biS" = (/turf/simulated/floor,/area/atmos)
"biT" = (/obj/cable{icon_state = "1-2"; d1 = 1; d2 = 2},/obj/machinery/atmospherics/unary/vent_scrubber{on = 1; scrub_Toxins = 1},/turf/simulated/floor,/area/atmos)
"biU" = (/obj/machinery/atmospherics/pipe/simple{color = "red"; dir = 6; icon_state = "intact-r"; initialize_directions = 6; layer = 3; level = 2},/turf/simulated/floor,/area/atmos)
@@ -3190,13 +3190,13 @@
"bjr" = (/obj/grille,/turf/simulated/wall/r_wall,/area/atmos)
"bjs" = (/obj/machinery/atmospherics/pipe/simple{color = "red"; dir = 4; icon_state = "intact-r"; layer = 3; level = 2},/obj/machinery/atmospherics/pipe/simple{color = "green"; icon_state = "intact-g"; level = 2},/turf/simulated/floor,/area/atmos)
"bjt" = (/obj/machinery/atmospherics/pipe/simple{color = "red"; dir = 4; icon_state = "intact-r"; layer = 3; level = 2},/turf/simulated/floor,/area/atmos)
"bju" = (/obj/machinery/atmospherics/pipe/manifold{dir = 1; icon_state = "manifold-r"; level = 2},/turf/simulated/floor,/area/atmos)
"bju" = (/obj/machinery/atmospherics/pipe/manifold{color = "red"; dir = 1; icon_state = "manifold-r"; level = 2},/turf/simulated/floor,/area/atmos)
"bjv" = (/obj/machinery/atmospherics/pipe/simple{color = "red"; dir = 4; icon_state = "intact-r"; layer = 3; level = 2},/obj/machinery/atmospherics/pipe/simple{color = "blue"; icon_state = "intact-b"; level = 2},/turf/simulated/floor,/area/atmos)
"bjw" = (/obj/cable{icon_state = "2-4"; d1 = 2; d2 = 4},/obj/machinery/atmospherics/pipe/simple{color = "red"; dir = 4; icon_state = "intact-r"; layer = 3; level = 2},/turf/simulated/floor,/area/atmos)
"bjx" = (/obj/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/manifold{icon_state = "manifold-r"; level = 2},/turf/simulated/floor,/area/atmos)
"bjy" = (/obj/machinery/atmospherics/pipe/manifold{icon_state = "manifold-r"; level = 2},/obj/machinery/meter,/turf/simulated/floor,/area/atmos)
"bjx" = (/obj/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/manifold{color = "red"; icon_state = "manifold-r"; level = 2},/turf/simulated/floor,/area/atmos)
"bjy" = (/obj/machinery/atmospherics/pipe/manifold{color = "red"; icon_state = "manifold-r"; level = 2},/obj/machinery/meter,/turf/simulated/floor,/area/atmos)
"bjz" = (/obj/machinery/atmospherics/binary/pump{dir = 8; icon_state = "intact_on"; name = "Gas pump (Waste loop)"; on = 1},/turf/simulated/floor,/area/atmos)
"bjA" = (/obj/machinery/atmospherics/pipe/manifold{dir = 4; icon_state = "manifold-r"; initialize_directions = 11; level = 2},/obj/machinery/light{tag = "icon-tube1 (EAST)"; icon_state = "tube1"; dir = 4},/turf/simulated/floor,/area/atmos)
"bjA" = (/obj/machinery/atmospherics/pipe/manifold{color = "red"; dir = 4; icon_state = "manifold-r"; initialize_directions = 11; level = 2},/obj/machinery/light{tag = "icon-tube1 (EAST)"; icon_state = "tube1"; dir = 4},/turf/simulated/floor,/area/atmos)
"bjB" = (/obj/machinery/atmospherics/pipe/simple{dir = 5; icon_state = "intact-f"; initialize_directions = 5; layer = 3},/turf/simulated/wall/r_wall,/area/teleporter)
"bjC" = (/obj/machinery/atmospherics/pipe/simple{dir = 10; icon_state = "intact-f"; layer = 3},/turf/simulated/wall/r_wall,/area/teleporter)
"bjD" = (/obj/machinery/atmospherics/pipe/simple,/obj/cable{icon_state = "1-2"; d1 = 1; d2 = 2},/obj/disposalpipe/segment,/turf/simulated/floor/plating,/area/maintenance/asmaint)
@@ -3224,8 +3224,8 @@
"bjZ" = (/obj/machinery/atmospherics/portables_connector{name = "Connector Port (Gas Mix)"},/turf/simulated/floor,/area/atmos)
"bka" = (/obj/machinery/atmospherics/binary/pump{dir = 1; icon_state = "intact_off"; name = "Gas Mix Waste Loop Pump"; on = 0; target_pressure = 1000},/turf/simulated/floor,/area/atmos)
"bkb" = (/obj/machinery/atmospherics/pipe/simple{color = "blue"; dir = 5; icon_state = "intact-b"; layer = 3; level = 2},/turf/simulated/floor,/area/atmos)
"bkc" = (/obj/cable{icon_state = "1-2"; d1 = 1; d2 = 2},/obj/machinery/atmospherics/pipe/manifold{dir = 1; icon_state = "manifold-b"; level = 2},/turf/simulated/floor,/area/atmos)
"bkd" = (/obj/machinery/atmospherics/pipe/manifold{dir = 1; icon_state = "manifold-b"; level = 2},/obj/machinery/meter{frequency = 1443; id = "dloop_atm_meter"},/turf/simulated/floor,/area/atmos)
"bkc" = (/obj/cable{icon_state = "1-2"; d1 = 1; d2 = 2},/obj/machinery/atmospherics/pipe/manifold{color = "blue"; dir = 1; icon_state = "manifold-b"; level = 2},/turf/simulated/floor,/area/atmos)
"bkd" = (/obj/machinery/atmospherics/pipe/manifold{color = "blue"; dir = 1; icon_state = "manifold-b"; level = 2},/obj/machinery/meter{frequency = 1443; id = "dloop_atm_meter"},/turf/simulated/floor,/area/atmos)
"bke" = (/obj/machinery/atmospherics/pipe/simple{color = "green"; icon_state = "intact-g"; level = 2},/obj/machinery/atmospherics/pipe/simple{color = "blue"; dir = 4; icon_state = "intact-b"; layer = 3; level = 2},/turf/simulated/floor,/area/atmos)
"bkf" = (/obj/machinery/atmospherics/pipe/simple{color = "blue"; dir = 4; icon_state = "intact-b"; layer = 3; level = 2},/obj/machinery/atmospherics/pipe/simple{color = "red"; icon_state = "intact-r"; level = 2},/turf/simulated/floor,/area/atmos)
"bkg" = (/obj/grille,/obj/window/reinforced/east,/obj/window/reinforced/west,/obj/machinery/atmospherics/pipe/simple{color = "blue"; dir = 4; icon_state = "intact-b"; layer = 3; level = 2},/turf/simulated/floor/plating,/area/atmos)
@@ -3275,13 +3275,13 @@
"bkY" = (/obj/grille,/obj/window/reinforced/east,/obj/window/reinforced/west,/obj/machinery/atmospherics/pipe/simple{color = "yellow"; dir = 4; icon_state = "intact-y"; layer = 3; level = 2},/obj/machinery/atmospherics/pipe/simple{color = "blue"; icon_state = "intact-b"; level = 2},/turf/simulated/floor/plating,/area/atmos)
"bkZ" = (/obj/machinery/light{tag = "icon-tube1 (WEST)"; icon_state = "tube1"; dir = 8},/obj/machinery/atmospherics/pipe/simple{color = "yellow"; dir = 4; icon_state = "intact-y"; layer = 3; level = 2},/obj/machinery/atmospherics/pipe/simple{color = "red"; icon_state = "intact-r"; level = 2},/turf/simulated/floor,/area/atmos)
"bla" = (/obj/machinery/atmospherics/valve/digital{dir = 4; name = "Gas Mix Outlet Valve"},/turf/simulated/floor,/area/atmos)
"blb" = (/obj/machinery/atmospherics/pipe/manifold{icon_state = "manifold-y"; level = 2},/turf/simulated/floor,/area/atmos)
"blb" = (/obj/machinery/atmospherics/pipe/manifold{color = "yellow"; icon_state = "manifold-y"; level = 2},/turf/simulated/floor,/area/atmos)
"blc" = (/obj/machinery/atmospherics/binary/pump{dir = 4; icon_state = "intact_off"; name = "Gas Mix Distribution Loop Pump"; on = 0},/turf/simulated/floor,/area/atmos)
"bld" = (/obj/cable{icon_state = "1-2"; d1 = 1; d2 = 2},/obj/machinery/atmospherics/pipe/simple{color = "blue"; dir = 9; icon_state = "intact-b"; layer = 3; level = 2},/turf/simulated/floor,/area/atmos)
"ble" = (/obj/machinery/atmospherics/pipe/simple{color = "green"; dir = 6; icon_state = "intact-g"; initialize_directions = 6; layer = 3; level = 2},/turf/simulated/floor,/area/atmos)
"blf" = (/obj/machinery/atmospherics/valve/digital{dir = 4; name = "Filter Loop Pressure Valve"; req_access_txt = "24"},/turf/simulated/floor,/area/atmos)
"blg" = (/obj/machinery/atmospherics/pipe/simple{color = "green"; dir = 4; icon_state = "intact-g"; layer = 3; level = 2},/obj/machinery/atmospherics/binary/pump{dir = 1; icon_state = "intact_on"; name = "Distribution Loop Inlet Pump"; on = 1; target_pressure = 1000},/turf/simulated/floor,/area/atmos)
"blh" = (/obj/machinery/atmospherics/pipe/manifold{dir = 4; icon_state = "manifold-g"; initialize_directions = 11; level = 2},/turf/simulated/floor,/area/atmos)
"blh" = (/obj/machinery/atmospherics/pipe/manifold{color = "green"; dir = 4; icon_state = "manifold-g"; initialize_directions = 11; level = 2},/turf/simulated/floor,/area/atmos)
"bli" = (/obj/machinery/atmospherics/pipe/simple{color = "red"; icon_state = "intact-r"; level = 2},/turf/simulated/floor,/area/atmos)
"blj" = (/obj/lattice,/obj/machinery/atmospherics/pipe/simple{color = "red"; dir = 6; icon_state = "intact-r"; layer = 3; level = 2},/turf/space,/area)
"blk" = (/obj/lattice,/obj/machinery/atmospherics/pipe/simple{color = "red"; dir = 4; icon_state = "intact-r"; layer = 3; level = 2},/turf/space,/area)
@@ -3312,7 +3312,7 @@
"blJ" = (/obj/machinery/atmospherics/filter{dir = 4; filter_type = 3; icon_state = "intact_on"; name = "Gas filter (CO2 tank)"; on = 1},/turf/simulated/floor,/area/atmos)
"blK" = (/obj/machinery/atmospherics/filter{dir = 4; filter_type = 1; icon_state = "intact_on"; name = "Gas filter (O2 tank)"; on = 1},/turf/simulated/floor,/area/atmos)
"blL" = (/obj/cable{icon_state = "1-2"; d1 = 1; d2 = 2},/obj/machinery/atmospherics/filter{dir = 4; filter_type = 2; icon_state = "intact_on"; name = "Gas filter (N2 tank)"; on = 1},/turf/simulated/floor,/area/atmos)
"blM" = (/obj/machinery/atmospherics/pipe/manifold{icon_state = "manifold-g"; level = 2},/obj/machinery/meter,/turf/simulated/floor,/area/atmos)
"blM" = (/obj/machinery/atmospherics/pipe/manifold{color = "green"; icon_state = "manifold-g"; level = 2},/obj/machinery/meter,/turf/simulated/floor,/area/atmos)
"blN" = (/obj/machinery/atmospherics/binary/pump{dir = 4; icon_state = "intact_on"; name = "Gas pump (Filter loop)"; on = 1},/turf/simulated/floor,/area/atmos)
"blO" = (/obj/machinery/atmospherics/pipe/simple{color = "green"; dir = 4; icon_state = "intact-g"; layer = 3; level = 2},/obj/machinery/atmospherics/pipe/simple{color = "cyan"; icon_state = "intact-c"; level = 2},/turf/simulated/floor,/area/atmos)
"blP" = (/obj/machinery/atmospherics/pipe/simple{color = "green"; dir = 9; icon_state = "intact-g"; layer = 3; level = 2},/obj/machinery/atmospherics/pipe/simple{color = "yellow"; dir = 6; icon_state = "intact-y"; initialize_directions = 6; layer = 3; level = 2},/turf/simulated/floor,/area/atmos)
@@ -3396,7 +3396,7 @@
"bnp" = (/obj/cable{icon_state = "2-4"; d1 = 2; d2 = 4},/obj/machinery/atmospherics/pipe/simple{color = "yellow"; dir = 9; icon_state = "intact-y"; layer = 3; level = 2},/turf/simulated/floor,/area/atmos)
"bnq" = (/obj/cable{icon_state = "4-8"; d1 = 4; d2 = 8},/obj/machinery/atmospherics/pipe/simple{color = "cyan"; dir = 5; icon_state = "intact-c"; layer = 3; level = 2},/turf/simulated/floor,/area/atmos)
"bnr" = (/obj/cable{icon_state = "4-8"; d1 = 4; d2 = 8},/obj/machinery/atmospherics/pipe/simple{color = "cyan"; dir = 4; icon_state = "intact-c"; layer = 3; level = 2},/turf/simulated/floor,/area/atmos)
"bns" = (/obj/machinery/atmospherics/pipe/manifold{dir = 1; icon_state = "manifold-c"; level = 2},/obj/machinery/meter{frequency = 1443; id = "mair_meter"},/turf/simulated/floor,/area/atmos)
"bns" = (/obj/machinery/atmospherics/pipe/manifold{color = "cyan"; dir = 1; icon_state = "manifold-c"; level = 2},/obj/machinery/meter{frequency = 1443; id = "mair_meter"},/turf/simulated/floor,/area/atmos)
"bnt" = (/obj/cable{icon_state = "4-8"; d1 = 4; d2 = 8},/obj/machinery/atmospherics/binary/pump{dir = 8; icon_state = "intact_on"; name = "Gas pump (Distribution loop)"; on = 1},/turf/simulated/floor,/area/atmos)
"bnu" = (/obj/machinery/atmospherics/pipe/simple{color = "cyan"; dir = 10; icon_state = "intact-c"; initialize_directions = 10; layer = 3; level = 2},/turf/simulated/floor,/area/atmos)
"bnv" = (/obj/machinery/atmospherics/pipe/simple{color = "yellow"; icon_state = "intact-y"; level = 2},/turf/simulated/floor,/area/atmos)
@@ -3418,7 +3418,7 @@
"bnL" = (/obj/lattice,/obj/machinery/atmospherics/pipe/simple{color = "cyan"; dir = 6; icon_state = "intact-c"; initialize_directions = 6; layer = 3; level = 2},/turf/space,/area)
"bnM" = (/obj/lattice,/obj/machinery/atmospherics/pipe/simple{color = "cyan"; dir = 4; icon_state = "intact-c"; layer = 3; level = 2},/turf/space,/area)
"bnN" = (/obj/machinery/atmospherics/pipe/simple{color = "cyan"; dir = 9; icon_state = "intact-c"; layer = 3; level = 2},/turf/simulated/wall/r_wall,/area/atmos)
"bnO" = (/obj/machinery/camera{c_tag = "Atmospherics Airlock Control"; dir = 4; network = "SS13"},/obj/machinery/atmospherics/pipe/manifold{dir = 8; icon_state = "manifold-r"; level = 2},/turf/simulated/floor,/area/atmos)
"bnO" = (/obj/machinery/camera{c_tag = "Atmospherics Airlock Control"; dir = 4; network = "SS13"},/obj/machinery/atmospherics/pipe/manifold{color = "red"; dir = 8; icon_state = "manifold-r"; level = 2},/turf/simulated/floor,/area/atmos)
"bnP" = (/obj/machinery/atmospherics/pipe/simple{color = "blue"; icon_state = "intact-b"; level = 2},/obj/machinery/atmospherics/binary/pump{dir = 8; icon_state = "intact_off"; name = "Gas Mix Pump"; on = 0},/turf/simulated/floor,/area/atmos)
"bnQ" = (/obj/landmark/start{name = "Atmospheric Technician"},/obj/machinery/atmospherics/pipe/simple{color = "yellow"; dir = 4; icon_state = "intact-y"; layer = 3; level = 2},/obj/stool/chair,/turf/simulated/floor,/area/atmos)
"bnR" = (/obj/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/cable{icon_state = "2-4"; d1 = 2; d2 = 4},/obj/machinery/atmospherics/pipe/simple{color = "yellow"; dir = 9; icon_state = "intact-y"; layer = 3; level = 2},/turf/simulated/floor,/area/atmos)
@@ -3429,7 +3429,7 @@
"bnW" = (/obj/cable{icon_state = "1-2"; d1 = 1; d2 = 2},/obj/machinery/atmospherics/pipe/simple{color = "green"; dir = 4; icon_state = "intact-g"; layer = 3; level = 2},/obj/machinery/meter,/turf/simulated/floor,/area/atmos)
"bnX" = (/obj/machinery/atmospherics/pipe/simple{color = "cyan"; dir = 5; icon_state = "intact-c"; layer = 3; level = 2},/turf/simulated/floor,/area/atmos)
"bnY" = (/obj/machinery/atmospherics/valve/digital{dir = 4; name = "Distribution Loop Pressure Valve"; req_access_txt = "24"},/turf/simulated/floor,/area/atmos)
"bnZ" = (/obj/machinery/atmospherics/pipe/manifold{dir = 4; icon_state = "manifold-c"; initialize_directions = 11; level = 2},/turf/simulated/floor,/area/atmos)
"bnZ" = (/obj/machinery/atmospherics/pipe/manifold{color = "cyan"; dir = 4; icon_state = "manifold-c"; initialize_directions = 11; level = 2},/turf/simulated/floor,/area/atmos)
"boa" = (/obj/machinery/atmospherics/pipe/simple{color = "yellow"; icon_state = "intact-y"; level = 2},/obj/machinery/meter,/turf/simulated/floor,/area/atmos)
"bob" = (/obj/machinery/atmospherics/portables_connector{name = "Connector Port (N2O)"},/turf/simulated/floor,/area/atmos)
"boc" = (/obj/machinery/light{tag = "icon-tube1 (EAST)"; icon_state = "tube1"; dir = 4},/obj/machinery/computer/general_air_control/large_tank_control{frequency = 1441; input_tag = "n2o_in"; name = "Nitrous Oxide Supply Control"; output_tag = "n2o_out"; sensors = list("n2o_sensor" = "Tank")},/turf/simulated/floor,/area/atmos)
@@ -3442,10 +3442,10 @@
"boj" = (/obj/machinery/door/airlock/glass{name = "Engineering Wing Access"},/turf/simulated/floor,/area/hallway/primary/aft)
"bok" = (/obj/machinery/door/airlock/glass{name = "Engineering Wing Access"},/obj/cable{icon_state = "1-2"; d1 = 1; d2 = 2},/turf/simulated/floor,/area/hallway/primary/aft)
"bol" = (/obj/machinery/atmospherics/pipe/simple{color = "cyan"; dir = 6; icon_state = "intact-c"; initialize_directions = 6; layer = 3; level = 2},/turf/simulated/wall,/area/hallway/primary/aft)
"bom" = (/obj/machinery/atmospherics/pipe/manifold{dir = 1; icon_state = "manifold-c"; initialize_directions = 14; level = 2},/turf/simulated/wall,/area/hallway/primary/aft)
"bon" = (/obj/machinery/atmospherics/pipe/manifold{dir = 4; icon_state = "manifold-c"; initialize_directions = 11; level = 2},/turf/simulated/wall,/area/hallway/primary/aft)
"bom" = (/obj/machinery/atmospherics/pipe/manifold{color = "cyan"; dir = 1; icon_state = "manifold-c"; initialize_directions = 14; level = 2},/turf/simulated/wall,/area/hallway/primary/aft)
"bon" = (/obj/machinery/atmospherics/pipe/manifold{color = "cyan"; dir = 4; icon_state = "manifold-c"; initialize_directions = 11; level = 2},/turf/simulated/wall,/area/hallway/primary/aft)
"boo" = (/obj/machinery/atmospherics/pipe/simple{color = "red"; dir = 6; icon_state = "intact-r"; initialize_directions = 6; layer = 3; level = 2},/turf/simulated/wall,/area/hallway/primary/aft)
"bop" = (/obj/machinery/atmospherics/pipe/manifold{dir = 1; icon_state = "manifold-r"; initialize_directions = 14; level = 2},/turf/simulated/wall,/area/hallway/primary/aft)
"bop" = (/obj/machinery/atmospherics/pipe/manifold{color = "red"; dir = 1; icon_state = "manifold-r"; initialize_directions = 14; level = 2},/turf/simulated/wall,/area/hallway/primary/aft)
"boq" = (/obj/machinery/atmospherics/pipe/simple{color = "red"; dir = 4; icon_state = "intact-r"; layer = 3; level = 2},/turf/simulated/wall,/area/hallway/primary/aft)
"bor" = (/obj/machinery/atmospherics/binary/pump{dir = 4; icon_state = "intact_on"; name = "Waste Air Hookup Pump"; on = 1},/turf/simulated/wall/r_wall,/area/atmos)
"bos" = (/obj/machinery/atmospherics/pipe/simple{color = "red"; dir = 9; icon_state = "intact-r"; layer = 3; level = 2},/turf/simulated/floor,/area/atmos)
@@ -3460,7 +3460,7 @@
"boB" = (/obj/machinery/atmospherics/pipe/simple{color = "cyan"; dir = 4; icon_state = "intact-c"; layer = 3; level = 2},/turf/simulated/wall,/area/atmos)
"boC" = (/obj/machinery/atmospherics/pipe/simple{color = "green"; icon_state = "intact-g"; level = 2},/obj/machinery/atmospherics/pipe/simple{color = "cyan"; dir = 4; icon_state = "intact-c"; layer = 3; level = 2},/turf/simulated/wall,/area/atmos)
"boD" = (/obj/machinery/light{tag = "icon-tube1 (WEST)"; icon_state = "tube1"; dir = 8},/obj/machinery/camera{c_tag = "Atmospherics East"; dir = 4; network = "SS13"},/obj/machinery/atmospherics/valve/digital{dir = 4; icon_state = "valve1"; name = "Mixed Air Connectors"; open = 1},/turf/simulated/floor,/area/atmos)
"boE" = (/obj/machinery/atmospherics/pipe/manifold{dir = 8; icon_state = "manifold-y"; level = 2},/turf/simulated/floor,/area/atmos)
"boE" = (/obj/machinery/atmospherics/pipe/manifold{color = "yellow"; dir = 8; icon_state = "manifold-y"; level = 2},/turf/simulated/floor,/area/atmos)
"boF" = (/obj/machinery/atmospherics/valve/digital{dir = 4; name = "N2O Outlet Valve"},/turf/simulated/floor,/area/atmos)
"boG" = (/obj/grille,/obj/window/reinforced/east,/obj/window/reinforced/west,/obj/machinery/atmospherics/pipe/simple{color = "yellow"; dir = 4; icon_state = "intact-y"; layer = 3; level = 2},/turf/simulated/floor/plating,/area/atmos)
"boH" = (/obj/lattice,/obj/machinery/atmospherics/pipe/simple{color = "yellow"; dir = 4; icon_state = "intact-y"; layer = 3; level = 2},/turf/space,/area)
@@ -3479,7 +3479,7 @@
"boU" = (/obj/grille,/obj/window/reinforced/north,/obj/window/reinforced/south,/turf/simulated/floor,/area/hallway/primary/aft)
"boV" = (/obj/machinery/atmospherics/pipe/simple{color = "blue"; dir = 5; icon_state = "intact-b"; layer = 3; level = 2},/turf/simulated/wall/r_wall,/area/hallway/primary/aft)
"boW" = (/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "atmos"; name = "Airlock Window Shield"; opacity = 0},/obj/grille,/obj/window/reinforced/west,/obj/window/reinforced/north,/obj/window/reinforced/south,/obj/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/atmospherics/pipe/simple{color = "blue"; dir = 4; icon_state = "intact-b"; layer = 3; level = 2},/turf/simulated/floor/plating,/area/atmos)
"boX" = (/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "atmos"; name = "Airlock Window Shield"; opacity = 0},/obj/grille,/obj/window/reinforced/north,/obj/window/reinforced/south,/obj/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/cable,/obj/machinery/atmospherics/pipe/manifold{dir = 4; icon_state = "manifold-b"; initialize_directions = 11; level = 2},/turf/simulated/floor/plating,/area/atmos)
"boX" = (/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "atmos"; name = "Airlock Window Shield"; opacity = 0},/obj/grille,/obj/window/reinforced/north,/obj/window/reinforced/south,/obj/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/cable,/obj/machinery/atmospherics/pipe/manifold{color = "blue"; dir = 4; icon_state = "manifold-b"; initialize_directions = 11; level = 2},/turf/simulated/floor/plating,/area/atmos)
"boY" = (/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "atmos"; name = "Airlock Window Shield"; opacity = 0},/obj/grille,/obj/window/reinforced/north,/obj/window/reinforced/east,/obj/window/reinforced/south,/obj/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/atmos)
"boZ" = (/obj/machinery/light{tag = "icon-tube1 (WEST)"; icon_state = "tube1"; dir = 8},/obj/machinery/atmospherics/pipe/simple{color = "green"; icon_state = "intact-g"; level = 2},/turf/simulated/floor,/area/atmos)
"bpa" = (/obj/cable{icon_state = "1-2"; d1 = 1; d2 = 2},/obj/machinery/atmospherics/pipe/simple{color = "green"; icon_state = "intact-g"; level = 2},/turf/simulated/floor,/area/atmos)
@@ -3551,7 +3551,7 @@
"bqo" = (/obj/cable{icon_state = "1-2"; d1 = 1; d2 = 2},/obj/securearea,/turf/simulated/wall/r_wall,/area/hallway/primary/aft)
"bqp" = (/turf/simulated/wall/r_wall,/area/atmos)
"bqq" = (/obj/machinery/atmospherics/pipe/simple{color = "blue"; dir = 5; icon_state = "intact-b"; initialize_directions = 5; layer = 3; level = 2},/turf/simulated/wall/r_wall,/area/atmos)
"bqr" = (/obj/machinery/atmospherics/pipe/manifold{dir = 4; icon_state = "manifold-b"; initialize_directions = 11; level = 2},/turf/simulated/wall/r_wall,/area/atmos)
"bqr" = (/obj/machinery/atmospherics/pipe/manifold{color = "blue"; dir = 4; icon_state = "manifold-b"; initialize_directions = 11; level = 2},/turf/simulated/wall/r_wall,/area/atmos)
"bqs" = (/obj/machinery/atmospherics/pipe/simple{color = "green"; dir = 5; icon_state = "intact-g"; layer = 3; level = 2},/turf/simulated/wall/r_wall,/area/atmos)
"bqt" = (/obj/machinery/light{tag = "icon-tube1 (WEST)"; icon_state = "tube1"; dir = 8},/obj/machinery/camera{dir = 4; c_tag = "Atmospherics Control West"},/obj/machinery/atmospherics/pipe/simple{color = "green"; dir = 4; icon_state = "intact-g"; layer = 3; level = 2},/obj/machinery/atmospherics/pipe/simple{color = "green"; icon_state = "intact-g"; level = 2},/turf/simulated/floor,/area/atmos)
"bqu" = (/obj/machinery/light{tag = "icon-tube1 (EAST)"; icon_state = "tube1"; dir = 4},/obj/machinery/atmospherics/pipe/simple{color = "green"; dir = 4; icon_state = "intact-g"; layer = 3; level = 2},/turf/simulated/floor,/area/atmos)
@@ -3603,7 +3603,7 @@
"bro" = (/obj/machinery/portable_atmospherics/canister/oxygen,/obj/landmark{name = "blobstart"; pixel_x = -1},/turf/simulated/floor,/area/atmos)
"brp" = (/obj/machinery/atmospherics/pipe/simple{color = "blue"; dir = 6; icon_state = "intact-b"; initialize_directions = 6; layer = 3; level = 2},/turf/simulated/floor,/area/atmos)
"brq" = (/obj/machinery/door/firedoor/border_only{dir = 4},/obj/machinery/door/airlock/maintenance{name = "Atmospherics Access"; req_access_txt = "24"},/obj/machinery/atmospherics/pipe/simple{color = "blue"; dir = 4; icon_state = "intact-b"; layer = 3; level = 2},/turf/simulated/floor,/area/atmos)
"brr" = (/obj/machinery/atmospherics/pipe/manifold{icon_state = "manifold-b"; level = 2},/turf/simulated/floor,/area/atmos)
"brr" = (/obj/machinery/atmospherics/pipe/manifold{color = "blue"; icon_state = "manifold-b"; level = 2},/turf/simulated/floor,/area/atmos)
"brs" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 8; on = 1},/turf/simulated/floor,/area/atmos)
"brt" = (/obj/machinery/atmospherics/pipe/simple{color = "yellow"; dir = 4; icon_state = "intact-y"; layer = 3; level = 2},/obj/machinery/atmospherics/pipe/simple{color = "green"; icon_state = "intact-g"; level = 2},/turf/simulated/floor,/area/atmos)
"bru" = (/obj/machinery/atmospherics/pipe/simple{color = "yellow"; dir = 4; icon_state = "intact-y"; layer = 3; level = 2},/obj/machinery/atmospherics/pipe/simple{color = "yellow"; icon_state = "intact-y"; level = 2},/turf/simulated/floor,/area/atmos)
@@ -3611,7 +3611,7 @@
"brw" = (/obj/machinery/atmospherics/pipe/simple{color = "cyan"; dir = 6; icon_state = "intact-c"; initialize_directions = 6; layer = 3; level = 2},/turf/simulated/floor,/area/atmos)
"brx" = (/obj/machinery/atmospherics/pipe/simple{color = "green"; icon_state = "intact-g"; level = 2},/obj/machinery/atmospherics/valve/digital{dir = 4; name = "Mixed Air Tank Bypass"},/turf/simulated/floor,/area/atmos)
"bry" = (/obj/machinery/atmospherics/pipe/simple{color = "yellow"; dir = 5; icon_state = "intact-y"; layer = 3; level = 2},/turf/simulated/floor,/area/atmos)
"brz" = (/obj/machinery/atmospherics/pipe/manifold{dir = 1; icon_state = "manifold-y"; level = 2},/turf/simulated/floor,/area/atmos)
"brz" = (/obj/machinery/atmospherics/pipe/manifold{color = "yellow"; dir = 1; icon_state = "manifold-y"; level = 2},/turf/simulated/floor,/area/atmos)
"brA" = (/obj/machinery/light{tag = "icon-tube1 (EAST)"; icon_state = "tube1"; dir = 4},/obj/machinery/computer/general_air_control/large_tank_control{frequency = 1441; input_tag = "co2_in"; name = "Carbon Dioxide Supply Control"; output_tag = "co2_out"; sensors = list("co2_sensor" = "Tank")},/turf/simulated/floor,/area/atmos)
"brB" = (/obj/machinery/light/small{dir = 8},/obj/machinery/air_sensor{frequency = 1441; id_tag = "co2_sensor"},/turf/simulated/floor/engine{carbon_dioxide = 50000; name = "co2 floor"; nitrogen = 0; oxygen = 0},/area/atmos)
"brC" = (/obj/machinery/portable_atmospherics/canister/carbon_dioxide,/turf/simulated/floor/engine{carbon_dioxide = 50000; name = "co2 floor"; nitrogen = 0; oxygen = 0},/area/atmos)
@@ -3627,7 +3627,7 @@
"brM" = (/obj/machinery/portable_atmospherics/canister/nitrogen,/turf/simulated/floor,/area/atmos)
"brN" = (/obj/machinery/atmospherics/pipe/simple{color = "blue"; icon_state = "intact-b"; level = 2},/turf/simulated/floor,/area/atmos)
"brO" = (/obj/grille,/obj/window/reinforced/east,/obj/window/reinforced/north,/obj/window/reinforced/west,/obj/window/reinforced/south,/turf/simulated/floor,/area/atmos)
"brP" = (/obj/machinery/atmospherics/pipe/manifold{icon_state = "manifold-c"; level = 2},/turf/simulated/floor,/area/atmos)
"brP" = (/obj/machinery/atmospherics/pipe/manifold{color = "cyan"; icon_state = "manifold-c"; level = 2},/turf/simulated/floor,/area/atmos)
"brQ" = (/obj/machinery/atmospherics/pipe/simple{color = "cyan"; dir = 4; icon_state = "intact-c"; layer = 3; level = 2},/obj/machinery/atmospherics/pipe/simple{color = "green"; icon_state = "intact-g"; level = 2},/turf/simulated/floor,/area/atmos)
"brR" = (/obj/machinery/atmospherics/pipe/simple{color = "cyan"; dir = 5; icon_state = "intact-c"; layer = 3; level = 2},/obj/machinery/atmospherics/pipe/simple{color = "cyan"; dir = 10; icon_state = "intact-c"; initialize_directions = 10; layer = 3; level = 2},/turf/simulated/floor,/area/atmos)
"brS" = (/obj/machinery/atmospherics/portables_connector{dir = 1; name = "Connector Port (CO2)"},/turf/simulated/floor,/area/atmos)
@@ -3662,7 +3662,7 @@
"bsv" = (/obj/machinery/firealarm{dir = 8; pixel_x = -24},/turf/simulated/floor{dir = 8; icon_state = "yellow"; tag = "icon-yellow (WEST)"},/area/hallway/primary/aft)
"bsw" = (/turf/simulated/floor{dir = 4; icon_state = "yellow"; tag = "icon-yellow (EAST)"},/area/hallway/primary/aft)
"bsx" = (/obj/machinery/atmospherics/pipe/simple{color = "blue"; dir = 6; icon_state = "intact-b"; initialize_directions = 6; layer = 3; level = 2},/turf/simulated/wall/r_wall,/area/atmos)
"bsy" = (/obj/machinery/atmospherics/pipe/manifold{icon_state = "manifold-b"; level = 2},/turf/simulated/wall/r_wall,/area/atmos)
"bsy" = (/obj/machinery/atmospherics/pipe/manifold{color = "blue"; icon_state = "manifold-b"; level = 2},/turf/simulated/wall/r_wall,/area/atmos)
"bsz" = (/obj/machinery/atmospherics/pipe/simple{color = "blue"; dir = 4; icon_state = "intact-b"; layer = 3; level = 2},/obj/machinery/portable_atmospherics/canister/carbon_dioxide,/turf/simulated/floor,/area/atmos)
"bsA" = (/obj/machinery/light/small,/obj/cable{icon_state = "1-2"; d1 = 1; d2 = 2},/obj/machinery/atmospherics/pipe/simple{color = "blue"; dir = 4; icon_state = "intact-b"; layer = 3; level = 2},/obj/machinery/portable_atmospherics/canister/carbon_dioxide,/turf/simulated/floor,/area/atmos)
"bsB" = (/obj/machinery/atmospherics/pipe/simple{color = "blue"; dir = 9; icon_state = "intact-b"; layer = 3; level = 2},/obj/machinery/portable_atmospherics/canister/carbon_dioxide,/turf/simulated/floor,/area/atmos)