diff --git a/code/game/machinery/atmoalter/portable_atmospherics.dm b/code/game/machinery/atmoalter/portable_atmospherics.dm
index 8fbb27a351..586ef37525 100644
--- a/code/game/machinery/atmoalter/portable_atmospherics.dm
+++ b/code/game/machinery/atmoalter/portable_atmospherics.dm
@@ -11,76 +11,82 @@
var/maximum_pressure = 90*ONE_ATMOSPHERE
- New()
- ..()
+/obj/machinery/portable_atmospherics/New()
+ ..()
- air_contents.volume = volume
- air_contents.temperature = T20C
+ air_contents.volume = volume
+ air_contents.temperature = T20C
- return 1
+ return 1
- initialize()
- . = ..()
- spawn()
- var/obj/machinery/atmospherics/portables_connector/port = locate() in loc
- if(port)
- connect(port)
- update_icon()
-
- process()
- if(!connected_port) //only react when pipe_network will ont it do it for you
- //Allow for reactions
- air_contents.react()
- else
+/obj/machinery/portable_atmospherics/initialize()
+ . = ..()
+ spawn()
+ var/obj/machinery/atmospherics/portables_connector/port = locate() in loc
+ if(port)
+ connect(port)
update_icon()
- Del()
- del(air_contents)
+/obj/machinery/portable_atmospherics/process()
+ if(!connected_port) //only react when pipe_network will ont it do it for you
+ //Allow for reactions
+ air_contents.react()
+ else
+ update_icon()
- ..()
+/obj/machinery/portable_atmospherics/Del()
+ del(air_contents)
- update_icon()
- return null
+ ..()
- proc
+/obj/machinery/portable_atmospherics/update_icon()
+ return null
- connect(obj/machinery/atmospherics/portables_connector/new_port)
- //Make sure not already connected to something else
- if(connected_port || !new_port || new_port.connected_device)
- return 0
+/obj/machinery/portable_atmospherics/proc/connect(obj/machinery/atmospherics/portables_connector/new_port)
+ //Make sure not already connected to something else
+ if(connected_port || !new_port || new_port.connected_device)
+ return 0
- //Make sure are close enough for a valid connection
- if(new_port.loc != loc)
- return 0
+ //Make sure are close enough for a valid connection
+ if(new_port.loc != loc)
+ return 0
- //Perform the connection
- connected_port = new_port
- connected_port.connected_device = src
+ //Perform the connection
+ connected_port = new_port
+ connected_port.connected_device = src
- anchored = 1 //Prevent movement
+ anchored = 1 //Prevent movement
- //Actually enforce the air sharing
- var/datum/pipe_network/network = connected_port.return_network(src)
- if(network && !network.gases.Find(air_contents))
- network.gases += air_contents
- network.update = 1
+ //Actually enforce the air sharing
+ var/datum/pipe_network/network = connected_port.return_network(src)
+ if(network && !network.gases.Find(air_contents))
+ network.gases += air_contents
+ network.update = 1
- return 1
+ return 1
- disconnect()
- if(!connected_port)
- return 0
+/obj/machinery/portable_atmospherics/proc/disconnect()
+ if(!connected_port)
+ return 0
- var/datum/pipe_network/network = connected_port.return_network(src)
- if(network)
- network.gases -= air_contents
+ var/datum/pipe_network/network = connected_port.return_network(src)
+ if(network)
+ network.gases -= air_contents
- anchored = 0
+ anchored = 0
- connected_port.connected_device = null
- connected_port = null
+ connected_port.connected_device = null
+ connected_port = null
- return 1
+ return 1
+
+/obj/machinery/portable_atmospherics/proc/update_connected_network()
+ if(!connected_port)
+ return
+
+ var/datum/pipe_network/network = connected_port.return_network(src)
+ if (network)
+ network.update = 1
/obj/machinery/portable_atmospherics/attackby(var/obj/item/weapon/W as obj, var/mob/user as mob)
var/obj/icon = src
diff --git a/code/game/machinery/atmoalter/pump.dm b/code/game/machinery/atmoalter/pump.dm
index abf0b9e8de..718ffcb6b3 100644
--- a/code/game/machinery/atmoalter/pump.dm
+++ b/code/game/machinery/atmoalter/pump.dm
@@ -89,6 +89,8 @@
cell.use(power_draw * CELLRATE)
last_power_draw = power_draw
+ update_connected_network()
+
//ran out of charge
if (!cell.charge)
update_icon()
diff --git a/code/game/machinery/atmoalter/scrubber.dm b/code/game/machinery/atmoalter/scrubber.dm
index 5e358d0ee9..af0a452efe 100644
--- a/code/game/machinery/atmoalter/scrubber.dm
+++ b/code/game/machinery/atmoalter/scrubber.dm
@@ -70,6 +70,8 @@
cell.use(power_draw * CELLRATE)
last_power_draw = power_draw
+ update_connected_network()
+
//ran out of charge
if (!cell.charge)
update_icon()
@@ -152,7 +154,7 @@ Flow Rate Regulator: - - -