From b4d4ce77c14e1bf949166b0667cfb4151b765fb1 Mon Sep 17 00:00:00 2001 From: monster860 Date: Thu, 20 Dec 2018 14:41:56 -0500 Subject: [PATCH] Fix multi-layer pipe underlays (#42015) --- code/modules/atmospherics/machinery/atmosmachinery.dm | 7 ++++--- .../components/binary_devices/dp_vent_pump.dm | 3 +-- .../machinery/components/components_base.dm | 10 +++------- .../machinery/components/trinary_devices/filter.dm | 5 ++--- .../machinery/components/trinary_devices/mixer.dm | 5 ++--- .../components/unary_devices/portables_connector.dm | 3 +-- .../machinery/components/unary_devices/vent_pump.dm | 3 +-- .../components/unary_devices/vent_scrubber.dm | 9 ++++----- .../atmospherics/machinery/pipes/layermanifold.dm | 5 ++--- 9 files changed, 20 insertions(+), 30 deletions(-) diff --git a/code/modules/atmospherics/machinery/atmosmachinery.dm b/code/modules/atmospherics/machinery/atmosmachinery.dm index b57b76bdf4c..0dc59a0a5d1 100644 --- a/code/modules/atmospherics/machinery/atmosmachinery.dm +++ b/code/modules/atmospherics/machinery/atmosmachinery.dm @@ -228,7 +228,7 @@ pressures = int_air.return_pressure() - env_air.return_pressure() user.visible_message("[user] is sent flying by pressure!","The pressure sends you flying!") - + // if get_dir(src, user) is not 0, target is the edge_target_turf on that dir // otherwise, edge_target_turf uses a random cardinal direction // range is pressures / 250 @@ -245,19 +245,20 @@ transfer_fingerprints_to(stored) ..() -/obj/machinery/atmospherics/proc/getpipeimage(iconset, iconstate, direction, col=rgb(255,255,255)) +/obj/machinery/atmospherics/proc/getpipeimage(iconset, iconstate, direction, col=rgb(255,255,255), piping_layer=2) //Add identifiers for the iconset if(iconsetids[iconset] == null) iconsetids[iconset] = num2text(iconsetids.len + 1) //Generate a unique identifier for this image combination - var/identifier = iconsetids[iconset] + "_[iconstate]_[direction]_[col]" + var/identifier = iconsetids[iconset] + "_[iconstate]_[direction]_[col]_[piping_layer]" if((!(. = pipeimages[identifier]))) var/image/pipe_overlay pipe_overlay = . = pipeimages[identifier] = image(iconset, iconstate, dir = direction) pipe_overlay.color = col + PIPING_LAYER_SHIFT(pipe_overlay, piping_layer) /obj/machinery/atmospherics/on_construction(obj_color, set_layer) if(can_unwrench) diff --git a/code/modules/atmospherics/machinery/components/binary_devices/dp_vent_pump.dm b/code/modules/atmospherics/machinery/components/binary_devices/dp_vent_pump.dm index 767640ab8c8..8ad990b6095 100644 --- a/code/modules/atmospherics/machinery/components/binary_devices/dp_vent_pump.dm +++ b/code/modules/atmospherics/machinery/components/binary_devices/dp_vent_pump.dm @@ -38,8 +38,7 @@ /obj/machinery/atmospherics/components/binary/dp_vent_pump/update_icon_nopipes() cut_overlays() if(showpipe) - var/image/cap = getpipeimage(icon, "dpvent_cap", dir) - PIPING_LAYER_SHIFT(cap, piping_layer) + var/image/cap = getpipeimage(icon, "dpvent_cap", dir, piping_layer = piping_layer) add_overlay(cap) if(!on || !is_operational()) diff --git a/code/modules/atmospherics/machinery/components/components_base.dm b/code/modules/atmospherics/machinery/components/components_base.dm index 41e1f3490fd..1c0ddd4554b 100644 --- a/code/modules/atmospherics/machinery/components/components_base.dm +++ b/code/modules/atmospherics/machinery/components/components_base.dm @@ -59,13 +59,9 @@ /obj/machinery/atmospherics/components/proc/get_pipe_underlay(state, dir, color = null) if(color) - . = getpipeimage('icons/obj/atmospherics/components/binary_devices.dmi', state, dir, color) + . = getpipeimage('icons/obj/atmospherics/components/binary_devices.dmi', state, dir, color, piping_layer = shift_underlay_only ? piping_layer : 2) else - . = getpipeimage('icons/obj/atmospherics/components/binary_devices.dmi', state, dir) - - if(shift_underlay_only) - var/image/I = . - PIPING_LAYER_SHIFT(I, piping_layer) + . = getpipeimage('icons/obj/atmospherics/components/binary_devices.dmi', state, dir, piping_layer = shift_underlay_only ? piping_layer : 2) // Pipenet stuff; housekeeping @@ -169,4 +165,4 @@ // Tool acts /obj/machinery/atmospherics/components/analyzer_act(mob/living/user, obj/item/I) - atmosanalyzer_scan(airs, user, src) \ No newline at end of file + atmosanalyzer_scan(airs, user, src) diff --git a/code/modules/atmospherics/machinery/components/trinary_devices/filter.dm b/code/modules/atmospherics/machinery/components/trinary_devices/filter.dm index 024e038d3b8..94c61b462c6 100644 --- a/code/modules/atmospherics/machinery/components/trinary_devices/filter.dm +++ b/code/modules/atmospherics/machinery/components/trinary_devices/filter.dm @@ -34,11 +34,10 @@ var/image/cap if(node) - cap = getpipeimage(icon, "cap", direction, node.pipe_color) + cap = getpipeimage(icon, "cap", direction, node.pipe_color, piping_layer = piping_layer) else - cap = getpipeimage(icon, "cap", direction) + cap = getpipeimage(icon, "cap", direction, piping_layer = piping_layer) - PIPING_LAYER_SHIFT(cap, piping_layer) add_overlay(cap) return ..() diff --git a/code/modules/atmospherics/machinery/components/trinary_devices/mixer.dm b/code/modules/atmospherics/machinery/components/trinary_devices/mixer.dm index 67080fc2749..08088d4495d 100644 --- a/code/modules/atmospherics/machinery/components/trinary_devices/mixer.dm +++ b/code/modules/atmospherics/machinery/components/trinary_devices/mixer.dm @@ -25,11 +25,10 @@ var/image/cap if(node) - cap = getpipeimage(icon, "cap", direction, node.pipe_color) + cap = getpipeimage(icon, "cap", direction, node.pipe_color, piping_layer = piping_layer) else - cap = getpipeimage(icon, "cap", direction) + cap = getpipeimage(icon, "cap", direction, piping_layer = piping_layer) - PIPING_LAYER_SHIFT(cap, piping_layer) add_overlay(cap) return ..() diff --git a/code/modules/atmospherics/machinery/components/unary_devices/portables_connector.dm b/code/modules/atmospherics/machinery/components/unary_devices/portables_connector.dm index b65caaa759c..851085b0437 100644 --- a/code/modules/atmospherics/machinery/components/unary_devices/portables_connector.dm +++ b/code/modules/atmospherics/machinery/components/unary_devices/portables_connector.dm @@ -28,8 +28,7 @@ /obj/machinery/atmospherics/components/unary/portables_connector/update_icon_nopipes() icon_state = "connector" if(showpipe) - var/image/cap = getpipeimage(icon, "connector_cap", initialize_directions) - PIPING_LAYER_SHIFT(cap, piping_layer) + var/image/cap = getpipeimage(icon, "connector_cap", initialize_directions, piping_layer = piping_layer) add_overlay(cap) /obj/machinery/atmospherics/components/unary/portables_connector/process_atmos() diff --git a/code/modules/atmospherics/machinery/components/unary_devices/vent_pump.dm b/code/modules/atmospherics/machinery/components/unary_devices/vent_pump.dm index 8343c5d0e15..5b46aa4397f 100644 --- a/code/modules/atmospherics/machinery/components/unary_devices/vent_pump.dm +++ b/code/modules/atmospherics/machinery/components/unary_devices/vent_pump.dm @@ -52,8 +52,7 @@ /obj/machinery/atmospherics/components/unary/vent_pump/update_icon_nopipes() cut_overlays() if(showpipe) - var/image/cap = getpipeimage(icon, "vent_cap", initialize_directions) - PIPING_LAYER_SHIFT(cap, piping_layer) + var/image/cap = getpipeimage(icon, "vent_cap", initialize_directions, piping_layer = piping_layer) add_overlay(cap) if(welded) diff --git a/code/modules/atmospherics/machinery/components/unary_devices/vent_scrubber.dm b/code/modules/atmospherics/machinery/components/unary_devices/vent_scrubber.dm index 14be89f373a..2984a40a461 100644 --- a/code/modules/atmospherics/machinery/components/unary_devices/vent_scrubber.dm +++ b/code/modules/atmospherics/machinery/components/unary_devices/vent_scrubber.dm @@ -69,8 +69,7 @@ /obj/machinery/atmospherics/components/unary/vent_scrubber/update_icon_nopipes() cut_overlays() if(showpipe) - var/image/cap = getpipeimage(icon, "scrub_cap", initialize_directions) - PIPING_LAYER_SHIFT(cap, piping_layer) + var/image/cap = getpipeimage(icon, "scrub_cap", initialize_directions, piping_layer = piping_layer) add_overlay(cap) if(welded) @@ -97,7 +96,7 @@ /obj/machinery/atmospherics/components/unary/vent_scrubber/proc/broadcast_status() if(!radio_connection) return FALSE - + var/list/f_types = list() for(var/path in GLOB.meta_gas_info) var/list/gas = GLOB.meta_gas_info[path] @@ -186,7 +185,7 @@ air_contents.merge(filtered_out) tile.assume_air(removed) tile.air_update_turf() - + else //Just siphoning all air var/transfer_moles = environment.total_moles()*(volume_rate/environment.volume) @@ -284,7 +283,7 @@ if(. && on && is_operational()) to_chat(user, "You cannot unwrench [src], turn it off first!") return FALSE - + /obj/machinery/atmospherics/components/unary/vent_scrubber/examine(mob/user) ..() if(welded) diff --git a/code/modules/atmospherics/machinery/pipes/layermanifold.dm b/code/modules/atmospherics/machinery/pipes/layermanifold.dm index 68e796f8f53..6d23cbd5d23 100644 --- a/code/modules/atmospherics/machinery/pipes/layermanifold.dm +++ b/code/modules/atmospherics/machinery/pipes/layermanifold.dm @@ -61,12 +61,11 @@ var/image/I if(p_color) - I = getpipeimage(icon, "pipe", p_dir, p_color) + I = getpipeimage(icon, "pipe", p_dir, p_color, piping_layer = piping_layer) else - I = getpipeimage(icon, "pipe", p_dir) + I = getpipeimage(icon, "pipe", p_dir, piping_layer = piping_layer) I.layer = layer - 0.01 - PIPING_LAYER_SHIFT(I, p_layer) add_overlay(I) /obj/machinery/atmospherics/pipe/layer_manifold/SetInitDirections()