diff --git a/code/modules/atmospherics/machinery/atmosmachinery.dm b/code/modules/atmospherics/machinery/atmosmachinery.dm index 0c908dd12f..7d095869cb 100644 --- a/code/modules/atmospherics/machinery/atmosmachinery.dm +++ b/code/modules/atmospherics/machinery/atmosmachinery.dm @@ -125,7 +125,7 @@ Pipelines + Other Objects -> Pipe network pixel_y = (piping_layer - PIPING_LAYER_DEFAULT) * PIPING_LAYER_P_Y layer = initial(layer) + ((piping_layer - PIPING_LAYER_DEFAULT) * PIPING_LAYER_LCHANGE) -/obj/machinery/atmospherics/proc/can_be_node(obj/machinery/atmospherics/target) +/obj/machinery/atmospherics/proc/can_be_node(obj/machinery/atmospherics/target, iteration) return connection_check(target, piping_layer) //Find a connecting /obj/machinery/atmospherics in specified direction diff --git a/code/modules/atmospherics/machinery/pipes/heat_exchange/he_pipes.dm b/code/modules/atmospherics/machinery/pipes/heat_exchange/he_pipes.dm index ee52d89e5b..b087859a47 100644 --- a/code/modules/atmospherics/machinery/pipes/heat_exchange/he_pipes.dm +++ b/code/modules/atmospherics/machinery/pipes/heat_exchange/he_pipes.dm @@ -1,7 +1,6 @@ /obj/machinery/atmospherics/pipe/heat_exchanging icon = 'icons/obj/atmospherics/pipes/heat.dmi' level = 2 - var/initialize_directions_he var/minimum_temperature_difference = 20 var/thermal_conductivity = WINDOW_HEAT_TRANSFER_COEFFICIENT color = "#404040" @@ -9,22 +8,18 @@ var/icon_temperature = T20C //stop small changes in temperature causing icon refresh resistance_flags = LAVA_PROOF | FIRE_PROOF -/obj/machinery/atmospherics/pipe/heat_exchanging/New() - ..() +/obj/machinery/atmospherics/pipe/heat_exchanging/Initialize() + . = ..() add_atom_colour("#404040", FIXED_COLOUR_PRIORITY) -/obj/machinery/atmospherics/pipe/heat_exchanging/can_be_node(obj/machinery/atmospherics/pipe/heat_exchanging/target) - if(!istype(target)) - return 0 - if(target.initialize_directions_he & get_dir(target,src)) - return 1 +/obj/machinery/atmospherics/pipe/heat_exchanging/isConnectable(obj/machinery/atmospherics/pipe/heat_exchanging/target, given_layer, HE_type_check = TRUE) + if(istype(target, /obj/machinery/atmospherics/pipe/heat_exchanging) != HE_type_check) + return FALSE + . = ..() /obj/machinery/atmospherics/pipe/heat_exchanging/hide() return -/obj/machinery/atmospherics/pipe/heat_exchanging/GetInitDirections() - return ..() | initialize_directions_he - /obj/machinery/atmospherics/pipe/heat_exchanging/process_atmos() var/environment_temperature = 0 var/datum/gas_mixture/pipe_air = return_air() @@ -56,8 +51,6 @@ L.bodytemperature = avg_temp pipe_air.temperature = avg_temp - - /obj/machinery/atmospherics/pipe/heat_exchanging/process() if(!parent) return //machines subsystem fires before atmos is initialized so this prevents race condition runtimes diff --git a/code/modules/atmospherics/machinery/pipes/heat_exchange/junction.dm b/code/modules/atmospherics/machinery/pipes/heat_exchange/junction.dm index d0bf90c27b..606693ddda 100644 --- a/code/modules/atmospherics/machinery/pipes/heat_exchange/junction.dm +++ b/code/modules/atmospherics/machinery/pipes/heat_exchange/junction.dm @@ -9,11 +9,9 @@ thermal_conductivity = WALL_HEAT_TRANSFER_COEFFICIENT dir = SOUTH - initialize_directions = NORTH - initialize_directions_he = SOUTH device_type = BINARY - + construction_type = /obj/item/pipe/directional pipe_state = "junction" @@ -26,34 +24,18 @@ piping_layer = PIPING_LAYER_MAX pixel_x = PIPING_LAYER_P_X pixel_y = PIPING_LAYER_P_Y - + /obj/machinery/atmospherics/pipe/heat_exchanging/junction/SetInitDirections() switch(dir) - if(SOUTH) - initialize_directions = NORTH - initialize_directions_he = SOUTH - if(NORTH) - initialize_directions = SOUTH - initialize_directions_he = NORTH - if(EAST) - initialize_directions = WEST - initialize_directions_he = EAST - if(WEST) - initialize_directions = EAST - initialize_directions_he = WEST + if(NORTH,SOUTH) + initialize_directions = SOUTH|NORTH + if(EAST,WEST) + initialize_directions = WEST|EAST /obj/machinery/atmospherics/pipe/heat_exchanging/junction/getNodeConnects() return list(turn(dir, 180), dir) -/obj/machinery/atmospherics/pipe/heat_exchanging/junction/can_be_node(obj/machinery/atmospherics/target, iteration) - var/init_dir - switch(iteration) - if(1) - init_dir = target.initialize_directions - if(2) - var/obj/machinery/atmospherics/pipe/heat_exchanging/H = target - if(!istype(H)) - return 0 - init_dir = H.initialize_directions_he - if(init_dir & get_dir(target,src)) - return 1 +/obj/machinery/atmospherics/pipe/heat_exchanging/junction/isConnectable(obj/machinery/atmospherics/target, given_layer, he_type_check) + if(dir == get_dir(target, src)) + return ..(target, given_layer, FALSE) //we want a normal pipe instead + return ..(target, given_layer, TRUE) diff --git a/code/modules/atmospherics/machinery/pipes/heat_exchange/manifold.dm b/code/modules/atmospherics/machinery/pipes/heat_exchange/manifold.dm index 9b95840875..6689905cf7 100644 --- a/code/modules/atmospherics/machinery/pipes/heat_exchange/manifold.dm +++ b/code/modules/atmospherics/machinery/pipes/heat_exchange/manifold.dm @@ -6,13 +6,13 @@ desc = "A manifold composed of regular pipes." dir = SOUTH - initialize_directions_he = EAST|NORTH|WEST + initialize_directions = EAST|NORTH|WEST device_type = TRINARY construction_type = /obj/item/pipe/trinary pipe_state = "he_manifold" - + /obj/machinery/atmospherics/pipe/heat_exchanging/manifold/layer1 piping_layer = PIPING_LAYER_MIN pixel_x = -PIPING_LAYER_P_X @@ -26,13 +26,13 @@ /obj/machinery/atmospherics/pipe/heat_exchanging/manifold/SetInitDirections() switch(dir) if(NORTH) - initialize_directions_he = EAST|SOUTH|WEST + initialize_directions = EAST|SOUTH|WEST if(SOUTH) - initialize_directions_he = WEST|NORTH|EAST + initialize_directions = WEST|NORTH|EAST if(EAST) - initialize_directions_he = SOUTH|WEST|NORTH + initialize_directions = SOUTH|WEST|NORTH if(WEST) - initialize_directions_he = NORTH|EAST|SOUTH + initialize_directions = NORTH|EAST|SOUTH /obj/machinery/atmospherics/pipe/heat_exchanging/manifold/update_icon() var/invis = invisibility ? "-f" : "" @@ -53,13 +53,13 @@ name = "4-way pipe manifold" desc = "A manifold composed of heat-exchanging pipes." - initialize_directions_he = NORTH|SOUTH|EAST|WEST + initialize_directions = NORTH|SOUTH|EAST|WEST device_type = QUATERNARY construction_type = /obj/item/pipe/quaternary pipe_state = "he_manifold4w" - + /obj/machinery/atmospherics/pipe/heat_exchanging/manifold4w/layer1 piping_layer = PIPING_LAYER_MIN pixel_x = -PIPING_LAYER_P_X @@ -71,7 +71,7 @@ pixel_y = PIPING_LAYER_P_Y /obj/machinery/atmospherics/pipe/heat_exchanging/manifold4w/SetInitDirections() - initialize_directions_he = initial(initialize_directions_he) + initialize_directions = initial(initialize_directions) /obj/machinery/atmospherics/pipe/heat_exchanging/manifold4w/update_icon() var/invis = invisibility ? "-f" : "" diff --git a/code/modules/atmospherics/machinery/pipes/heat_exchange/simple.dm b/code/modules/atmospherics/machinery/pipes/heat_exchange/simple.dm index d00304114d..ad137a227d 100644 --- a/code/modules/atmospherics/machinery/pipes/heat_exchange/simple.dm +++ b/code/modules/atmospherics/machinery/pipes/heat_exchange/simple.dm @@ -5,13 +5,13 @@ desc = "A one meter section of heat-exchanging pipe." dir = SOUTH - initialize_directions_he = SOUTH|NORTH + initialize_directions = SOUTH|NORTH device_type = BINARY construction_type = /obj/item/pipe/binary/bendable pipe_state = "he" - + /obj/machinery/atmospherics/pipe/heat_exchanging/simple/layer1 piping_layer = PIPING_LAYER_MIN pixel_x = -PIPING_LAYER_P_X @@ -24,12 +24,12 @@ /obj/machinery/atmospherics/pipe/heat_exchanging/simple/SetInitDirections() if(dir in GLOB.diagonals) - initialize_directions_he = dir + initialize_directions = dir switch(dir) if(NORTH,SOUTH) - initialize_directions_he = SOUTH|NORTH + initialize_directions = SOUTH|NORTH if(EAST,WEST) - initialize_directions_he = WEST|EAST + initialize_directions = WEST|EAST /obj/machinery/atmospherics/pipe/heat_exchanging/simple/proc/normalize_dir() if(dir==SOUTH)