Prepare Atmospherics Machinery for SSatoms (#4501)

* to_chat() replacement.

* Revert calling target.init_dir() before connecting.

* This change was added in https://github.com/PolarisSS13/Polaris/pull/3775 to counteract `dir` not being set prior to New() for dynamically loaded maps.  The root cause was /atom/New() not calling _preloader.load().  Undoing the change now that /atom/New() is fixed.
* The addition of the init_dir() proc itself however, is useful, because there ARE other times some atmos machinery will want to re-initialize its dir, specifically whenever it is rotated.
* init_dir() must be called in the constructor of all atmospherics machines capable of connecting to another.   Since it has to happen for ALL machines, lets move that call to /obj/machinery/atmospherics/New()

* Rename /obj/machinery/atmospherics initialize() to atmos_init()

* These days `initialize()` is used to handle general object initialization that is moved outside of New().  The node connection discovery of atmos machinery needs to happen after all that, and so needs to be in a separate proc.
* Make sure to actually call atmos_init during system startup.
This commit is contained in:
Leshana
2018-01-06 11:52:56 -05:00
committed by Anewbe
parent e23c002eb5
commit 224fe42e77
28 changed files with 238 additions and 297 deletions

View File

@@ -10,9 +10,6 @@ Pipelines + Other Objects -> Pipe network
*/ */
/obj/machinery/atmospherics /obj/machinery/atmospherics
auto_init = 0
anchored = 1 anchored = 1
idle_power_usage = 0 idle_power_usage = 0
active_power_usage = 0 active_power_usage = 0
@@ -33,6 +30,7 @@ Pipelines + Other Objects -> Pipe network
var/obj/machinery/atmospherics/node2 var/obj/machinery/atmospherics/node2
/obj/machinery/atmospherics/New() /obj/machinery/atmospherics/New()
..()
if(!icon_manager) if(!icon_manager)
icon_manager = new() icon_manager = new()
@@ -42,7 +40,19 @@ Pipelines + Other Objects -> Pipe network
if(!pipe_color_check(pipe_color)) if(!pipe_color_check(pipe_color))
pipe_color = null pipe_color = null
..() init_dir()
// This is used to set up what directions pipes will connect to. Should be called inside New() and whenever a dir changes.
/obj/machinery/atmospherics/proc/init_dir()
return
// Initializes nodes by looking at neighboring atmospherics machinery to connect to.
// When we're being constructed at runtime, atmos_init() is called by the construction code.
// When dynamically loading a map atmos_init is called by the maploader (initTemplateBounds proc)
// But during initial world creation its called by the master_controller.
// TODO - Consolidate these different ways of being called once SSatoms is created.
/obj/machinery/atmospherics/proc/atmos_init()
return
/obj/machinery/atmospherics/attackby(atom/A, mob/user as mob) /obj/machinery/atmospherics/attackby(atom/A, mob/user as mob)
if(istype(A, /obj/item/device/pipe_painter)) if(istype(A, /obj/item/device/pipe_painter))

View File

@@ -57,24 +57,20 @@
node1 = null node1 = null
node2 = null node2 = null
/obj/machinery/atmospherics/binary/initialize() /obj/machinery/atmospherics/binary/atmos_init()
if(node1 && node2) if(node1 && node2)
return return
init_dir()
var/node2_connect = dir var/node2_connect = dir
var/node1_connect = turn(dir, 180) var/node1_connect = turn(dir, 180)
for(var/obj/machinery/atmospherics/target in get_step(src,node1_connect)) for(var/obj/machinery/atmospherics/target in get_step(src,node1_connect))
target.init_dir()
if(target.initialize_directions & get_dir(target,src)) if(target.initialize_directions & get_dir(target,src))
if (check_connect_types(target,src)) if (check_connect_types(target,src))
node1 = target node1 = target
break break
for(var/obj/machinery/atmospherics/target in get_step(src,node2_connect)) for(var/obj/machinery/atmospherics/target in get_step(src,node2_connect))
target.init_dir()
if(target.initialize_directions & get_dir(target,src)) if(target.initialize_directions & get_dir(target,src))
if (check_connect_types(target,src)) if (check_connect_types(target,src))
node2 = target node2 = target

View File

@@ -101,13 +101,13 @@
else if(dir & (EAST|WEST)) else if(dir & (EAST|WEST))
initialize_directions = EAST|WEST initialize_directions = EAST|WEST
initialize() atmos_init()
build_network() build_network()
if (node1) if (node1)
node1.initialize() node1.atmos_init()
node1.build_network() node1.build_network()
if (node2) if (node2)
node2.initialize() node2.atmos_init()
node2.build_network() node2.build_network()
else else
if(node1) if(node1)

View File

@@ -166,7 +166,7 @@
return return
src.add_fingerprint(usr) src.add_fingerprint(usr)
if(!src.allowed(user)) if(!src.allowed(user))
user << "<span class='warning'>Access denied.</span>" to_chat(user, "<span class='warning'>Access denied.</span>")
return return
usr.set_machine(src) usr.set_machine(src)
ui_interact(user) ui_interact(user)
@@ -240,14 +240,14 @@
if (!istype(W, /obj/item/weapon/wrench)) if (!istype(W, /obj/item/weapon/wrench))
return ..() return ..()
if (unlocked) if (unlocked)
user << "<span class='warning'>You cannot unwrench \the [src], turn it off first.</span>" to_chat(user, "<span class='warning'>You cannot unwrench \the [src], turn it off first.</span>")
return 1 return 1
if(!can_unwrench()) if(!can_unwrench())
to_chat(user, "<span class='warning'>You cannot unwrench \the [src], it too exerted due to internal pressure.</span>") to_chat(user, "<span class='warning'>You cannot unwrench \the [src], it too exerted due to internal pressure.</span>")
add_fingerprint(user) add_fingerprint(user)
return 1 return 1
playsound(src, W.usesound, 50, 1) playsound(src, W.usesound, 50, 1)
user << "<span class='notice'>You begin to unfasten \the [src]...</span>" to_chat(user, "<span class='notice'>You begin to unfasten \the [src]...</span>")
if (do_after(user, 40 * W.toolspeed)) if (do_after(user, 40 * W.toolspeed))
user.visible_message( \ user.visible_message( \
"<span class='notice'>\The [user] unfastens \the [src].</span>", \ "<span class='notice'>\The [user] unfastens \the [src].</span>", \

View File

@@ -87,7 +87,7 @@
if(istype(W, /obj/item/weapon/wrench)) if(istype(W, /obj/item/weapon/wrench))
anchored = !anchored anchored = !anchored
playsound(src, W.usesound, 50, 1) playsound(src, W.usesound, 50, 1)
user << "<span class='notice'>You [anchored ? "secure" : "unsecure"] the bolts holding \the [src] to the floor.</span>" to_chat(user, "<span class='notice'>You [anchored ? "secure" : "unsecure"] the bolts holding \the [src] to the floor.</span>")
if(anchored) if(anchored)
if(dir & (NORTH|SOUTH)) if(dir & (NORTH|SOUTH))
@@ -95,13 +95,13 @@
else if(dir & (EAST|WEST)) else if(dir & (EAST|WEST))
initialize_directions = NORTH|SOUTH initialize_directions = NORTH|SOUTH
initialize() atmos_init()
build_network() build_network()
if (node1) if (node1)
node1.initialize() node1.atmos_init()
node1.build_network() node1.build_network()
if (node2) if (node2)
node2.initialize() node2.atmos_init()
node2.build_network() node2.build_network()
else else
if(node1) if(node1)
@@ -153,7 +153,7 @@
return null return null
initialize() atmos_init()
if(node1 && node2) return if(node1 && node2) return
var/node2_connect = turn(dir, -90) var/node2_connect = turn(dir, -90)
@@ -260,7 +260,7 @@
anchored = !anchored anchored = !anchored
playsound(src, W.usesound, 50, 1) playsound(src, W.usesound, 50, 1)
turbine = null turbine = null
user << "<span class='notice'>You [anchored ? "secure" : "unsecure"] the bolts holding \the [src] to the floor.</span>" to_chat(user, "<span class='notice'>You [anchored ? "secure" : "unsecure"] the bolts holding \the [src] to the floor.</span>")
updateConnection() updateConnection()
else else
..() ..()

View File

@@ -183,7 +183,7 @@ Thus, the two variables affect pump operation are set in New():
return return
src.add_fingerprint(usr) src.add_fingerprint(usr)
if(!src.allowed(user)) if(!src.allowed(user))
user << "<span class='warning'>Access denied.</span>" to_chat(user, "<span class='warning'>Access denied.</span>")
return return
usr.set_machine(src) usr.set_machine(src)
ui_interact(user) ui_interact(user)
@@ -219,14 +219,14 @@ Thus, the two variables affect pump operation are set in New():
if (!istype(W, /obj/item/weapon/wrench)) if (!istype(W, /obj/item/weapon/wrench))
return ..() return ..()
if (!(stat & NOPOWER) && use_power) if (!(stat & NOPOWER) && use_power)
user << "<span class='warning'>You cannot unwrench this [src], turn it off first.</span>" to_chat(user, "<span class='warning'>You cannot unwrench this [src], turn it off first.</span>")
return 1 return 1
if(!can_unwrench()) if(!can_unwrench())
to_chat(user, "<span class='warning'>You cannot unwrench this [src], it too exerted due to internal pressure.</span>") to_chat(user, "<span class='warning'>You cannot unwrench this [src], it too exerted due to internal pressure.</span>")
add_fingerprint(user) add_fingerprint(user)
return 1 return 1
playsound(src, W.usesound, 50, 1) playsound(src, W.usesound, 50, 1)
user << "<span class='notice'>You begin to unfasten \the [src]...</span>" to_chat(user, "<span class='notice'>You begin to unfasten \the [src]...</span>")
if (do_after(user, 40 * W.toolspeed)) if (do_after(user, 40 * W.toolspeed))
user.visible_message( \ user.visible_message( \
"<span class='notice'>\The [user] unfastens \the [src].</span>", \ "<span class='notice'>\The [user] unfastens \the [src].</span>", \

View File

@@ -40,10 +40,10 @@
/datum/omni_port/proc/connect() /datum/omni_port/proc/connect()
if(node) if(node)
return return
master.initialize() master.atmos_init()
master.build_network() master.build_network()
if(node) if(node)
node.initialize() node.atmos_init()
node.build_network() node.build_network()
/datum/omni_port/proc/disconnect() /datum/omni_port/proc/disconnect()

View File

@@ -86,7 +86,7 @@
to_chat(user, "<span class='warning'>You cannot unwrench \the [src], it is too exerted due to internal pressure.</span>") to_chat(user, "<span class='warning'>You cannot unwrench \the [src], it is too exerted due to internal pressure.</span>")
add_fingerprint(user) add_fingerprint(user)
return 1 return 1
user << "<span class='notice'>You begin to unfasten \the [src]...</span>" to_chat(user, "<span class='notice'>You begin to unfasten \the [src]...</span>")
playsound(src, W.usesound, 50, 1) playsound(src, W.usesound, 50, 1)
if(do_after(user, 40 * W.toolspeed)) if(do_after(user, 40 * W.toolspeed))
user.visible_message( \ user.visible_message( \
@@ -245,14 +245,13 @@
qdel(P.network) qdel(P.network)
P.node = null P.node = null
..() . = ..()
/obj/machinery/atmospherics/omni/initialize() /obj/machinery/atmospherics/omni/atmos_init()
for(var/datum/omni_port/P in ports) for(var/datum/omni_port/P in ports)
if(P.node || P.mode == 0) if(P.node || P.mode == 0)
continue continue
for(var/obj/machinery/atmospherics/target in get_step(src, P.dir)) for(var/obj/machinery/atmospherics/target in get_step(src, P.dir))
target.init_dir()
if(target.initialize_directions & get_dir(target,src)) if(target.initialize_directions & get_dir(target,src))
if (check_connect_types(target,src)) if (check_connect_types(target,src))
P.node = target P.node = target

View File

@@ -21,10 +21,6 @@
/obj/machinery/atmospherics/portables_connector/init_dir() /obj/machinery/atmospherics/portables_connector/init_dir()
initialize_directions = dir initialize_directions = dir
/obj/machinery/atmospherics/portables_connector/New()
init_dir()
..()
/obj/machinery/atmospherics/portables_connector/update_icon() /obj/machinery/atmospherics/portables_connector/update_icon()
icon_state = "connector" icon_state = "connector"
@@ -74,16 +70,13 @@
node = null node = null
/obj/machinery/atmospherics/portables_connector/initialize() /obj/machinery/atmospherics/portables_connector/atmos_init()
if(node) if(node)
return return
init_dir()
var/node_connect = dir var/node_connect = dir
for(var/obj/machinery/atmospherics/target in get_step(src,node_connect)) for(var/obj/machinery/atmospherics/target in get_step(src,node_connect))
target.init_dir()
if(target.initialize_directions & get_dir(target,src)) if(target.initialize_directions & get_dir(target,src))
if (check_connect_types(target,src)) if (check_connect_types(target,src))
node = target node = target
@@ -138,7 +131,7 @@
if (!istype(W, /obj/item/weapon/wrench)) if (!istype(W, /obj/item/weapon/wrench))
return ..() return ..()
if (connected_device) if (connected_device)
user << "<span class='warning'>You cannot unwrench \the [src], dettach \the [connected_device] first.</span>" to_chat(user, "<span class='warning'>You cannot unwrench \the [src], dettach \the [connected_device] first.</span>")
return 1 return 1
if (locate(/obj/machinery/portable_atmospherics, src.loc)) if (locate(/obj/machinery/portable_atmospherics, src.loc))
return 1 return 1
@@ -147,7 +140,7 @@
add_fingerprint(user) add_fingerprint(user)
return 1 return 1
playsound(src, W.usesound, 50, 1) playsound(src, W.usesound, 50, 1)
user << "<span class='notice'>You begin to unfasten \the [src]...</span>" to_chat(user, "<span class='notice'>You begin to unfasten \the [src]...</span>")
if (do_after(user, 40 * W.toolspeed)) if (do_after(user, 40 * W.toolspeed))
user.visible_message( \ user.visible_message( \
"<span class='notice'>\The [user] unfastens \the [src].</span>", \ "<span class='notice'>\The [user] unfastens \the [src].</span>", \

View File

@@ -136,7 +136,7 @@
add_fingerprint(user) add_fingerprint(user)
return 1 return 1
playsound(src, W.usesound, 50, 1) playsound(src, W.usesound, 50, 1)
user << "<span class='notice'>You begin to unfasten \the [src]...</span>" to_chat(user, "<span class='notice'>You begin to unfasten \the [src]...</span>")
if (do_after(user, 40 * W.toolspeed)) if (do_after(user, 40 * W.toolspeed))
user.visible_message( \ user.visible_message( \
"<span class='notice'>\The [user] unfastens \the [src].</span>", \ "<span class='notice'>\The [user] unfastens \the [src].</span>", \
@@ -151,7 +151,7 @@
return return
if(!src.allowed(user)) if(!src.allowed(user))
user << "<span class='warning'>Access denied.</span>" to_chat(user, "<span class='warning'>Access denied.</span>")
return return
var/dat var/dat
@@ -247,9 +247,7 @@ obj/machinery/atmospherics/trinary/atmos_filter/m_filter/init_dir()
if(WEST) if(WEST)
initialize_directions = WEST|SOUTH|EAST initialize_directions = WEST|SOUTH|EAST
/obj/machinery/atmospherics/trinary/atmos_filter/m_filter/initialize() /obj/machinery/atmospherics/trinary/atmos_filter/m_filter/atmos_init()
set_frequency(frequency)
if(node1 && node2 && node3) return if(node1 && node2 && node3) return
var/node1_connect = turn(dir, -180) var/node1_connect = turn(dir, -180)

View File

@@ -111,7 +111,7 @@
add_fingerprint(user) add_fingerprint(user)
return 1 return 1
playsound(src, W.usesound, 50, 1) playsound(src, W.usesound, 50, 1)
user << "<span class='notice'>You begin to unfasten \the [src]...</span>" to_chat(user, "<span class='notice'>You begin to unfasten \the [src]...</span>")
if (do_after(user, 40 * W.toolspeed)) if (do_after(user, 40 * W.toolspeed))
user.visible_message( \ user.visible_message( \
"<span class='notice'>\The [user] unfastens \the [src].</span>", \ "<span class='notice'>\The [user] unfastens \the [src].</span>", \
@@ -125,7 +125,7 @@
return return
src.add_fingerprint(usr) src.add_fingerprint(usr)
if(!src.allowed(user)) if(!src.allowed(user))
user << "<span class='warning'>Access denied.</span>" to_chat(user, "<span class='warning'>Access denied.</span>")
return return
usr.set_machine(src) usr.set_machine(src)
var/dat = {"<b>Power: </b><a href='?src=\ref[src];power=1'>[use_power?"On":"Off"]</a><br> var/dat = {"<b>Power: </b><a href='?src=\ref[src];power=1'>[use_power?"On":"Off"]</a><br>
@@ -192,7 +192,7 @@ obj/machinery/atmospherics/trinary/mixer/t_mixer/init_dir()
if(WEST) if(WEST)
initialize_directions = WEST|NORTH|SOUTH initialize_directions = WEST|NORTH|SOUTH
obj/machinery/atmospherics/trinary/mixer/t_mixer/initialize() obj/machinery/atmospherics/trinary/mixer/t_mixer/atmos_init()
..() ..()
if(node1 && node2 && node3) return if(node1 && node2 && node3) return
@@ -237,7 +237,7 @@ obj/machinery/atmospherics/trinary/mixer/m_mixer/init_dir()
if(WEST) if(WEST)
initialize_directions = WEST|SOUTH|EAST initialize_directions = WEST|SOUTH|EAST
obj/machinery/atmospherics/trinary/mixer/m_mixer/initialize() obj/machinery/atmospherics/trinary/mixer/m_mixer/atmos_init()
..() ..()
if(node1 && node2 && node3) return if(node1 && node2 && node3) return

View File

@@ -15,7 +15,6 @@
/obj/machinery/atmospherics/trinary/New() /obj/machinery/atmospherics/trinary/New()
..() ..()
init_dir()
air1 = new air1 = new
air2 = new air2 = new
@@ -71,31 +70,26 @@
node2 = null node2 = null
node3 = null node3 = null
/obj/machinery/atmospherics/trinary/initialize() /obj/machinery/atmospherics/trinary/atmos_init()
if(node1 && node2 && node3) if(node1 && node2 && node3)
return return
init_dir()
var/node1_connect = turn(dir, -180) var/node1_connect = turn(dir, -180)
var/node2_connect = turn(dir, -90) var/node2_connect = turn(dir, -90)
var/node3_connect = dir var/node3_connect = dir
for(var/obj/machinery/atmospherics/target in get_step(src,node1_connect)) for(var/obj/machinery/atmospherics/target in get_step(src,node1_connect))
target.init_dir()
if(target.initialize_directions & get_dir(target,src)) if(target.initialize_directions & get_dir(target,src))
if (check_connect_types(target,src)) if (check_connect_types(target,src))
node1 = target node1 = target
break break
for(var/obj/machinery/atmospherics/target in get_step(src,node2_connect)) for(var/obj/machinery/atmospherics/target in get_step(src,node2_connect))
target.init_dir()
if(target.initialize_directions & get_dir(target,src)) if(target.initialize_directions & get_dir(target,src))
if (check_connect_types(target,src)) if (check_connect_types(target,src))
node2 = target node2 = target
break break
for(var/obj/machinery/atmospherics/target in get_step(src,node3_connect)) for(var/obj/machinery/atmospherics/target in get_step(src,node3_connect))
target.init_dir()
if(target.initialize_directions & get_dir(target,src)) if(target.initialize_directions & get_dir(target,src))
if (check_connect_types(target,src)) if (check_connect_types(target,src))
node3 = target node3 = target

View File

@@ -46,10 +46,6 @@
/obj/machinery/atmospherics/tvalve/hide(var/i) /obj/machinery/atmospherics/tvalve/hide(var/i)
update_underlays() update_underlays()
/obj/machinery/atmospherics/tvalve/New()
init_dir()
..()
/obj/machinery/atmospherics/tvalve/init_dir() /obj/machinery/atmospherics/tvalve/init_dir()
switch(dir) switch(dir)
if(NORTH) if(NORTH)
@@ -183,31 +179,26 @@
return return
/obj/machinery/atmospherics/tvalve/initialize() /obj/machinery/atmospherics/tvalve/atmos_init()
var/node1_dir var/node1_dir
var/node2_dir var/node2_dir
var/node3_dir var/node3_dir
init_dir()
node1_dir = turn(dir, 180) node1_dir = turn(dir, 180)
node2_dir = turn(dir, -90) node2_dir = turn(dir, -90)
node3_dir = dir node3_dir = dir
for(var/obj/machinery/atmospherics/target in get_step(src,node1_dir)) for(var/obj/machinery/atmospherics/target in get_step(src,node1_dir))
target.init_dir()
if(target.initialize_directions & get_dir(target,src)) if(target.initialize_directions & get_dir(target,src))
if (check_connect_types(target,src)) if (check_connect_types(target,src))
node1 = target node1 = target
break break
for(var/obj/machinery/atmospherics/target in get_step(src,node2_dir)) for(var/obj/machinery/atmospherics/target in get_step(src,node2_dir))
target.init_dir()
if(target.initialize_directions & get_dir(target,src)) if(target.initialize_directions & get_dir(target,src))
if (check_connect_types(target,src)) if (check_connect_types(target,src))
node2 = target node2 = target
break break
for(var/obj/machinery/atmospherics/target in get_step(src,node3_dir)) for(var/obj/machinery/atmospherics/target in get_step(src,node3_dir))
target.init_dir()
if(target.initialize_directions & get_dir(target,src)) if(target.initialize_directions & get_dir(target,src))
if (check_connect_types(target,src)) if (check_connect_types(target,src))
node3 = target node3 = target
@@ -308,7 +299,7 @@
if(!powered()) if(!powered())
return return
if(!src.allowed(user)) if(!src.allowed(user))
user << "<span class='warning'>Access denied.</span>" to_chat(user, "<span class='warning'>Access denied.</span>")
return return
..() ..()
@@ -350,14 +341,14 @@
if (!istype(W, /obj/item/weapon/wrench)) if (!istype(W, /obj/item/weapon/wrench))
return ..() return ..()
if (istype(src, /obj/machinery/atmospherics/tvalve/digital)) if (istype(src, /obj/machinery/atmospherics/tvalve/digital))
user << "<span class='warning'>You cannot unwrench \the [src], it's too complicated.</span>" to_chat(user, "<span class='warning'>You cannot unwrench \the [src], it's too complicated.</span>")
return 1 return 1
if(!can_unwrench()) if(!can_unwrench())
to_chat(user, "<span class='warnng'>You cannot unwrench \the [src], it too exerted due to internal pressure.</span>") to_chat(user, "<span class='warnng'>You cannot unwrench \the [src], it too exerted due to internal pressure.</span>")
add_fingerprint(user) add_fingerprint(user)
return 1 return 1
playsound(src, W.usesound, 50, 1) playsound(src, W.usesound, 50, 1)
user << "<span class='notice'>You begin to unfasten \the [src]...</span>" to_chat(user, "<span class='notice'>You begin to unfasten \the [src]...</span>")
if (do_after(user, 40 * W.toolspeed)) if (do_after(user, 40 * W.toolspeed))
user.visible_message( \ user.visible_message( \
"<span class='notice'>\The [user] unfastens \the [src].</span>", \ "<span class='notice'>\The [user] unfastens \the [src].</span>", \
@@ -384,7 +375,7 @@
if(WEST) if(WEST)
initialize_directions = EAST|WEST|SOUTH initialize_directions = EAST|WEST|SOUTH
/obj/machinery/atmospherics/tvalve/mirrored/initialize() /obj/machinery/atmospherics/tvalve/mirrored/atmos_init()
var/node1_dir var/node1_dir
var/node2_dir var/node2_dir
var/node3_dir var/node3_dir
@@ -446,7 +437,7 @@
if(!powered()) if(!powered())
return return
if(!src.allowed(user)) if(!src.allowed(user))
user << "<span class='warning'>Access denied.</span>" to_chat(user, "<span class='warning'>Access denied.</span>")
return return
..() ..()

View File

@@ -23,7 +23,6 @@
/obj/machinery/atmospherics/unary/freezer/New() /obj/machinery/atmospherics/unary/freezer/New()
..() ..()
initialize_directions = dir
component_parts = list() component_parts = list()
component_parts += new /obj/item/weapon/stock_parts/matter_bin(src) component_parts += new /obj/item/weapon/stock_parts/matter_bin(src)
component_parts += new /obj/item/weapon/stock_parts/capacitor(src) component_parts += new /obj/item/weapon/stock_parts/capacitor(src)
@@ -32,7 +31,7 @@
component_parts += new /obj/item/stack/cable_coil(src, 2) component_parts += new /obj/item/stack/cable_coil(src, 2)
RefreshParts() RefreshParts()
/obj/machinery/atmospherics/unary/freezer/initialize() /obj/machinery/atmospherics/unary/freezer/atmos_init()
if(node) if(node)
return return

View File

@@ -18,7 +18,7 @@
return return
initialize() atmos_init()
if(!partner) if(!partner)
var/partner_connect = turn(dir,180) var/partner_connect = turn(dir,180)
@@ -70,14 +70,14 @@
return ..() return ..()
var/turf/T = src.loc var/turf/T = src.loc
if (level==1 && isturf(T) && !T.is_plating()) if (level==1 && isturf(T) && !T.is_plating())
user << "<span class='warning'>You must remove the plating first.</span>" to_chat(user, "<span class='warning'>You must remove the plating first.</span>")
return 1 return 1
if (!can_unwrench()) if (!can_unwrench())
user << "<span class='warning'>You cannot unwrench \the [src], it is too exerted due to internal pressure.</span>" to_chat(user, "<span class='warning'>You cannot unwrench \the [src], it is too exerted due to internal pressure.</span>")
add_fingerprint(user) add_fingerprint(user)
return 1 return 1
playsound(src, W.usesound, 50, 1) playsound(src, W.usesound, 50, 1)
user << "<span class='notice'>You begin to unfasten \the [src]...</span>" to_chat(user, "<span class='notice'>You begin to unfasten \the [src]...</span>")
if (do_after(user, 40 * W.toolspeed)) if (do_after(user, 40 * W.toolspeed))
user.visible_message( \ user.visible_message( \
"<span class='notice'>\The [user] unfastens \the [src].</span>", \ "<span class='notice'>\The [user] unfastens \the [src].</span>", \

View File

@@ -23,7 +23,6 @@
/obj/machinery/atmospherics/unary/heater/New() /obj/machinery/atmospherics/unary/heater/New()
..() ..()
initialize_directions = dir
component_parts = list() component_parts = list()
component_parts += new /obj/item/weapon/stock_parts/matter_bin(src) component_parts += new /obj/item/weapon/stock_parts/matter_bin(src)
component_parts += new /obj/item/weapon/stock_parts/capacitor(src) component_parts += new /obj/item/weapon/stock_parts/capacitor(src)
@@ -32,7 +31,7 @@
RefreshParts() RefreshParts()
/obj/machinery/atmospherics/unary/heater/initialize() /obj/machinery/atmospherics/unary/heater/atmos_init()
if(node) if(node)
return return

View File

@@ -13,7 +13,6 @@
/obj/machinery/atmospherics/unary/New() /obj/machinery/atmospherics/unary/New()
..() ..()
init_dir()
air_contents = new air_contents = new
air_contents.volume = 200 air_contents.volume = 200
@@ -42,16 +41,13 @@
node = null node = null
/obj/machinery/atmospherics/unary/initialize() /obj/machinery/atmospherics/unary/atmos_init()
if(node) if(node)
return return
init_dir()
var/node_connect = dir var/node_connect = dir
for(var/obj/machinery/atmospherics/target in get_step(src,node_connect)) for(var/obj/machinery/atmospherics/target in get_step(src,node_connect))
target.init_dir()
if(target.initialize_directions & get_dir(target,src)) if(target.initialize_directions & get_dir(target,src))
if (check_connect_types(target,src)) if (check_connect_types(target,src))
node = target node = target

View File

@@ -357,7 +357,7 @@
if(istype(W, /obj/item/weapon/weldingtool)) if(istype(W, /obj/item/weapon/weldingtool))
var/obj/item/weapon/weldingtool/WT = W var/obj/item/weapon/weldingtool/WT = W
if (WT.remove_fuel(0,user)) if (WT.remove_fuel(0,user))
user << "<span class='notice'>Now welding the vent.</span>" to_chat(user, "<span class='notice'>Now welding the vent.</span>")
if(do_after(user, 20 * WT.toolspeed)) if(do_after(user, 20 * WT.toolspeed))
if(!src || !WT.isOn()) return if(!src || !WT.isOn()) return
playsound(src.loc, WT.usesound, 50, 1) playsound(src.loc, WT.usesound, 50, 1)
@@ -370,9 +370,9 @@
welded = 0 welded = 0
update_icon() update_icon()
else else
user << "<span class='notice'>The welding tool needs to be on to start this task.</span>" to_chat(user, "<span class='notice'>The welding tool needs to be on to start this task.</span>")
else else
user << "<span class='warning'>You need more welding fuel to complete this task.</span>" to_chat(user, "<span class='warning'>You need more welding fuel to complete this task.</span>")
return 1 return 1
else else
..() ..()
@@ -395,18 +395,18 @@
if (!istype(W, /obj/item/weapon/wrench)) if (!istype(W, /obj/item/weapon/wrench))
return ..() return ..()
if (!(stat & NOPOWER) && use_power) if (!(stat & NOPOWER) && use_power)
user << "<span class='warning'>You cannot unwrench \the [src], turn it off first.</span>" to_chat(user, "<span class='warning'>You cannot unwrench \the [src], turn it off first.</span>")
return 1 return 1
var/turf/T = src.loc var/turf/T = src.loc
if (node && node.level==1 && isturf(T) && !T.is_plating()) if (node && node.level==1 && isturf(T) && !T.is_plating())
user << "<span class='warning'>You must remove the plating first.</span>" to_chat(user, "<span class='warning'>You must remove the plating first.</span>")
return 1 return 1
if(!can_unwrench()) if(!can_unwrench())
to_chat(user, "<span class='warning'>You cannot unwrench \the [src], it is too exerted due to internal pressure.</span>") to_chat(user, "<span class='warning'>You cannot unwrench \the [src], it is too exerted due to internal pressure.</span>")
add_fingerprint(user) add_fingerprint(user)
return 1 return 1
playsound(src, W.usesound, 50, 1) playsound(src, W.usesound, 50, 1)
user << "<span class='notice'>You begin to unfasten \the [src]...</span>" to_chat(user, "<span class='notice'>You begin to unfasten \the [src]...</span>")
if (do_after(user, 40 * W.toolspeed)) if (do_after(user, 40 * W.toolspeed))
user.visible_message( \ user.visible_message( \
"<span class='notice'>\The [user] unfastens \the [src].</span>", \ "<span class='notice'>\The [user] unfastens \the [src].</span>", \

View File

@@ -266,18 +266,18 @@
if (!istype(W, /obj/item/weapon/wrench)) if (!istype(W, /obj/item/weapon/wrench))
return ..() return ..()
if (!(stat & NOPOWER) && use_power) if (!(stat & NOPOWER) && use_power)
user << "<span class='warning'>You cannot unwrench \the [src], turn it off first.</span>" to_chat(user, "<span class='warning'>You cannot unwrench \the [src], turn it off first.</span>")
return 1 return 1
var/turf/T = src.loc var/turf/T = src.loc
if (node && node.level==1 && isturf(T) && !T.is_plating()) if (node && node.level==1 && isturf(T) && !T.is_plating())
user << "<span class='warning'>You must remove the plating first.</span>" to_chat(user, "<span class='warning'>You must remove the plating first.</span>")
return 1 return 1
if(!can_unwrench()) if(!can_unwrench())
to_chat(user, "<span class='warning'>You cannot unwrench \the [src], it is too exerted due to internal pressure.</span>") to_chat(user, "<span class='warning'>You cannot unwrench \the [src], it is too exerted due to internal pressure.</span>")
add_fingerprint(user) add_fingerprint(user)
return 1 return 1
playsound(src, W.usesound, 50, 1) playsound(src, W.usesound, 50, 1)
user << "<span class='notice'>You begin to unfasten \the [src]...</span>" to_chat(user, "<span class='notice'>You begin to unfasten \the [src]...</span>")
if (do_after(user, 40 * W.toolspeed)) if (do_after(user, 40 * W.toolspeed))
user.visible_message( \ user.visible_message( \
"<span class='notice'>\The [user] unfastens \the [src].</span>", \ "<span class='notice'>\The [user] unfastens \the [src].</span>", \

View File

@@ -140,8 +140,7 @@
return return
/obj/machinery/atmospherics/valve/initialize() /obj/machinery/atmospherics/valve/atmos_init()
init_dir()
normalize_dir() normalize_dir()
var/node1_dir var/node1_dir
@@ -155,13 +154,11 @@
node2_dir = direction node2_dir = direction
for(var/obj/machinery/atmospherics/target in get_step(src,node1_dir)) for(var/obj/machinery/atmospherics/target in get_step(src,node1_dir))
target.init_dir()
if(target.initialize_directions & get_dir(target,src)) if(target.initialize_directions & get_dir(target,src))
if (check_connect_types(target,src)) if (check_connect_types(target,src))
node1 = target node1 = target
break break
for(var/obj/machinery/atmospherics/target in get_step(src,node2_dir)) for(var/obj/machinery/atmospherics/target in get_step(src,node2_dir))
target.init_dir()
if(target.initialize_directions & get_dir(target,src)) if(target.initialize_directions & get_dir(target,src))
if (check_connect_types(target,src)) if (check_connect_types(target,src))
node2 = target node2 = target
@@ -239,7 +236,7 @@
if(!powered()) if(!powered())
return return
if(!src.allowed(user)) if(!src.allowed(user))
user << "<span class='warning'>Access denied.</span>" to_chat(user, "<span class='warning'>Access denied.</span>")
return return
..() ..()
@@ -292,14 +289,14 @@
if (!istype(W, /obj/item/weapon/wrench)) if (!istype(W, /obj/item/weapon/wrench))
return ..() return ..()
if (istype(src, /obj/machinery/atmospherics/valve/digital) && !src.allowed(user)) if (istype(src, /obj/machinery/atmospherics/valve/digital) && !src.allowed(user))
user << "<span class='warning'>Access denied.</span>" to_chat(user, "<span class='warning'>Access denied.</span>")
return 1 return 1
if(!can_unwrench()) if(!can_unwrench())
to_chat(user, "<span class='warning'>You cannot unwrench \the [src], it is too exerted due to internal pressure.</span>") to_chat(user, "<span class='warning'>You cannot unwrench \the [src], it is too exerted due to internal pressure.</span>")
add_fingerprint(user) add_fingerprint(user)
return 1 return 1
playsound(src, W.usesound, 50, 1) playsound(src, W.usesound, 50, 1)
user << "<span class='notice'>You begin to unfasten \the [src]...</span>" to_chat(user, "<span class='notice'>You begin to unfasten \the [src]...</span>")
if (do_after(user, 40 * W.toolspeed)) if (do_after(user, 40 * W.toolspeed))
user.visible_message( \ user.visible_message( \
"<span class='notice'>\The [user] unfastens \the [src].</span>", \ "<span class='notice'>\The [user] unfastens \the [src].</span>", \

View File

@@ -19,7 +19,6 @@
// BubbleWrap // BubbleWrap
/obj/machinery/atmospherics/pipe/simple/heat_exchanging/New() /obj/machinery/atmospherics/pipe/simple/heat_exchanging/New()
..() ..()
init_dir()
// BubbleWrap END // BubbleWrap END
color = "#404040" //we don't make use of the fancy overlay system for colours, use this to set the default. color = "#404040" //we don't make use of the fancy overlay system for colours, use this to set the default.
@@ -28,7 +27,6 @@
initialize_directions_he = initialize_directions // The auto-detection from /pipe is good enough for a simple HE pipe initialize_directions_he = initialize_directions // The auto-detection from /pipe is good enough for a simple HE pipe
/obj/machinery/atmospherics/pipe/simple/heat_exchanging/initialize() /obj/machinery/atmospherics/pipe/simple/heat_exchanging/initialize()
init_dir()
normalize_dir() normalize_dir()
var/node1_dir var/node1_dir
var/node2_dir var/node2_dir
@@ -41,12 +39,10 @@
node2_dir = direction node2_dir = direction
for(var/obj/machinery/atmospherics/pipe/simple/heat_exchanging/target in get_step(src,node1_dir)) for(var/obj/machinery/atmospherics/pipe/simple/heat_exchanging/target in get_step(src,node1_dir))
target.init_dir()
if(target.initialize_directions_he & get_dir(target,src)) if(target.initialize_directions_he & get_dir(target,src))
node1 = target node1 = target
break break
for(var/obj/machinery/atmospherics/pipe/simple/heat_exchanging/target in get_step(src,node2_dir)) for(var/obj/machinery/atmospherics/pipe/simple/heat_exchanging/target in get_step(src,node2_dir))
target.init_dir()
if(target.initialize_directions_he & get_dir(target,src)) if(target.initialize_directions_he & get_dir(target,src))
node2 = target node2 = target
break break
@@ -137,14 +133,11 @@
/obj/machinery/atmospherics/pipe/simple/heat_exchanging/junction/initialize() /obj/machinery/atmospherics/pipe/simple/heat_exchanging/junction/initialize()
init_dir()
for(var/obj/machinery/atmospherics/target in get_step(src,initialize_directions)) for(var/obj/machinery/atmospherics/target in get_step(src,initialize_directions))
target.init_dir()
if(target.initialize_directions & get_dir(target,src)) if(target.initialize_directions & get_dir(target,src))
node1 = target node1 = target
break break
for(var/obj/machinery/atmospherics/pipe/simple/heat_exchanging/target in get_step(src,initialize_directions_he)) for(var/obj/machinery/atmospherics/pipe/simple/heat_exchanging/target in get_step(src,initialize_directions_he))
target.init_dir()
if(target.initialize_directions_he & get_dir(target,src)) if(target.initialize_directions_he & get_dir(target,src))
node2 = target node2 = target
break break

View File

@@ -101,7 +101,7 @@ obj/machinery/atmospherics/mains_pipe
disconnect() disconnect()
..() ..()
initialize() atmos_init()
for(var/i = 1 to nodes.len) for(var/i = 1 to nodes.len)
var/obj/machinery/atmospherics/mains_pipe/node = nodes[i] var/obj/machinery/atmospherics/mains_pipe/node = nodes[i]
if(node) if(node)
@@ -155,7 +155,7 @@ obj/machinery/atmospherics/mains_pipe/simple
var/have_node2 = nodes[2]?1:0 var/have_node2 = nodes[2]?1:0
icon_state = "exposed[have_node1][have_node2][invisibility ? "-f" : "" ]" icon_state = "exposed[have_node1][have_node2][invisibility ? "-f" : "" ]"
initialize() atmos_init()
normalize_dir() normalize_dir()
var/node1_dir var/node1_dir
var/node2_dir var/node2_dir
@@ -203,7 +203,7 @@ obj/machinery/atmospherics/mains_pipe/manifold
..() ..()
initialize_mains_directions = (NORTH|SOUTH|EAST|WEST) & ~dir initialize_mains_directions = (NORTH|SOUTH|EAST|WEST) & ~dir
initialize() atmos_init()
var/connect_directions = initialize_mains_directions var/connect_directions = initialize_mains_directions
for(var/direction in cardinal) for(var/direction in cardinal)
@@ -267,7 +267,7 @@ obj/machinery/atmospherics/mains_pipe/manifold4w
nodes.len = 4 nodes.len = 4
..() ..()
initialize() atmos_init()
for(var/obj/machinery/atmospherics/mains_pipe/target in get_step(src,NORTH)) for(var/obj/machinery/atmospherics/mains_pipe/target in get_step(src,NORTH))
if(target.initialize_mains_directions & get_dir(target,src)) if(target.initialize_mains_directions & get_dir(target,src))
nodes[1] = target nodes[1] = target
@@ -319,7 +319,7 @@ obj/machinery/atmospherics/mains_pipe/split
initialize_mains_directions = turn(dir, 90) | turn(dir, -90) initialize_mains_directions = turn(dir, 90) | turn(dir, -90)
initialize_directions = dir // actually have a normal connection too initialize_directions = dir // actually have a normal connection too
initialize() atmos_init()
var/node1_dir var/node1_dir
var/node2_dir var/node2_dir
var/node3_dir var/node3_dir
@@ -420,7 +420,7 @@ obj/machinery/atmospherics/mains_pipe/split3
initialize_mains_directions = dir initialize_mains_directions = dir
initialize_directions = cardinal & ~dir // actually have a normal connection too initialize_directions = cardinal & ~dir // actually have a normal connection too
initialize() atmos_init()
var/node1_dir var/node1_dir
var/supply_node_dir var/supply_node_dir
var/scrubbers_node_dir var/scrubbers_node_dir
@@ -514,7 +514,7 @@ obj/machinery/atmospherics/mains_pipe/cap
update_icon() update_icon()
icon_state = "cap[invisibility ? "-f" : ""]" icon_state = "cap[invisibility ? "-f" : ""]"
initialize() atmos_init()
for(var/obj/machinery/atmospherics/mains_pipe/target in get_step(src,dir)) for(var/obj/machinery/atmospherics/mains_pipe/target in get_step(src,dir))
if(target.initialize_mains_directions & get_dir(target,src)) if(target.initialize_mains_directions & get_dir(target,src))
nodes[1] = target nodes[1] = target
@@ -647,7 +647,7 @@ obj/machinery/atmospherics/mains_pipe/valve
attack_hand(mob/user as mob) attack_hand(mob/user as mob)
if(!src.allowed(user)) if(!src.allowed(user))
user << "<span class='warning'>Access denied.</span>" to_chat(user, "<span class='warning'>Access denied.</span>")
return return
..() ..()

View File

@@ -34,10 +34,6 @@
return 1 return 1
// This is used to set up what directions pipes will connect to. Called inside New(), initialize(), and when pipes look at another pipe, incase they didn't get to initialize() yet.
/obj/machinery/atmospherics/proc/init_dir()
return
/obj/machinery/atmospherics/pipe/return_air() /obj/machinery/atmospherics/pipe/return_air()
if(!parent) if(!parent)
parent = new /datum/pipeline() parent = new /datum/pipeline()
@@ -84,14 +80,14 @@
return ..() return ..()
var/turf/T = src.loc var/turf/T = src.loc
if (level==1 && isturf(T) && !T.is_plating()) if (level==1 && isturf(T) && !T.is_plating())
user << "<span class='warning'>You must remove the plating first.</span>" to_chat(user, "<span class='warning'>You must remove the plating first.</span>")
return 1 return 1
if(!can_unwrench()) if(!can_unwrench())
to_chat(user, "<span class='warning'>You cannot unwrench \the [src], it is too exerted due to internal pressure.</span>") to_chat(user, "<span class='warning'>You cannot unwrench \the [src], it is too exerted due to internal pressure.</span>")
add_fingerprint(user) add_fingerprint(user)
return 1 return 1
playsound(src, W.usesound, 50, 1) playsound(src, W.usesound, 50, 1)
user << "<span class='notice'>You begin to unfasten \the [src]...</span>" to_chat(user, "<span class='notice'>You begin to unfasten \the [src]...</span>")
if (do_after(user, 40 * W.toolspeed)) if (do_after(user, 40 * W.toolspeed))
user.visible_message( \ user.visible_message( \
"<span class='notice'>\The [user] unfastens \the [src].</span>", \ "<span class='notice'>\The [user] unfastens \the [src].</span>", \
@@ -170,10 +166,6 @@
icon = null icon = null
alpha = 255 alpha = 255
init_dir()
/obj/machinery/atmospherics/pipe/simple/hide(var/i) /obj/machinery/atmospherics/pipe/simple/hide(var/i)
if(istype(loc, /turf/simulated)) if(istype(loc, /turf/simulated))
invisibility = i ? 101 : 0 invisibility = i ? 101 : 0
@@ -274,8 +266,7 @@
/obj/machinery/atmospherics/pipe/simple/update_underlays() /obj/machinery/atmospherics/pipe/simple/update_underlays()
return return
/obj/machinery/atmospherics/pipe/simple/initialize() /obj/machinery/atmospherics/pipe/simple/atmos_init()
init_dir()
normalize_dir() normalize_dir()
var/node1_dir var/node1_dir
var/node2_dir var/node2_dir
@@ -288,13 +279,11 @@
node2_dir = direction node2_dir = direction
for(var/obj/machinery/atmospherics/target in get_step(src,node1_dir)) for(var/obj/machinery/atmospherics/target in get_step(src,node1_dir))
target.init_dir()
if(target.initialize_directions & get_dir(target,src)) if(target.initialize_directions & get_dir(target,src))
if (check_connect_types(target,src)) if (check_connect_types(target,src))
node1 = target node1 = target
break break
for(var/obj/machinery/atmospherics/target in get_step(src,node2_dir)) for(var/obj/machinery/atmospherics/target in get_step(src,node2_dir))
target.init_dir()
if(target.initialize_directions & get_dir(target,src)) if(target.initialize_directions & get_dir(target,src))
if (check_connect_types(target,src)) if (check_connect_types(target,src))
node2 = target node2 = target
@@ -444,8 +433,6 @@
alpha = 255 alpha = 255
icon = null icon = null
init_dir()
/obj/machinery/atmospherics/pipe/manifold/init_dir() /obj/machinery/atmospherics/pipe/manifold/init_dir()
switch(dir) switch(dir)
if(NORTH) if(NORTH)
@@ -554,14 +541,12 @@
..() ..()
update_icon() update_icon()
/obj/machinery/atmospherics/pipe/manifold/initialize() /obj/machinery/atmospherics/pipe/manifold/atmos_init()
init_dir()
var/connect_directions = (NORTH|SOUTH|EAST|WEST)&(~dir) var/connect_directions = (NORTH|SOUTH|EAST|WEST)&(~dir)
for(var/direction in cardinal) for(var/direction in cardinal)
if(direction&connect_directions) if(direction&connect_directions)
for(var/obj/machinery/atmospherics/target in get_step(src,direction)) for(var/obj/machinery/atmospherics/target in get_step(src,direction))
target.init_dir()
if(target.initialize_directions & get_dir(target,src)) if(target.initialize_directions & get_dir(target,src))
if (check_connect_types(target,src)) if (check_connect_types(target,src))
node1 = target node1 = target
@@ -574,7 +559,6 @@
for(var/direction in cardinal) for(var/direction in cardinal)
if(direction&connect_directions) if(direction&connect_directions)
for(var/obj/machinery/atmospherics/target in get_step(src,direction)) for(var/obj/machinery/atmospherics/target in get_step(src,direction))
target.init_dir()
if(target.initialize_directions & get_dir(target,src)) if(target.initialize_directions & get_dir(target,src))
if (check_connect_types(target,src)) if (check_connect_types(target,src))
node2 = target node2 = target
@@ -587,7 +571,6 @@
for(var/direction in cardinal) for(var/direction in cardinal)
if(direction&connect_directions) if(direction&connect_directions)
for(var/obj/machinery/atmospherics/target in get_step(src,direction)) for(var/obj/machinery/atmospherics/target in get_step(src,direction))
target.init_dir()
if(target.initialize_directions & get_dir(target,src)) if(target.initialize_directions & get_dir(target,src))
if (check_connect_types(target,src)) if (check_connect_types(target,src))
node3 = target node3 = target
@@ -835,31 +818,27 @@
invisibility = i ? 101 : 0 invisibility = i ? 101 : 0
update_icon() update_icon()
/obj/machinery/atmospherics/pipe/manifold4w/initialize() /obj/machinery/atmospherics/pipe/manifold4w/atmos_init()
for(var/obj/machinery/atmospherics/target in get_step(src,1)) for(var/obj/machinery/atmospherics/target in get_step(src,1))
target.init_dir()
if(target.initialize_directions & 2) if(target.initialize_directions & 2)
if (check_connect_types(target,src)) if (check_connect_types(target,src))
node1 = target node1 = target
break break
for(var/obj/machinery/atmospherics/target in get_step(src,2)) for(var/obj/machinery/atmospherics/target in get_step(src,2))
target.init_dir()
if(target.initialize_directions & 1) if(target.initialize_directions & 1)
if (check_connect_types(target,src)) if (check_connect_types(target,src))
node2 = target node2 = target
break break
for(var/obj/machinery/atmospherics/target in get_step(src,4)) for(var/obj/machinery/atmospherics/target in get_step(src,4))
target.init_dir()
if(target.initialize_directions & 8) if(target.initialize_directions & 8)
if (check_connect_types(target,src)) if (check_connect_types(target,src))
node3 = target node3 = target
break break
for(var/obj/machinery/atmospherics/target in get_step(src,8)) for(var/obj/machinery/atmospherics/target in get_step(src,8))
target.init_dir()
if(target.initialize_directions & 4) if(target.initialize_directions & 4)
if (check_connect_types(target,src)) if (check_connect_types(target,src))
node4 = target node4 = target
@@ -975,10 +954,6 @@
var/obj/machinery/atmospherics/node var/obj/machinery/atmospherics/node
/obj/machinery/atmospherics/pipe/cap/New()
..()
init_dir()
/obj/machinery/atmospherics/pipe/cap/init_dir() /obj/machinery/atmospherics/pipe/cap/init_dir()
initialize_directions = dir initialize_directions = dir
@@ -1027,10 +1002,8 @@
overlays.Cut() overlays.Cut()
overlays += icon_manager.get_atmos_icon("pipe", , pipe_color, "cap") overlays += icon_manager.get_atmos_icon("pipe", , pipe_color, "cap")
/obj/machinery/atmospherics/pipe/cap/initialize() /obj/machinery/atmospherics/pipe/cap/atmos_init()
init_dir()
for(var/obj/machinery/atmospherics/target in get_step(src, dir)) for(var/obj/machinery/atmospherics/target in get_step(src, dir))
target.init_dir()
if(target.initialize_directions & get_dir(target,src)) if(target.initialize_directions & get_dir(target,src))
if (check_connect_types(target,src)) if (check_connect_types(target,src))
node = target node = target
@@ -1106,7 +1079,6 @@
/obj/machinery/atmospherics/pipe/tank/New() /obj/machinery/atmospherics/pipe/tank/New()
icon_state = "air" icon_state = "air"
init_dir()
..() ..()
/obj/machinery/atmospherics/pipe/tank/init_dir() /obj/machinery/atmospherics/pipe/tank/init_dir()
@@ -1139,12 +1111,10 @@
/obj/machinery/atmospherics/pipe/tank/hide() /obj/machinery/atmospherics/pipe/tank/hide()
update_underlays() update_underlays()
/obj/machinery/atmospherics/pipe/tank/initialize() /obj/machinery/atmospherics/pipe/tank/atmos_init()
init_dir()
var/connect_direction = dir var/connect_direction = dir
for(var/obj/machinery/atmospherics/target in get_step(src,connect_direction)) for(var/obj/machinery/atmospherics/target in get_step(src,connect_direction))
target.init_dir()
if(target.initialize_directions & get_dir(target,src)) if(target.initialize_directions & get_dir(target,src))
if (check_connect_types(target,src)) if (check_connect_types(target,src))
node1 = target node1 = target
@@ -1272,10 +1242,6 @@
var/build_killswitch = 1 var/build_killswitch = 1
/obj/machinery/atmospherics/pipe/vent/New()
init_dir()
..()
/obj/machinery/atmospherics/pipe/vent/init_dir() /obj/machinery/atmospherics/pipe/vent/init_dir()
initialize_directions = dir initialize_directions = dir
@@ -1313,12 +1279,10 @@
else else
icon_state = "exposed" icon_state = "exposed"
/obj/machinery/atmospherics/pipe/vent/initialize() /obj/machinery/atmospherics/pipe/vent/atmos_init()
init_dir()
var/connect_direction = dir var/connect_direction = dir
for(var/obj/machinery/atmospherics/target in get_step(src,connect_direction)) for(var/obj/machinery/atmospherics/target in get_step(src,connect_direction))
target.init_dir()
if(target.initialize_directions & get_dir(target,src)) if(target.initialize_directions & get_dir(target,src))
if (check_connect_types(target,src)) if (check_connect_types(target,src))
node1 = target node1 = target

View File

@@ -86,6 +86,11 @@ datum/controller/game_controller/proc/setup_objects()
CHECK_SLEEP_MASTER CHECK_SLEEP_MASTER
sleep(1) sleep(1)
admin_notice("<span class='danger'>Initializing atmos machinery connections.</span>", R_DEBUG)
for(var/obj/machinery/atmospherics/machine in machines)
machine.atmos_init()
CHECK_SLEEP_MASTER
admin_notice("<span class='danger'>Initializing pipe networks</span>", R_DEBUG) admin_notice("<span class='danger'>Initializing pipe networks</span>", R_DEBUG)
for(var/obj/machinery/atmospherics/machine in machines) for(var/obj/machinery/atmospherics/machine in machines)
machine.build_network() machine.build_network()

View File

@@ -25,6 +25,12 @@
//Detective Work, used for the duplicate data points kept in the scanners //Detective Work, used for the duplicate data points kept in the scanners
var/list/original_atom var/list/original_atom
//atom creation method that preloads variables at creation
/atom/New()
// Don't call ..() unless /datum/New() ever exists
if(use_preloader && (src.type == _preloader.target_path))//in case the instanciated atom is creating other atoms in New()
_preloader.load(src)
/atom/proc/reveal_blood() /atom/proc/reveal_blood()
return return

View File

@@ -491,16 +491,16 @@ Buildable meters
P.initialize_directions = pipe_dir P.initialize_directions = pipe_dir
var/turf/T = P.loc var/turf/T = P.loc
P.level = !T.is_plating() ? 2 : 1 P.level = !T.is_plating() ? 2 : 1
P.initialize() P.atmos_init()
if (QDELETED(P)) if (QDELETED(P))
usr << pipefailtext usr << pipefailtext
return 1 return 1
P.build_network() P.build_network()
if (P.node1) if (P.node1)
P.node1.initialize() P.node1.atmos_init()
P.node1.build_network() P.node1.build_network()
if (P.node2) if (P.node2)
P.node2.initialize() P.node2.atmos_init()
P.node2.build_network() P.node2.build_network()
if(PIPE_SUPPLY_STRAIGHT, PIPE_SUPPLY_BENT) if(PIPE_SUPPLY_STRAIGHT, PIPE_SUPPLY_BENT)
@@ -510,16 +510,16 @@ Buildable meters
P.initialize_directions = pipe_dir P.initialize_directions = pipe_dir
var/turf/T = P.loc var/turf/T = P.loc
P.level = !T.is_plating() ? 2 : 1 P.level = !T.is_plating() ? 2 : 1
P.initialize() P.atmos_init()
if (QDELETED(P)) if (QDELETED(P))
usr << pipefailtext usr << pipefailtext
return 1 return 1
P.build_network() P.build_network()
if (P.node1) if (P.node1)
P.node1.initialize() P.node1.atmos_init()
P.node1.build_network() P.node1.build_network()
if (P.node2) if (P.node2)
P.node2.initialize() P.node2.atmos_init()
P.node2.build_network() P.node2.build_network()
if(PIPE_SCRUBBERS_STRAIGHT, PIPE_SCRUBBERS_BENT) if(PIPE_SCRUBBERS_STRAIGHT, PIPE_SCRUBBERS_BENT)
@@ -529,16 +529,16 @@ Buildable meters
P.initialize_directions = pipe_dir P.initialize_directions = pipe_dir
var/turf/T = P.loc var/turf/T = P.loc
P.level = !T.is_plating() ? 2 : 1 P.level = !T.is_plating() ? 2 : 1
P.initialize() P.atmos_init()
if (QDELETED(P)) if (QDELETED(P))
usr << pipefailtext usr << pipefailtext
return 1 return 1
P.build_network() P.build_network()
if (P.node1) if (P.node1)
P.node1.initialize() P.node1.atmos_init()
P.node1.build_network() P.node1.build_network()
if (P.node2) if (P.node2)
P.node2.initialize() P.node2.atmos_init()
P.node2.build_network() P.node2.build_network()
if(PIPE_UNIVERSAL) if(PIPE_UNIVERSAL)
@@ -548,16 +548,16 @@ Buildable meters
P.initialize_directions = pipe_dir P.initialize_directions = pipe_dir
var/turf/T = P.loc var/turf/T = P.loc
P.level = !T.is_plating() ? 2 : 1 P.level = !T.is_plating() ? 2 : 1
P.initialize() P.atmos_init()
if (QDELETED(P)) if (QDELETED(P))
usr << pipefailtext usr << pipefailtext
return 1 return 1
P.build_network() P.build_network()
if (P.node1) if (P.node1)
P.node1.initialize() P.node1.atmos_init()
P.node1.build_network() P.node1.build_network()
if (P.node2) if (P.node2)
P.node2.initialize() P.node2.atmos_init()
P.node2.build_network() P.node2.build_network()
if(PIPE_HE_STRAIGHT, PIPE_HE_BENT) if(PIPE_HE_STRAIGHT, PIPE_HE_BENT)
@@ -565,16 +565,16 @@ Buildable meters
P.set_dir(src.dir) P.set_dir(src.dir)
P.initialize_directions = pipe_dir //this var it's used to know if the pipe is bent or not P.initialize_directions = pipe_dir //this var it's used to know if the pipe is bent or not
P.initialize_directions_he = pipe_dir P.initialize_directions_he = pipe_dir
P.initialize() P.atmos_init()
if (QDELETED(P)) if (QDELETED(P))
usr << pipefailtext usr << pipefailtext
return 1 return 1
P.build_network() P.build_network()
if (P.node1) if (P.node1)
P.node1.initialize() P.node1.atmos_init()
P.node1.build_network() P.node1.build_network()
if (P.node2) if (P.node2)
P.node2.initialize() P.node2.atmos_init()
P.node2.build_network() P.node2.build_network()
if(PIPE_CONNECTOR) // connector if(PIPE_CONNECTOR) // connector
@@ -585,10 +585,10 @@ Buildable meters
C.name = pipename C.name = pipename
var/turf/T = C.loc var/turf/T = C.loc
C.level = !T.is_plating() ? 2 : 1 C.level = !T.is_plating() ? 2 : 1
C.initialize() C.atmos_init()
C.build_network() C.build_network()
if (C.node) if (C.node)
C.node.initialize() C.node.atmos_init()
C.node.build_network() C.node.build_network()
@@ -600,19 +600,19 @@ Buildable meters
//M.New() //M.New()
var/turf/T = M.loc var/turf/T = M.loc
M.level = !T.is_plating() ? 2 : 1 M.level = !T.is_plating() ? 2 : 1
M.initialize() M.atmos_init()
if (QDELETED(M)) if (QDELETED(M))
usr << pipefailtext usr << pipefailtext
return 1 return 1
M.build_network() M.build_network()
if (M.node1) if (M.node1)
M.node1.initialize() M.node1.atmos_init()
M.node1.build_network() M.node1.build_network()
if (M.node2) if (M.node2)
M.node2.initialize() M.node2.atmos_init()
M.node2.build_network() M.node2.build_network()
if (M.node3) if (M.node3)
M.node3.initialize() M.node3.atmos_init()
M.node3.build_network() M.node3.build_network()
if(PIPE_SUPPLY_MANIFOLD) //manifold if(PIPE_SUPPLY_MANIFOLD) //manifold
@@ -623,19 +623,19 @@ Buildable meters
//M.New() //M.New()
var/turf/T = M.loc var/turf/T = M.loc
M.level = !T.is_plating() ? 2 : 1 M.level = !T.is_plating() ? 2 : 1
M.initialize() M.atmos_init()
if (!M) if (!M)
usr << "There's nothing to connect this manifold to! (with how the pipe code works, at least one end needs to be connected to something, otherwise the game deletes the segment)" usr << "There's nothing to connect this manifold to! (with how the pipe code works, at least one end needs to be connected to something, otherwise the game deletes the segment)"
return 1 return 1
M.build_network() M.build_network()
if (M.node1) if (M.node1)
M.node1.initialize() M.node1.atmos_init()
M.node1.build_network() M.node1.build_network()
if (M.node2) if (M.node2)
M.node2.initialize() M.node2.atmos_init()
M.node2.build_network() M.node2.build_network()
if (M.node3) if (M.node3)
M.node3.initialize() M.node3.atmos_init()
M.node3.build_network() M.node3.build_network()
if(PIPE_SCRUBBERS_MANIFOLD) //manifold if(PIPE_SCRUBBERS_MANIFOLD) //manifold
@@ -646,19 +646,20 @@ Buildable meters
//M.New() //M.New()
var/turf/T = M.loc var/turf/T = M.loc
M.level = !T.is_plating() ? 2 : 1 M.level = !T.is_plating() ? 2 : 1
M.initialize() M.atmos_init()
if (!M) if (!M)
usr << "There's nothing to connect this manifold to! (with how the pipe code works, at least one end needs to be connected to something, otherwise the game deletes the segment)" usr << "There's nothing to connect this manifold to! (with how the pipe code works, at least one end needs to be connected to something, otherwise the game deletes the segment)"
return 1 return 1
M.build_network() M.build_network()
if (M.node1) if (M.node1)
M.node1.initialize() M.node1.atmos_init()
M.node1.build_network() M.node1.build_network()
if (M.node2) if (M.node2)
M.node2.initialize() M.node2.atmos_init()
M.node2.build_network() M.node2.build_network()
if (M.node3) if (M.node3)
M.node3.initialize() M.node3.atmos_init()
M.node3.build_network()
M.node3.build_network() M.node3.build_network()
if(PIPE_MANIFOLD4W) //4-way manifold if(PIPE_MANIFOLD4W) //4-way manifold
@@ -669,22 +670,22 @@ Buildable meters
//M.New() //M.New()
var/turf/T = M.loc var/turf/T = M.loc
M.level = !T.is_plating() ? 2 : 1 M.level = !T.is_plating() ? 2 : 1
M.initialize() M.atmos_init()
if (QDELETED(M)) if (QDELETED(M))
usr << pipefailtext usr << pipefailtext
return 1 return 1
M.build_network() M.build_network()
if (M.node1) if (M.node1)
M.node1.initialize() M.node1.atmos_init()
M.node1.build_network() M.node1.build_network()
if (M.node2) if (M.node2)
M.node2.initialize() M.node2.atmos_init()
M.node2.build_network() M.node2.build_network()
if (M.node3) if (M.node3)
M.node3.initialize() M.node3.atmos_init()
M.node3.build_network() M.node3.build_network()
if (M.node4) if (M.node4)
M.node4.initialize() M.node4.atmos_init()
M.node4.build_network() M.node4.build_network()
if(PIPE_SUPPLY_MANIFOLD4W) //4-way manifold if(PIPE_SUPPLY_MANIFOLD4W) //4-way manifold
@@ -696,22 +697,22 @@ Buildable meters
//M.New() //M.New()
var/turf/T = M.loc var/turf/T = M.loc
M.level = !T.is_plating() ? 2 : 1 M.level = !T.is_plating() ? 2 : 1
M.initialize() M.atmos_init()
if (!M) if (!M)
usr << "There's nothing to connect this manifold to! (with how the pipe code works, at least one end needs to be connected to something, otherwise the game deletes the segment)" usr << "There's nothing to connect this manifold to! (with how the pipe code works, at least one end needs to be connected to something, otherwise the game deletes the segment)"
return 1 return 1
M.build_network() M.build_network()
if (M.node1) if (M.node1)
M.node1.initialize() M.node1.atmos_init()
M.node1.build_network() M.node1.build_network()
if (M.node2) if (M.node2)
M.node2.initialize() M.node2.atmos_init()
M.node2.build_network() M.node2.build_network()
if (M.node3) if (M.node3)
M.node3.initialize() M.node3.atmos_init()
M.node3.build_network() M.node3.build_network()
if (M.node4) if (M.node4)
M.node4.initialize() M.node4.atmos_init()
M.node4.build_network() M.node4.build_network()
if(PIPE_SCRUBBERS_MANIFOLD4W) //4-way manifold if(PIPE_SCRUBBERS_MANIFOLD4W) //4-way manifold
@@ -723,22 +724,22 @@ Buildable meters
//M.New() //M.New()
var/turf/T = M.loc var/turf/T = M.loc
M.level = !T.is_plating() ? 2 : 1 M.level = !T.is_plating() ? 2 : 1
M.initialize() M.atmos_init()
if (!M) if (!M)
usr << "There's nothing to connect this manifold to! (with how the pipe code works, at least one end needs to be connected to something, otherwise the game deletes the segment)" usr << "There's nothing to connect this manifold to! (with how the pipe code works, at least one end needs to be connected to something, otherwise the game deletes the segment)"
return 1 return 1
M.build_network() M.build_network()
if (M.node1) if (M.node1)
M.node1.initialize() M.node1.atmos_init()
M.node1.build_network() M.node1.build_network()
if (M.node2) if (M.node2)
M.node2.initialize() M.node2.atmos_init()
M.node2.build_network() M.node2.build_network()
if (M.node3) if (M.node3)
M.node3.initialize() M.node3.atmos_init()
M.node3.build_network() M.node3.build_network()
if (M.node4) if (M.node4)
M.node4.initialize() M.node4.atmos_init()
M.node4.build_network() M.node4.build_network()
if(PIPE_JUNCTION) if(PIPE_JUNCTION)
@@ -746,16 +747,16 @@ Buildable meters
P.set_dir(src.dir) P.set_dir(src.dir)
P.initialize_directions = src.get_pdir() P.initialize_directions = src.get_pdir()
P.initialize_directions_he = src.get_hdir() P.initialize_directions_he = src.get_hdir()
P.initialize() P.atmos_init()
if (QDELETED(P)) if (QDELETED(P))
usr << pipefailtext //"There's nothing to connect this pipe to! (with how the pipe code works, at least one end needs to be connected to something, otherwise the game deletes the segment)" usr << pipefailtext //"There's nothing to connect this pipe to! (with how the pipe code works, at least one end needs to be connected to something, otherwise the game deletes the segment)"
return 1 return 1
P.build_network() P.build_network()
if (P.node1) if (P.node1)
P.node1.initialize() P.node1.atmos_init()
P.node1.build_network() P.node1.build_network()
if (P.node2) if (P.node2)
P.node2.initialize() P.node2.atmos_init()
P.node2.build_network() P.node2.build_network()
if(PIPE_UVENT) //unary vent if(PIPE_UVENT) //unary vent
@@ -766,10 +767,10 @@ Buildable meters
V.name = pipename V.name = pipename
var/turf/T = V.loc var/turf/T = V.loc
V.level = !T.is_plating() ? 2 : 1 V.level = !T.is_plating() ? 2 : 1
V.initialize() V.atmos_init()
V.build_network() V.build_network()
if (V.node) if (V.node)
V.node.initialize() V.node.atmos_init()
V.node.build_network() V.node.build_network()
if(PIPE_MVALVE) //manual valve if(PIPE_MVALVE) //manual valve
@@ -780,15 +781,15 @@ Buildable meters
V.name = pipename V.name = pipename
var/turf/T = V.loc var/turf/T = V.loc
V.level = !T.is_plating() ? 2 : 1 V.level = !T.is_plating() ? 2 : 1
V.initialize() V.atmos_init()
V.build_network() V.build_network()
if (V.node1) if (V.node1)
// world << "[V.node1.name] is connected to valve, forcing it to update its nodes." // world << "[V.node1.name] is connected to valve, forcing it to update its nodes."
V.node1.initialize() V.node1.atmos_init()
V.node1.build_network() V.node1.build_network()
if (V.node2) if (V.node2)
// world << "[V.node2.name] is connected to valve, forcing it to update its nodes." // world << "[V.node2.name] is connected to valve, forcing it to update its nodes."
V.node2.initialize() V.node2.atmos_init()
V.node2.build_network() V.node2.build_network()
if(PIPE_PUMP) //gas pump if(PIPE_PUMP) //gas pump
@@ -799,13 +800,13 @@ Buildable meters
P.name = pipename P.name = pipename
var/turf/T = P.loc var/turf/T = P.loc
P.level = !T.is_plating() ? 2 : 1 P.level = !T.is_plating() ? 2 : 1
P.initialize() P.atmos_init()
P.build_network() P.build_network()
if (P.node1) if (P.node1)
P.node1.initialize() P.node1.atmos_init()
P.node1.build_network() P.node1.build_network()
if (P.node2) if (P.node2)
P.node2.initialize() P.node2.atmos_init()
P.node2.build_network() P.node2.build_network()
if(PIPE_GAS_FILTER) //gas filter if(PIPE_GAS_FILTER) //gas filter
@@ -816,16 +817,16 @@ Buildable meters
P.name = pipename P.name = pipename
var/turf/T = P.loc var/turf/T = P.loc
P.level = !T.is_plating() ? 2 : 1 P.level = !T.is_plating() ? 2 : 1
P.initialize() P.atmos_init()
P.build_network() P.build_network()
if (P.node1) if (P.node1)
P.node1.initialize() P.node1.atmos_init()
P.node1.build_network() P.node1.build_network()
if (P.node2) if (P.node2)
P.node2.initialize() P.node2.atmos_init()
P.node2.build_network() P.node2.build_network()
if (P.node3) if (P.node3)
P.node3.initialize() P.node3.atmos_init()
P.node3.build_network() P.node3.build_network()
if(PIPE_GAS_MIXER) //gas mixer if(PIPE_GAS_MIXER) //gas mixer
@@ -836,16 +837,16 @@ Buildable meters
P.name = pipename P.name = pipename
var/turf/T = P.loc var/turf/T = P.loc
P.level = !T.is_plating() ? 2 : 1 P.level = !T.is_plating() ? 2 : 1
P.initialize() P.atmos_init()
P.build_network() P.build_network()
if (P.node1) if (P.node1)
P.node1.initialize() P.node1.atmos_init()
P.node1.build_network() P.node1.build_network()
if (P.node2) if (P.node2)
P.node2.initialize() P.node2.atmos_init()
P.node2.build_network() P.node2.build_network()
if (P.node3) if (P.node3)
P.node3.initialize() P.node3.atmos_init()
P.node3.build_network() P.node3.build_network()
if(PIPE_GAS_FILTER_M) //gas filter mirrored if(PIPE_GAS_FILTER_M) //gas filter mirrored
@@ -856,16 +857,16 @@ Buildable meters
P.name = pipename P.name = pipename
var/turf/T = P.loc var/turf/T = P.loc
P.level = !T.is_plating() ? 2 : 1 P.level = !T.is_plating() ? 2 : 1
P.initialize() P.atmos_init()
P.build_network() P.build_network()
if (P.node1) if (P.node1)
P.node1.initialize() P.node1.atmos_init()
P.node1.build_network() P.node1.build_network()
if (P.node2) if (P.node2)
P.node2.initialize() P.node2.atmos_init()
P.node2.build_network() P.node2.build_network()
if (P.node3) if (P.node3)
P.node3.initialize() P.node3.atmos_init()
P.node3.build_network() P.node3.build_network()
if(PIPE_GAS_MIXER_T) //gas mixer-t if(PIPE_GAS_MIXER_T) //gas mixer-t
@@ -876,16 +877,16 @@ Buildable meters
P.name = pipename P.name = pipename
var/turf/T = P.loc var/turf/T = P.loc
P.level = !T.is_plating() ? 2 : 1 P.level = !T.is_plating() ? 2 : 1
P.initialize() P.atmos_init()
P.build_network() P.build_network()
if (P.node1) if (P.node1)
P.node1.initialize() P.node1.atmos_init()
P.node1.build_network() P.node1.build_network()
if (P.node2) if (P.node2)
P.node2.initialize() P.node2.atmos_init()
P.node2.build_network() P.node2.build_network()
if (P.node3) if (P.node3)
P.node3.initialize() P.node3.atmos_init()
P.node3.build_network() P.node3.build_network()
if(PIPE_GAS_MIXER_M) //gas mixer mirrored if(PIPE_GAS_MIXER_M) //gas mixer mirrored
@@ -896,16 +897,16 @@ Buildable meters
P.name = pipename P.name = pipename
var/turf/T = P.loc var/turf/T = P.loc
P.level = !T.is_plating() ? 2 : 1 P.level = !T.is_plating() ? 2 : 1
P.initialize() P.atmos_init()
P.build_network() P.build_network()
if (P.node1) if (P.node1)
P.node1.initialize() P.node1.atmos_init()
P.node1.build_network() P.node1.build_network()
if (P.node2) if (P.node2)
P.node2.initialize() P.node2.atmos_init()
P.node2.build_network() P.node2.build_network()
if (P.node3) if (P.node3)
P.node3.initialize() P.node3.atmos_init()
P.node3.build_network() P.node3.build_network()
if(PIPE_SCRUBBER) //scrubber if(PIPE_SCRUBBER) //scrubber
@@ -916,10 +917,10 @@ Buildable meters
S.name = pipename S.name = pipename
var/turf/T = S.loc var/turf/T = S.loc
S.level = !T.is_plating() ? 2 : 1 S.level = !T.is_plating() ? 2 : 1
S.initialize() S.atmos_init()
S.build_network() S.build_network()
if (S.node) if (S.node)
S.node.initialize() S.node.atmos_init()
S.node.build_network() S.node.build_network()
if(PIPE_INSULATED_STRAIGHT, PIPE_INSULATED_BENT) if(PIPE_INSULATED_STRAIGHT, PIPE_INSULATED_BENT)
@@ -928,16 +929,16 @@ Buildable meters
P.initialize_directions = pipe_dir P.initialize_directions = pipe_dir
var/turf/T = P.loc var/turf/T = P.loc
P.level = !T.is_plating() ? 2 : 1 P.level = !T.is_plating() ? 2 : 1
P.initialize() P.atmos_init()
if (QDELETED(P)) if (QDELETED(P))
usr << pipefailtext usr << pipefailtext
return 1 return 1
P.build_network() P.build_network()
if (P.node1) if (P.node1)
P.node1.initialize() P.node1.atmos_init()
P.node1.build_network() P.node1.build_network()
if (P.node2) if (P.node2)
P.node2.initialize() P.node2.atmos_init()
P.node2.build_network() P.node2.build_network()
if(PIPE_MTVALVE) //manual t-valve if(PIPE_MTVALVE) //manual t-valve
@@ -948,16 +949,16 @@ Buildable meters
V.name = pipename V.name = pipename
var/turf/T = V.loc var/turf/T = V.loc
V.level = !T.is_plating() ? 2 : 1 V.level = !T.is_plating() ? 2 : 1
V.initialize() V.atmos_init()
V.build_network() V.build_network()
if (V.node1) if (V.node1)
V.node1.initialize() V.node1.atmos_init()
V.node1.build_network() V.node1.build_network()
if (V.node2) if (V.node2)
V.node2.initialize() V.node2.atmos_init()
V.node2.build_network() V.node2.build_network()
if (V.node3) if (V.node3)
V.node3.initialize() V.node3.atmos_init()
V.node3.build_network() V.node3.build_network()
if(PIPE_MTVALVEM) //manual t-valve if(PIPE_MTVALVEM) //manual t-valve
@@ -968,46 +969,46 @@ Buildable meters
V.name = pipename V.name = pipename
var/turf/T = V.loc var/turf/T = V.loc
V.level = !T.is_plating() ? 2 : 1 V.level = !T.is_plating() ? 2 : 1
V.initialize() V.atmos_init()
V.build_network() V.build_network()
if (V.node1) if (V.node1)
V.node1.initialize() V.node1.atmos_init()
V.node1.build_network() V.node1.build_network()
if (V.node2) if (V.node2)
V.node2.initialize() V.node2.atmos_init()
V.node2.build_network() V.node2.build_network()
if (V.node3) if (V.node3)
V.node3.initialize() V.node3.atmos_init()
V.node3.build_network() V.node3.build_network()
if(PIPE_CAP) if(PIPE_CAP)
var/obj/machinery/atmospherics/pipe/cap/C = new(src.loc) var/obj/machinery/atmospherics/pipe/cap/C = new(src.loc)
C.set_dir(dir) C.set_dir(dir)
C.initialize_directions = pipe_dir C.initialize_directions = pipe_dir
C.initialize() C.atmos_init()
C.build_network() C.build_network()
if(C.node) if(C.node)
C.node.initialize() C.node.atmos_init()
C.node.build_network() C.node.build_network()
if(PIPE_SUPPLY_CAP) if(PIPE_SUPPLY_CAP)
var/obj/machinery/atmospherics/pipe/cap/hidden/supply/C = new(src.loc) var/obj/machinery/atmospherics/pipe/cap/hidden/supply/C = new(src.loc)
C.set_dir(dir) C.set_dir(dir)
C.initialize_directions = pipe_dir C.initialize_directions = pipe_dir
C.initialize() C.atmos_init()
C.build_network() C.build_network()
if(C.node) if(C.node)
C.node.initialize() C.node.atmos_init()
C.node.build_network() C.node.build_network()
if(PIPE_SCRUBBERS_CAP) if(PIPE_SCRUBBERS_CAP)
var/obj/machinery/atmospherics/pipe/cap/hidden/scrubbers/C = new(src.loc) var/obj/machinery/atmospherics/pipe/cap/hidden/scrubbers/C = new(src.loc)
C.set_dir(dir) C.set_dir(dir)
C.initialize_directions = pipe_dir C.initialize_directions = pipe_dir
C.initialize() C.atmos_init()
C.build_network() C.build_network()
if(C.node) if(C.node)
C.node.initialize() C.node.atmos_init()
C.node.build_network() C.node.build_network()
if(PIPE_PASSIVE_GATE) //passive gate if(PIPE_PASSIVE_GATE) //passive gate
@@ -1018,13 +1019,13 @@ Buildable meters
P.name = pipename P.name = pipename
var/turf/T = P.loc var/turf/T = P.loc
P.level = !T.is_plating() ? 2 : 1 P.level = !T.is_plating() ? 2 : 1
P.initialize() P.atmos_init()
P.build_network() P.build_network()
if (P.node1) if (P.node1)
P.node1.initialize() P.node1.atmos_init()
P.node1.build_network() P.node1.build_network()
if (P.node2) if (P.node2)
P.node2.initialize() P.node2.atmos_init()
P.node2.build_network() P.node2.build_network()
if(PIPE_VOLUME_PUMP) //volume pump if(PIPE_VOLUME_PUMP) //volume pump
@@ -1035,13 +1036,13 @@ Buildable meters
P.name = pipename P.name = pipename
var/turf/T = P.loc var/turf/T = P.loc
P.level = !T.is_plating() ? 2 : 1 P.level = !T.is_plating() ? 2 : 1
P.initialize() P.atmos_init()
P.build_network() P.build_network()
if (P.node1) if (P.node1)
P.node1.initialize() P.node1.atmos_init()
P.node1.build_network() P.node1.build_network()
if (P.node2) if (P.node2)
P.node2.initialize() P.node2.atmos_init()
P.node2.build_network() P.node2.build_network()
if(PIPE_HEAT_EXCHANGE) // heat exchanger if(PIPE_HEAT_EXCHANGE) // heat exchanger
@@ -1052,10 +1053,10 @@ Buildable meters
C.name = pipename C.name = pipename
var/turf/T = C.loc var/turf/T = C.loc
C.level = !T.is_plating() ? 2 : 1 C.level = !T.is_plating() ? 2 : 1
C.initialize() C.atmos_init()
C.build_network() C.build_network()
if (C.node) if (C.node)
C.node.initialize() C.node.atmos_init()
C.node.build_network() C.node.build_network()
if(PIPE_DVALVE) //digital valve if(PIPE_DVALVE) //digital valve
@@ -1070,13 +1071,13 @@ Buildable meters
V.name = pipename V.name = pipename
var/turf/T = V.loc var/turf/T = V.loc
V.level = !T.is_plating() ? 2 : 1 V.level = !T.is_plating() ? 2 : 1
V.initialize() V.atmos_init()
V.build_network() V.build_network()
if (V.node1) if (V.node1)
V.node1.initialize() V.node1.atmos_init()
V.node1.build_network() V.node1.build_network()
if (V.node2) if (V.node2)
V.node2.initialize() V.node2.atmos_init()
V.node2.build_network() V.node2.build_network()
if(PIPE_DTVALVE) //digital t-valve if(PIPE_DTVALVE) //digital t-valve
@@ -1091,16 +1092,16 @@ Buildable meters
V.name = pipename V.name = pipename
var/turf/T = V.loc var/turf/T = V.loc
V.level = !T.is_plating() ? 2 : 1 V.level = !T.is_plating() ? 2 : 1
V.initialize() V.atmos_init()
V.build_network() V.build_network()
if (V.node1) if (V.node1)
V.node1.initialize() V.node1.atmos_init()
V.node1.build_network() V.node1.build_network()
if (V.node2) if (V.node2)
V.node2.initialize() V.node2.atmos_init()
V.node2.build_network() V.node2.build_network()
if (V.node3) if (V.node3)
V.node3.initialize() V.node3.atmos_init()
V.node3.build_network() V.node3.build_network()
if(PIPE_DTVALVEM) //mirrored digital t-valve if(PIPE_DTVALVEM) //mirrored digital t-valve
@@ -1115,16 +1116,16 @@ Buildable meters
V.name = pipename V.name = pipename
var/turf/T = V.loc var/turf/T = V.loc
V.level = !T.is_plating() ? 2 : 1 V.level = !T.is_plating() ? 2 : 1
V.initialize() V.atmos_init()
V.build_network() V.build_network()
if (V.node1) if (V.node1)
V.node1.initialize() V.node1.atmos_init()
V.node1.build_network() V.node1.build_network()
if (V.node2) if (V.node2)
V.node2.initialize() V.node2.atmos_init()
V.node2.build_network() V.node2.build_network()
if (V.node3) if (V.node3)
V.node3.initialize() V.node3.atmos_init()
V.node3.build_network() V.node3.build_network()
///// Z-Level stuff ///// Z-Level stuff
@@ -1136,13 +1137,13 @@ Buildable meters
P.name = pipename P.name = pipename
var/turf/T = P.loc var/turf/T = P.loc
P.level = !T.is_plating() ? 2 : 1 P.level = !T.is_plating() ? 2 : 1
P.initialize() P.atmos_init()
P.build_network() P.build_network()
if (P.node1) if (P.node1)
P.node1.initialize() P.node1.atmos_init()
P.node1.build_network() P.node1.build_network()
if (P.node2) if (P.node2)
P.node2.initialize() P.node2.atmos_init()
P.node2.build_network() P.node2.build_network()
if(PIPE_DOWN) if(PIPE_DOWN)
var/obj/machinery/atmospherics/pipe/zpipe/down/P = new(src.loc) var/obj/machinery/atmospherics/pipe/zpipe/down/P = new(src.loc)
@@ -1152,13 +1153,13 @@ Buildable meters
P.name = pipename P.name = pipename
var/turf/T = P.loc var/turf/T = P.loc
P.level = !T.is_plating() ? 2 : 1 P.level = !T.is_plating() ? 2 : 1
P.initialize() P.atmos_init()
P.build_network() P.build_network()
if (P.node1) if (P.node1)
P.node1.initialize() P.node1.atmos_init()
P.node1.build_network() P.node1.build_network()
if (P.node2) if (P.node2)
P.node2.initialize() P.node2.atmos_init()
P.node2.build_network() P.node2.build_network()
if(PIPE_SUPPLY_UP) if(PIPE_SUPPLY_UP)
var/obj/machinery/atmospherics/pipe/zpipe/up/supply/P = new(src.loc) var/obj/machinery/atmospherics/pipe/zpipe/up/supply/P = new(src.loc)
@@ -1168,13 +1169,13 @@ Buildable meters
P.name = pipename P.name = pipename
var/turf/T = P.loc var/turf/T = P.loc
P.level = !T.is_plating() ? 2 : 1 P.level = !T.is_plating() ? 2 : 1
P.initialize() P.atmos_init()
P.build_network() P.build_network()
if (P.node1) if (P.node1)
P.node1.initialize() P.node1.atmos_init()
P.node1.build_network() P.node1.build_network()
if (P.node2) if (P.node2)
P.node2.initialize() P.node2.atmos_init()
P.node2.build_network() P.node2.build_network()
if(PIPE_SUPPLY_DOWN) if(PIPE_SUPPLY_DOWN)
var/obj/machinery/atmospherics/pipe/zpipe/down/supply/P = new(src.loc) var/obj/machinery/atmospherics/pipe/zpipe/down/supply/P = new(src.loc)
@@ -1184,13 +1185,13 @@ Buildable meters
P.name = pipename P.name = pipename
var/turf/T = P.loc var/turf/T = P.loc
P.level = !T.is_plating() ? 2 : 1 P.level = !T.is_plating() ? 2 : 1
P.initialize() P.atmos_init()
P.build_network() P.build_network()
if (P.node1) if (P.node1)
P.node1.initialize() P.node1.atmos_init()
P.node1.build_network() P.node1.build_network()
if (P.node2) if (P.node2)
P.node2.initialize() P.node2.atmos_init()
P.node2.build_network() P.node2.build_network()
if(PIPE_SCRUBBERS_UP) if(PIPE_SCRUBBERS_UP)
var/obj/machinery/atmospherics/pipe/zpipe/up/scrubbers/P = new(src.loc) var/obj/machinery/atmospherics/pipe/zpipe/up/scrubbers/P = new(src.loc)
@@ -1200,13 +1201,13 @@ Buildable meters
P.name = pipename P.name = pipename
var/turf/T = P.loc var/turf/T = P.loc
P.level = !T.is_plating() ? 2 : 1 P.level = !T.is_plating() ? 2 : 1
P.initialize() P.atmos_init()
P.build_network() P.build_network()
if (P.node1) if (P.node1)
P.node1.initialize() P.node1.atmos_init()
P.node1.build_network() P.node1.build_network()
if (P.node2) if (P.node2)
P.node2.initialize() P.node2.atmos_init()
P.node2.build_network() P.node2.build_network()
if(PIPE_SCRUBBERS_DOWN) if(PIPE_SCRUBBERS_DOWN)
var/obj/machinery/atmospherics/pipe/zpipe/down/scrubbers/P = new(src.loc) var/obj/machinery/atmospherics/pipe/zpipe/down/scrubbers/P = new(src.loc)
@@ -1216,26 +1217,26 @@ Buildable meters
P.name = pipename P.name = pipename
var/turf/T = P.loc var/turf/T = P.loc
P.level = !T.is_plating() ? 2 : 1 P.level = !T.is_plating() ? 2 : 1
P.initialize() P.atmos_init()
P.build_network() P.build_network()
if (P.node1) if (P.node1)
P.node1.initialize() P.node1.atmos_init()
P.node1.build_network() P.node1.build_network()
if (P.node2) if (P.node2)
P.node2.initialize() P.node2.atmos_init()
P.node2.build_network() P.node2.build_network()
///// Z-Level stuff ///// Z-Level stuff
if(PIPE_OMNI_MIXER) if(PIPE_OMNI_MIXER)
var/obj/machinery/atmospherics/omni/mixer/P = new(loc) var/obj/machinery/atmospherics/omni/mixer/P = new(loc)
var/turf/T = P.loc var/turf/T = P.loc
P.level = !T.is_plating() ? 2 : 1 P.level = !T.is_plating() ? 2 : 1
P.initialize() P.atmos_init()
P.build_network() P.build_network()
if(PIPE_OMNI_FILTER) if(PIPE_OMNI_FILTER)
var/obj/machinery/atmospherics/omni/atmos_filter/P = new(loc) var/obj/machinery/atmospherics/omni/atmos_filter/P = new(loc)
var/turf/T = P.loc var/turf/T = P.loc
P.level = !T.is_plating() ? 2 : 1 P.level = !T.is_plating() ? 2 : 1
P.initialize() P.atmos_init()
P.build_network() P.build_network()
if(PIPE_PASSIVE_VENT) if(PIPE_PASSIVE_VENT)
var/obj/machinery/atmospherics/pipe/vent/P = new(loc) var/obj/machinery/atmospherics/pipe/vent/P = new(loc)
@@ -1243,10 +1244,10 @@ Buildable meters
P.initialize_directions = pipe_dir P.initialize_directions = pipe_dir
var/turf/T = P.loc var/turf/T = P.loc
P.level = !T.is_plating() ? 2 : 1 P.level = !T.is_plating() ? 2 : 1
P.initialize() P.atmos_init()
P.build_network() P.build_network()
if (P.node1) if (P.node1)
P.node1.initialize() P.node1.atmos_init()
P.node1.build_network() P.node1.build_network()
playsound(src, W.usesound, 50, 1) playsound(src, W.usesound, 50, 1)

View File

@@ -7,10 +7,10 @@
/obj/item/weapon/circuitboard/unary_atmos/construct(var/obj/machinery/atmospherics/unary/U) /obj/item/weapon/circuitboard/unary_atmos/construct(var/obj/machinery/atmospherics/unary/U)
//TODO: Move this stuff into the relevant constructor when pipe/construction.dm is cleaned up. //TODO: Move this stuff into the relevant constructor when pipe/construction.dm is cleaned up.
U.initialize() U.atmos_init()
U.build_network() U.build_network()
if (U.node) if (U.node)
U.node.initialize() U.node.atmos_init()
U.node.build_network() U.node.build_network()
/obj/item/weapon/circuitboard/unary_atmos/heater /obj/item/weapon/circuitboard/unary_atmos/heater

View File

@@ -82,7 +82,7 @@ var/list/global/map_templates = list()
admin_notice("<span class='danger'>Initializing atmos pipenets and machinery in submap.</span>", R_DEBUG) admin_notice("<span class='danger'>Initializing atmos pipenets and machinery in submap.</span>", R_DEBUG)
for(var/obj/machinery/atmospherics/machine in atmos_machines) for(var/obj/machinery/atmospherics/machine in atmos_machines)
machine.initialize() machine.atmos_init()
i++ i++
for(var/obj/machinery/atmospherics/machine in atmos_machines) for(var/obj/machinery/atmospherics/machine in atmos_machines)