diff --git a/code/ATMOSPHERICS/components/trinary_devices/mixer.dm b/code/ATMOSPHERICS/components/trinary_devices/mixer.dm
index 84c5d49daa..8bf3d3477c 100644
--- a/code/ATMOSPHERICS/components/trinary_devices/mixer.dm
+++ b/code/ATMOSPHERICS/components/trinary_devices/mixer.dm
@@ -85,20 +85,21 @@
to_chat(user, "Access denied.")
return
usr.set_machine(src)
+ var/list/node_connects = get_node_connect_dirs()
var/dat = {"Power: [use_power?"On":"Off"]
Set Flow Rate Limit:
[set_flow_rate]L/s | Change
Flow Rate: [round(last_flow_rate, 0.1)]L/s
- Node 1 Concentration:
+ Node 1 ([dir_name(node_connects[1],TRUE)]) Concentration:
-
-
[mixing_inputs[air1]]([mixing_inputs[air1]*100]%)
+
+
- Node 2 Concentration:
+ Node 2 ([dir_name(node_connects[2],TRUE)]) Concentration:
-
-
[mixing_inputs[air2]]([mixing_inputs[air2]*100]%)
diff --git a/code/_helpers/atmospherics.dm b/code/_helpers/atmospherics.dm
index 2fe393b4dc..e211ed329a 100644
--- a/code/_helpers/atmospherics.dm
+++ b/code/_helpers/atmospherics.dm
@@ -1,4 +1,4 @@
-/obj/proc/analyze_gases(var/obj/A, var/mob/user)
+/obj/proc/analyze_gases(var/atom/A, var/mob/user)
if(src != A)
user.visible_message("\The [user] has used \an [src] on \the [A]")
@@ -13,12 +13,12 @@
user << "Your [src] flashes a red light as it fails to analyze \the [A]."
return 0
-/proc/atmosanalyzer_scan(var/obj/target, var/datum/gas_mixture/mixture, var/mob/user)
- var/pressure = mixture.return_pressure()
- var/total_moles = mixture.total_moles
-
+/proc/atmosanalyzer_scan(var/atom/target, var/datum/gas_mixture/mixture, var/mob/user)
var/list/results = list()
- if (total_moles>0)
+
+ if (mixture && mixture.total_moles > 0)
+ var/pressure = mixture.return_pressure()
+ var/total_moles = mixture.total_moles
results += "Pressure: [round(pressure,0.1)] kPa"
for(var/mix in mixture.gas)
results += "[gas_data.name[mix]]: [round((mixture.gas[mix] / total_moles) * 100)]%"
@@ -28,7 +28,10 @@
return results
-/obj/proc/atmosanalyze(var/mob/user)
+/turf/atmosanalyze(var/mob/user)
+ return atmosanalyzer_scan(src, src.air, user)
+
+/atom/proc/atmosanalyze(var/mob/user)
return
/obj/item/weapon/tank/atmosanalyze(var/mob/user)
@@ -40,6 +43,33 @@
/obj/machinery/atmospherics/pipe/atmosanalyze(var/mob/user)
return atmosanalyzer_scan(src, src.parent.air, user)
+/obj/machinery/atmospherics/portables_connector/atmosanalyze(var/mob/user)
+ return atmosanalyzer_scan(src, src.network.gases, user)
+
+/obj/machinery/atmospherics/unary/atmosanalyze(var/mob/user)
+ return atmosanalyzer_scan(src, src.air_contents, user)
+
+/obj/machinery/atmospherics/binary/atmosanalyze(var/mob/user)
+ return atmosanalyzer_scan(src, src.air1, user)
+
+/obj/machinery/atmospherics/trinary/atmos_filter/atmosanalyze(var/mob/user)
+ return atmosanalyzer_scan(src, src.air1, user)
+
+/obj/machinery/atmospherics/trinary/mixer/atmosanalyze(var/mob/user)
+ return atmosanalyzer_scan(src, src.air3, user)
+
+/obj/machinery/atmospherics/omni/atmos_filter/atmosanalyze(var/mob/user)
+ return atmosanalyzer_scan(src, src.input.air, user)
+
+/obj/machinery/atmospherics/omni/mixer/atmosanalyze(var/mob/user)
+ return atmosanalyzer_scan(src, src.output.air, user)
+
+/obj/machinery/meter/atmosanalyze(var/mob/user)
+ var/datum/gas_mixture/mixture = null
+ if(src.target)
+ mixture = src.target.parent.air
+ return atmosanalyzer_scan(src, mixture, user)
+
/obj/machinery/power/rad_collector/atmosanalyze(var/mob/user)
if(P) return atmosanalyzer_scan(src, src.P.air_contents, user)