diff --git a/code/ATMOSPHERICS/components/binary_devices/binary_atmos_base.dm b/code/ATMOSPHERICS/components/binary_devices/binary_atmos_base.dm
index 4a9b4e3f650..a869677a1c4 100644
--- a/code/ATMOSPHERICS/components/binary_devices/binary_atmos_base.dm
+++ b/code/ATMOSPHERICS/components/binary_devices/binary_atmos_base.dm
@@ -94,6 +94,11 @@
update_icon()
+/obj/machinery/atmospherics/binary/construction()
+ ..()
+ parent1.update = 1
+ parent2.update = 1
+
/obj/machinery/atmospherics/binary/build_network()
if(!parent1)
parent1 = new /datum/pipeline()
diff --git a/code/ATMOSPHERICS/components/trinary_devices/filter.dm b/code/ATMOSPHERICS/components/trinary_devices/filter.dm
index afa56656c98..839d3ecde24 100644
--- a/code/ATMOSPHERICS/components/trinary_devices/filter.dm
+++ b/code/ATMOSPHERICS/components/trinary_devices/filter.dm
@@ -52,12 +52,13 @@ Filter types:
icon_state = "filter_on[flipped?"_f":""]"
return
- on = 0
icon_state = "filter_off[flipped?"_f":""]"
/obj/machinery/atmospherics/trinary/filter/power_change()
var/old_stat = stat
..()
+ if(stat & NOPOWER)
+ on = 0
if(old_stat != stat)
update_icon()
diff --git a/code/ATMOSPHERICS/components/trinary_devices/mixer.dm b/code/ATMOSPHERICS/components/trinary_devices/mixer.dm
index a919ee2ea3b..c70dce74cf9 100644
--- a/code/ATMOSPHERICS/components/trinary_devices/mixer.dm
+++ b/code/ATMOSPHERICS/components/trinary_devices/mixer.dm
@@ -26,12 +26,13 @@
icon_state = "mixer_on[flipped?"_f":""]"
return
- on = 0
icon_state = "mixer_off[flipped?"_f":""]"
/obj/machinery/atmospherics/trinary/mixer/power_change()
var/old_stat = stat
..()
+ if(stat & NOPOWER)
+ on = 0
if(old_stat != stat)
update_icon()
diff --git a/code/ATMOSPHERICS/components/trinary_devices/trinary_base.dm b/code/ATMOSPHERICS/components/trinary_devices/trinary_base.dm
index d687da775df..0db4482b153 100644
--- a/code/ATMOSPHERICS/components/trinary_devices/trinary_base.dm
+++ b/code/ATMOSPHERICS/components/trinary_devices/trinary_base.dm
@@ -132,6 +132,12 @@ Housekeeping and pipe network stuff below
update_icon()
+/obj/machinery/atmospherics/trinary/construction()
+ ..()
+ parent1.update = 1
+ parent2.update = 1
+ parent3.update = 1
+
/obj/machinery/atmospherics/trinary/build_network()
if(!parent1)
parent1 = new /datum/pipeline()
diff --git a/code/ATMOSPHERICS/components/unary/unary_base.dm b/code/ATMOSPHERICS/components/unary/unary_base.dm
index b0574071ee8..5c3286df0cf 100644
--- a/code/ATMOSPHERICS/components/unary/unary_base.dm
+++ b/code/ATMOSPHERICS/components/unary/unary_base.dm
@@ -69,6 +69,10 @@ Housekeeping and pipe network stuff below
showpipe = 1
update_icon()
+/obj/machinery/atmospherics/unary/construction()
+ ..()
+ parent.update = 1
+
/obj/machinery/atmospherics/unary/default_change_direction_wrench(mob/user, obj/item/weapon/wrench/W)
if(..())
initialize_directions = dir
diff --git a/code/ATMOSPHERICS/pipes.dm b/code/ATMOSPHERICS/pipes.dm
index 0725136d201..404387a84f1 100644
--- a/code/ATMOSPHERICS/pipes.dm
+++ b/code/ATMOSPHERICS/pipes.dm
@@ -38,6 +38,7 @@
/obj/machinery/atmospherics/pipe/attackby(obj/item/weapon/W, mob/user)
if(istype(W, /obj/item/device/analyzer))
atmosanalyzer_scan(parent.air, user)
+ return
if(istype(W,/obj/item/device/pipe_painter) || istype(W,/obj/item/weapon/pipe_dispenser))
return
diff --git a/code/game/objects/items/weapons/RPD.dm b/code/game/objects/items/weapons/RPD.dm
index b601edeeb0d..64185d5d5a0 100644
--- a/code/game/objects/items/weapons/RPD.dm
+++ b/code/game/objects/items/weapons/RPD.dm
@@ -139,6 +139,7 @@ var/global/list/RPD_recipes=list(
var/p_type = 0
var/p_conntype = 0
var/p_dir = 1
+ var/p_flipped = 0
var/p_class = ATMOS_MODE
var/p_disposal = 0
var/list/paint_colors = list(
@@ -161,11 +162,11 @@ var/global/list/RPD_recipes=list(
/obj/item/weapon/pipe_dispenser/attack_self(mob/user as mob)
show_menu(user)
-/obj/item/weapon/pipe_dispenser/proc/render_dir_img(var/_dir,var/pic,var/title)
+/obj/item/weapon/pipe_dispenser/proc/render_dir_img(var/_dir,var/pic,var/title,var/flipped=0)
var/selected=""
if(_dir == p_dir)
selected=" class=\"selected\""
- return ""
+ return "
"
/obj/item/weapon/pipe_dispenser/proc/show_menu(mob/user as mob)
if(!user || !src) return 0
@@ -230,8 +231,8 @@ var/global/list/RPD_recipes=list(
else
dirsel+={"
- ╝
- ╚
+ ╝
+ ╚
- ╗
- ╔
+ ╗
+ ╔
- ╦
- ╣
+ ╦
+ ╣
- ╩
- ╠
+ ╩
+ ╠
- ╦
- ╣
+ ╦
+ ╣
- ╩
- ╠
+ ╩
+ ╠
- ╦
- ╣
+ ╦
+ ╣
- ╩
- ╠
+ ╩
+ ╠