/obj/machinery/atmospherics/pipe/tank icon = 'icons/atmos/tank.dmi' icon_state = "air_map" name = "Pressure Tank" desc = "A large vessel containing pressurized gas." volume = 10000 //in liters, 1 meters by 1 meters by 2 meters ~tweaked it a little to simulate a pressure tank without needing to recode them yet level = 1 dir = SOUTH initialize_directions = SOUTH density = 1 var/obj/machinery/atmospherics/node1 /obj/machinery/atmospherics/pipe/tank/New() icon_state = "air" initialize_directions = dir ..() /obj/machinery/atmospherics/pipe/tank/process() if(!parent) ..() else . = PROCESS_KILL /obj/machinery/atmospherics/pipe/tank/Destroy() if(node1) node1.disconnect(src) return ..() /obj/machinery/atmospherics/pipe/tank/pipeline_expansion() return list(node1) /obj/machinery/atmospherics/pipe/tank/update_underlays() if(..()) underlays.Cut() var/turf/T = get_turf(src) if(!istype(T)) return add_underlay(T, node1, dir) /obj/machinery/atmospherics/pipe/tank/hide() update_underlays() /obj/machinery/atmospherics/pipe/tank/initialize() var/connect_direction = dir for(var/obj/machinery/atmospherics/target in get_step(src,connect_direction)) if(target.initialize_directions & get_dir(target,src)) var/c = check_connect_types(target,src) if (c) target.connected_to = c src.connected_to = c node1 = target break update_underlays() /obj/machinery/atmospherics/pipe/tank/disconnect(obj/machinery/atmospherics/reference) if(reference == node1) if(istype(node1, /obj/machinery/atmospherics/pipe)) qdel(parent) node1 = null update_underlays() return null /obj/machinery/atmospherics/pipe/tank/attackby(var/obj/item/W as obj, var/mob/user as mob, params) if(istype(W, /obj/item/device/pipe_painter)) return if(istype(W, /obj/item/device/analyzer)) atmosanalyzer_scan(parent.air, user) return /obj/machinery/atmospherics/pipe/tank/air name = "Pressure Tank (Air)" icon_state = "air_map" /obj/machinery/atmospherics/pipe/tank/air/New() air_temporary = new air_temporary.volume = volume air_temporary.temperature = T20C air_temporary.oxygen = (25*ONE_ATMOSPHERE*O2STANDARD)*(air_temporary.volume)/(R_IDEAL_GAS_EQUATION*air_temporary.temperature) air_temporary.nitrogen = (25*ONE_ATMOSPHERE*N2STANDARD)*(air_temporary.volume)/(R_IDEAL_GAS_EQUATION*air_temporary.temperature) ..() icon_state = "air" /obj/machinery/atmospherics/pipe/tank/oxygen name = "Pressure Tank (Oxygen)" icon_state = "o2_map" /obj/machinery/atmospherics/pipe/tank/oxygen/New() air_temporary = new air_temporary.volume = volume air_temporary.temperature = T20C air_temporary.oxygen = (25*ONE_ATMOSPHERE)*(air_temporary.volume)/(R_IDEAL_GAS_EQUATION*air_temporary.temperature) ..() icon_state = "o2" /obj/machinery/atmospherics/pipe/tank/nitrogen name = "Pressure Tank (Nitrogen)" icon_state = "n2_map" /obj/machinery/atmospherics/pipe/tank/nitrogen/New() air_temporary = new air_temporary.volume = volume air_temporary.temperature = T20C air_temporary.nitrogen = (25*ONE_ATMOSPHERE)*(air_temporary.volume)/(R_IDEAL_GAS_EQUATION*air_temporary.temperature) ..() icon_state = "n2" /obj/machinery/atmospherics/pipe/tank/carbon_dioxide name = "Pressure Tank (Carbon Dioxide)" icon_state = "co2_map" /obj/machinery/atmospherics/pipe/tank/carbon_dioxide/New() air_temporary = new air_temporary.volume = volume air_temporary.temperature = T20C air_temporary.carbon_dioxide = (25*ONE_ATMOSPHERE)*(air_temporary.volume)/(R_IDEAL_GAS_EQUATION*air_temporary.temperature) ..() icon_state = "co2" /obj/machinery/atmospherics/pipe/tank/toxins name = "Pressure Tank (Toxins)" icon_state = "toxins_map" /obj/machinery/atmospherics/pipe/tank/toxins/New() air_temporary = new air_temporary.volume = volume air_temporary.temperature = T20C air_temporary.toxins = (25*ONE_ATMOSPHERE)*(air_temporary.volume)/(R_IDEAL_GAS_EQUATION*air_temporary.temperature) ..() icon_state = "toxins" /obj/machinery/atmospherics/pipe/tank/nitrous_oxide name = "Pressure Tank (Nitrous Oxide)" icon_state = "n2o_map" /obj/machinery/atmospherics/pipe/tank/nitrous_oxide/New() air_temporary = new air_temporary.volume = volume air_temporary.temperature = T0C var/datum/gas/sleeping_agent/trace_gas = new trace_gas.moles = (25*ONE_ATMOSPHERE)*(air_temporary.volume)/(R_IDEAL_GAS_EQUATION*air_temporary.temperature) air_temporary.trace_gases += trace_gas ..() icon_state = "n2o"