/obj/machinery/atmospherics/binary dir = SOUTH initialize_directions = SOUTH|NORTH use_power = USE_POWER_IDLE var/datum/gas_mixture/air1 var/datum/gas_mixture/air2 var/datum/pipe_network/network1 var/datum/pipe_network/network2 /obj/machinery/atmospherics/binary/Initialize() . = ..() air1 = new air2 = new air1.volume = 200 air2.volume = 200 /obj/machinery/atmospherics/binary/init_dir() switch(dir) if(NORTH) initialize_directions = NORTH|SOUTH if(SOUTH) initialize_directions = NORTH|SOUTH if(EAST) initialize_directions = EAST|WEST if(WEST) initialize_directions = EAST|WEST // Housekeeping and pipe network stuff below /obj/machinery/atmospherics/binary/get_neighbor_nodes_for_init() return list(node1, node2) /obj/machinery/atmospherics/binary/network_expand(datum/pipe_network/new_network, obj/machinery/atmospherics/pipe/reference) if(reference == node1) network1 = new_network else if(reference == node2) network2 = new_network if(new_network.normal_members.Find(src)) return 0 new_network.normal_members += src return null /obj/machinery/atmospherics/binary/Destroy() . = ..() if(node1) node1.disconnect(src) qdel(network1) if(node2) node2.disconnect(src) qdel(network2) node1 = null node2 = null /obj/machinery/atmospherics/binary/atmos_init() if(node1 && node2) return var/node2_connect = dir var/node1_connect = turn(dir, 180) STANDARD_ATMOS_CHOOSE_NODE(1, node1_connect) STANDARD_ATMOS_CHOOSE_NODE(2, node2_connect) update_icon() update_underlays() /obj/machinery/atmospherics/binary/build_network() if(!network1 && node1) network1 = new /datum/pipe_network() network1.normal_members += src network1.build_network(node1, src) if(!network2 && node2) network2 = new /datum/pipe_network() network2.normal_members += src network2.build_network(node2, src) /obj/machinery/atmospherics/binary/return_network(obj/machinery/atmospherics/reference) build_network() if(reference==node1) return network1 if(reference==node2) return network2 return null /obj/machinery/atmospherics/binary/reassign_network(datum/pipe_network/old_network, datum/pipe_network/new_network) if(network1 == old_network) network1 = new_network if(network2 == old_network) network2 = new_network return 1 /obj/machinery/atmospherics/binary/return_network_air(datum/pipe_network/reference) var/list/results = list() if(network1 == reference) results += air1 if(network2 == reference) results += air2 return results /obj/machinery/atmospherics/binary/disconnect(obj/machinery/atmospherics/reference) if(reference==node1) qdel(network1) node1 = null else if(reference==node2) qdel(network2) node2 = null update_icon() update_underlays() return null