diff --git a/code/_globalvars/misc_globals.dm b/code/_globalvars/misc_globals.dm
index cd1c7816b1c..a053f08dada 100644
--- a/code/_globalvars/misc_globals.dm
+++ b/code/_globalvars/misc_globals.dm
@@ -45,8 +45,6 @@ GLOBAL_VAR_INIT(gametime_offset, 432000) // 12:00 in seconds
GLOBAL_DATUM_INIT(data_core, /datum/datacore, new) // Station datacore, manifest, etc
-GLOBAL_LIST_INIT(pipe_colors, list("grey" = PIPE_COLOR_GREY, "red" = PIPE_COLOR_RED, "blue" = PIPE_COLOR_BLUE, "cyan" = PIPE_COLOR_CYAN, "green" = PIPE_COLOR_GREEN, "yellow" = PIPE_COLOR_YELLOW, "purple" = PIPE_COLOR_PURPLE))
-
/// Global list of all /datum/mod_theme
GLOBAL_LIST_INIT(mod_themes, setup_mod_themes())
diff --git a/code/controllers/subsystem/SSair.dm b/code/controllers/subsystem/SSair.dm
index fa9fbd8b6b7..6da9b4916c1 100644
--- a/code/controllers/subsystem/SSair.dm
+++ b/code/controllers/subsystem/SSair.dm
@@ -57,9 +57,6 @@ SUBSYSTEM_DEF(air)
/// A list of atmos machinery to set up in Initialize.
var/list/machinery_to_construct = list()
- /// Pipe overlay/underlay icon manager
- var/datum/pipe_icon_manager/icon_manager
-
/// An arbitrary list of stuff currently being processed.
var/list/currentrun = list()
@@ -138,7 +135,6 @@ SUBSYSTEM_DEF(air)
in_milla_safe_code = TRUE
setup_overlays() // Assign icons and such for gas-turf-overlays
- icon_manager = new() // Sets up icon manager for pipes
setup_allturfs()
setup_write_to_milla()
setup_atmos_machinery(GLOB.machines)
@@ -154,7 +150,6 @@ SUBSYSTEM_DEF(air)
pipenets = SSair.pipenets
atmos_machinery = SSair.atmos_machinery
machinery_to_construct = SSair.machinery_to_construct
- icon_manager = SSair.icon_manager
currentrun = SSair.currentrun
currentpart = SSair.currentpart
is_synchronous = SSair.is_synchronous
diff --git a/code/game/objects/items/devices/painter/pipe_painter.dm b/code/game/objects/items/devices/painter/pipe_painter.dm
index 879533899fb..85770060657 100644
--- a/code/game/objects/items/devices/painter/pipe_painter.dm
+++ b/code/game/objects/items/devices/painter/pipe_painter.dm
@@ -7,7 +7,7 @@
/datum/painter/pipe/New()
..()
if(!length(modes))
- for(var/C in GLOB.pipe_colors)
+ for(var/C in GLOB.pipe_icon_manager.pipe_colors)
modes += "[C]"
paint_setting = pick(modes)
@@ -25,7 +25,7 @@
if(is_type_in_list(P, blacklisted_pipes))
return
- if(P.pipe_color == GLOB.pipe_colors[paint_setting])
+ if(P.pipe_color == GLOB.pipe_icon_manager.pipe_colors[paint_setting])
to_chat(user, "This pipe is aready painted [paint_setting]!")
return
@@ -34,5 +34,5 @@
to_chat(user, "You must remove the flooring first.")
return
- P.change_color(GLOB.pipe_colors[paint_setting])
+ P.change_color(GLOB.pipe_icon_manager.pipe_colors[paint_setting])
return TRUE
diff --git a/code/game/objects/items/devices/painter/window_painter.dm b/code/game/objects/items/devices/painter/window_painter.dm
index 92671f7fc71..20ddaf7d78b 100644
--- a/code/game/objects/items/devices/painter/window_painter.dm
+++ b/code/game/objects/items/devices/painter/window_painter.dm
@@ -20,17 +20,17 @@
var/obj/structure/window/W = target
if(is_type_in_list(target, polarized_windows))
- if((W.opacity && W.old_color == GLOB.pipe_colors[paint_setting]) || (!W.opacity && W.color == GLOB.pipe_colors[paint_setting]))
+ if((W.opacity && W.old_color == GLOB.pipe_icon_manager.pipe_colors[paint_setting]) || (!W.opacity && W.color == GLOB.pipe_icon_manager.pipe_colors[paint_setting]))
to_chat(user, "This window is aready painted [paint_setting]!")
return
if(!W.opacity)
- W.color = GLOB.pipe_colors[paint_setting]
- W.old_color = GLOB.pipe_colors[paint_setting]
+ W.color = GLOB.pipe_icon_manager.pipe_colors[paint_setting]
+ W.old_color = GLOB.pipe_icon_manager.pipe_colors[paint_setting]
return TRUE
- if(W.color == GLOB.pipe_colors[paint_setting])
+ if(W.color == GLOB.pipe_icon_manager.pipe_colors[paint_setting])
to_chat(user, "This window is aready painted [paint_setting]!")
return
- W.color = GLOB.pipe_colors[paint_setting]
+ W.color = GLOB.pipe_icon_manager.pipe_colors[paint_setting]
return TRUE
diff --git a/code/modules/atmospherics/machinery/atmospherics.dm b/code/modules/atmospherics/machinery/atmospherics.dm
index a42659c1302..af620e41e27 100644
--- a/code/modules/atmospherics/machinery/atmospherics.dm
+++ b/code/modules/atmospherics/machinery/atmospherics.dm
@@ -106,7 +106,7 @@ Pipelines + Other Objects -> Pipe network
pipe_image.plane = HUD_PLANE
/obj/machinery/atmospherics/proc/check_icon_cache()
- if(!istype(SSair.icon_manager))
+ if(!istype(GLOB.pipe_icon_manager))
return FALSE
return TRUE
@@ -121,17 +121,14 @@ Pipelines + Other Objects -> Pipe network
/obj/machinery/atmospherics/proc/add_underlay(turf/T, obj/machinery/atmospherics/node, direction, icon_connect_type)
if(node)
if(T.intact && node.level == 1 && istype(node, /obj/machinery/atmospherics/pipe) && !T.transparent_floor)
- //underlays += SSair.icon_manager.get_atmos_icon("underlay_down", direction, color_cache_name(node))
- underlays += SSair.icon_manager.get_atmos_icon("underlay", direction, color_cache_name(node), "down" + icon_connect_type)
+ underlays += GLOB.pipe_icon_manager.get_atmos_icon("underlay", direction, color_cache_name(node), "down" + icon_connect_type)
else
- //underlays += SSair.icon_manager.get_atmos_icon("underlay_intact", direction, color_cache_name(node))
- underlays += SSair.icon_manager.get_atmos_icon("underlay", direction, color_cache_name(node), "intact" + icon_connect_type)
+ underlays += GLOB.pipe_icon_manager.get_atmos_icon("underlay", direction, color_cache_name(node), "intact" + icon_connect_type)
else
if(T.transparent_floor) //we want to keep pipes under transparent floors connected normally
- underlays += SSair.icon_manager.get_atmos_icon("underlay", direction, color_cache_name(node), "intact" + icon_connect_type)
+ underlays += GLOB.pipe_icon_manager.get_atmos_icon("underlay", direction, color_cache_name(node), "intact" + icon_connect_type)
else
- //underlays += SSair.icon_manager.get_atmos_icon("underlay_exposed", direction, pipe_color)
- underlays += SSair.icon_manager.get_atmos_icon("underlay", direction, color_cache_name(node), "exposed" + icon_connect_type)
+ underlays += GLOB.pipe_icon_manager.get_atmos_icon("underlay", direction, color_cache_name(node), "exposed" + icon_connect_type)
/obj/machinery/atmospherics/proc/update_underlays()
return check_icon_cache()
@@ -401,14 +398,14 @@ Pipelines + Other Objects -> Pipe network
/obj/machinery/atmospherics/proc/add_underlay_adapter(turf/T, obj/machinery/atmospherics/node, direction, icon_connect_type) //modified from add_underlay, does not make exposed underlays
if(node)
if(T.intact && node.level == 1 && istype(node, /obj/machinery/atmospherics/pipe) && !T.transparent_floor)
- underlays += SSair.icon_manager.get_atmos_icon("underlay", direction, color_cache_name(node), "down" + icon_connect_type)
+ underlays += GLOB.pipe_icon_manager.get_atmos_icon("underlay", direction, color_cache_name(node), "down" + icon_connect_type)
else
- underlays += SSair.icon_manager.get_atmos_icon("underlay", direction, color_cache_name(node), "intact" + icon_connect_type)
+ underlays += GLOB.pipe_icon_manager.get_atmos_icon("underlay", direction, color_cache_name(node), "intact" + icon_connect_type)
else
if(T.transparent_floor) //we want to keep pipes under transparent floors connected normally
- underlays += SSair.icon_manager.get_atmos_icon("underlay", direction, color_cache_name(node), "intact" + icon_connect_type)
+ underlays += GLOB.pipe_icon_manager.get_atmos_icon("underlay", direction, color_cache_name(node), "intact" + icon_connect_type)
else
- underlays += SSair.icon_manager.get_atmos_icon("underlay", direction, color_cache_name(node), "retracted" + icon_connect_type)
+ underlays += GLOB.pipe_icon_manager.get_atmos_icon("underlay", direction, color_cache_name(node), "retracted" + icon_connect_type)
/obj/machinery/atmospherics/singularity_pull(S, current_size)
if(current_size >= STAGE_FIVE)
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 6bf7a368259..e252d7598b6 100644
--- a/code/modules/atmospherics/machinery/components/unary_devices/vent_pump.dm
+++ b/code/modules/atmospherics/machinery/components/unary_devices/vent_pump.dm
@@ -87,7 +87,7 @@
else
vent_icon += "[on ? "[releasing ? "out" : "in"]" : "off"]"
- . += SSair.icon_manager.get_atmos_icon("device", state = vent_icon)
+ . += GLOB.pipe_icon_manager.get_atmos_icon("device", state = vent_icon)
update_pipe_image()
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 07a93295c0f..5ba4847cf80 100644
--- a/code/modules/atmospherics/machinery/components/unary_devices/vent_scrubber.dm
+++ b/code/modules/atmospherics/machinery/components/unary_devices/vent_scrubber.dm
@@ -82,7 +82,7 @@
if(welded)
scrubber_icon = "scrubberweld"
- . += SSair.icon_manager.get_atmos_icon("device", state = scrubber_icon)
+ . += GLOB.pipe_icon_manager.get_atmos_icon("device", state = scrubber_icon)
update_pipe_image()
/obj/machinery/atmospherics/unary/vent_scrubber/update_underlays()
diff --git a/code/modules/atmospherics/machinery/datum_icon_manager.dm b/code/modules/atmospherics/machinery/datum_icon_manager.dm
index f7a345a7c9a..50e22fde14f 100644
--- a/code/modules/atmospherics/machinery/datum_icon_manager.dm
+++ b/code/modules/atmospherics/machinery/datum_icon_manager.dm
@@ -1,3 +1,4 @@
+GLOBAL_DATUM_INIT(pipe_icon_manager, /datum/pipe_icon_manager, new)
//--------------------------------------------
// Pipe colors
//
@@ -7,15 +8,15 @@
//--------------------------------------------
/proc/pipe_color_lookup(color)
- for(var/C in GLOB.pipe_colors)
- if(color == GLOB.pipe_colors[C])
+ for(var/C in GLOB.pipe_icon_manager.pipe_colors)
+ if(color == GLOB.pipe_icon_manager.pipe_colors[C])
return "[C]"
/proc/pipe_color_check(color)
if(!color)
return 1
- for(var/C in GLOB.pipe_colors)
- if(color == GLOB.pipe_colors[C])
+ for(var/C in GLOB.pipe_icon_manager.pipe_colors)
+ if(color == GLOB.pipe_icon_manager.pipe_colors[C])
return 1
return 0
@@ -28,11 +29,16 @@
var/list/manifold_icons[]
var/list/device_icons[]
var/list/underlays[]
- //var/list/underlays_down[]
- //var/list/underlays_exposed[]
- //var/list/underlays_intact[]
- //var/list/pipe_underlays_exposed[]
- //var/list/pipe_underlays_intact[]
+
+ var/list/pipe_colors = list(
+ "blue" = PIPE_COLOR_BLUE,
+ "cyan" = PIPE_COLOR_CYAN,
+ "green" = PIPE_COLOR_GREEN,
+ "grey" = PIPE_COLOR_GREY,
+ "purple" = PIPE_COLOR_PURPLE,
+ "red" = PIPE_COLOR_RED,
+ "yellow" = PIPE_COLOR_YELLOW,
+ )
/datum/pipe_icon_manager/New()
check_icons()
@@ -54,16 +60,6 @@
return device_icons[state]
if("underlay")
return underlays[state + dir + color]
- //if("underlay_intact")
- // return underlays_intact[state + dir + color]
- // if("underlay_exposed")
- // return underlays_exposed[state + dir + color]
- // if("underlay_down")
- // return underlays_down[state + dir + color]
- // if("pipe_underlay_exposed")
- // return pipe_underlays_exposed[state + dir + color]
- // if("pipe_underlay_intact")
- // return pipe_underlays_intact[state + dir + color]
/datum/pipe_icon_manager/proc/check_icons()
if(!pipe_icons)
@@ -72,7 +68,6 @@
gen_manifold_icons()
if(!device_icons)
gen_device_icons()
- //if(!underlays_intact || !underlays_down || !underlays_exposed || !pipe_underlays_exposed || !pipe_underlays_intact)
if(!underlays)
gen_underlay_icons()
@@ -90,10 +85,10 @@
var/image/I = image('icons/atmos/pipes.dmi', icon_state = state)
pipe_icons[cache_name] = I
- for(var/pipe_color in GLOB.pipe_colors)
+ for(var/pipe_color in pipe_colors)
I = image('icons/atmos/pipes.dmi', icon_state = state)
- I.color = GLOB.pipe_colors[pipe_color]
- pipe_icons[state + "[GLOB.pipe_colors[pipe_color]]"] = I
+ I.color = pipe_colors[pipe_color]
+ pipe_icons[state + "[pipe_colors[pipe_color]]"] = I
pipe = new ('icons/atmos/heat.dmi')
for(var/state in pipe.IconStates())
@@ -122,10 +117,10 @@
if(findtext(state, "core") || findtext(state, "4way"))
var/image/I = image('icons/atmos/manifold.dmi', icon_state = state)
manifold_icons[state] = I
- for(var/pipe_color in GLOB.pipe_colors)
+ for(var/pipe_color in pipe_colors)
I = image('icons/atmos/manifold.dmi', icon_state = state)
- I.color = GLOB.pipe_colors[pipe_color]
- manifold_icons[state + GLOB.pipe_colors[pipe_color]] = I
+ I.color = pipe_colors[pipe_color]
+ manifold_icons[state + pipe_colors[pipe_color]] = I
/datum/pipe_icon_manager/proc/gen_device_icons()
if(!device_icons)
@@ -161,7 +156,7 @@
for(var/D in GLOB.cardinal)
var/image/I = image(icon('icons/atmos/pipe_underlays.dmi', icon_state = state, dir = D), layer = GAS_PIPE_HIDDEN_LAYER)
underlays[cache_name + "[D]"] = I
- for(var/pipe_color in GLOB.pipe_colors)
+ for(var/pipe_color in pipe_colors)
I = image(icon('icons/atmos/pipe_underlays.dmi', icon_state = state, dir = D), layer = GAS_PIPE_HIDDEN_LAYER)
- I.color = GLOB.pipe_colors[pipe_color]
- underlays[state + "[D]" + "[GLOB.pipe_colors[pipe_color]]"] = I
+ I.color = pipe_colors[pipe_color]
+ underlays[state + "[D]" + "[pipe_colors[pipe_color]]"] = I
diff --git a/code/modules/atmospherics/machinery/pipes/cap.dm b/code/modules/atmospherics/machinery/pipes/cap.dm
index d3a7c706421..ec2ba5d3424 100644
--- a/code/modules/atmospherics/machinery/pipes/cap.dm
+++ b/code/modules/atmospherics/machinery/pipes/cap.dm
@@ -60,7 +60,7 @@
/obj/machinery/atmospherics/pipe/cap/update_overlays()
. = ..()
alpha = 255
- . += SSair.icon_manager.get_atmos_icon("pipe", null, pipe_color, "cap" + icon_connect_type)
+ . += GLOB.pipe_icon_manager.get_atmos_icon("pipe", null, pipe_color, "cap" + icon_connect_type)
/obj/machinery/atmospherics/pipe/cap/atmos_init()
..()
diff --git a/code/modules/atmospherics/machinery/pipes/manifold.dm b/code/modules/atmospherics/machinery/pipes/manifold.dm
index c8a59b5784c..a8e5c4611aa 100644
--- a/code/modules/atmospherics/machinery/pipes/manifold.dm
+++ b/code/modules/atmospherics/machinery/pipes/manifold.dm
@@ -116,8 +116,8 @@
/obj/machinery/atmospherics/pipe/manifold/update_overlays()
. = ..()
alpha = 255
- . += SSair.icon_manager.get_atmos_icon("manifold", null, pipe_color, "core" + icon_connect_type)
- . += SSair.icon_manager.get_atmos_icon("manifold", null, null, "clamps" + icon_connect_type)
+ . += GLOB.pipe_icon_manager.get_atmos_icon("manifold", null, pipe_color, "core" + icon_connect_type)
+ . += GLOB.pipe_icon_manager.get_atmos_icon("manifold", null, null, "clamps" + icon_connect_type)
update_underlays()
/obj/machinery/atmospherics/pipe/manifold/update_underlays()
diff --git a/code/modules/atmospherics/machinery/pipes/manifold4w.dm b/code/modules/atmospherics/machinery/pipes/manifold4w.dm
index 000a6fb2190..e63db8c3bc1 100644
--- a/code/modules/atmospherics/machinery/pipes/manifold4w.dm
+++ b/code/modules/atmospherics/machinery/pipes/manifold4w.dm
@@ -89,8 +89,8 @@
/obj/machinery/atmospherics/pipe/manifold4w/update_overlays()
. = ..()
alpha = 255
- . += SSair.icon_manager.get_atmos_icon("manifold", null, pipe_color, "4way" + icon_connect_type)
- . += SSair.icon_manager.get_atmos_icon("manifold", null, null, "clamps_4way" + icon_connect_type)
+ . += GLOB.pipe_icon_manager.get_atmos_icon("manifold", null, pipe_color, "4way" + icon_connect_type)
+ . += GLOB.pipe_icon_manager.get_atmos_icon("manifold", null, null, "clamps_4way" + icon_connect_type)
update_underlays()
/obj/machinery/atmospherics/pipe/manifold4w/update_underlays()
diff --git a/code/modules/atmospherics/machinery/pipes/simple/pipe_simple.dm b/code/modules/atmospherics/machinery/pipes/simple/pipe_simple.dm
index 477ccab1455..315048464d4 100644
--- a/code/modules/atmospherics/machinery/pipes/simple/pipe_simple.dm
+++ b/code/modules/atmospherics/machinery/pipes/simple/pipe_simple.dm
@@ -122,9 +122,9 @@
. = ..()
alpha = 255
if(node1 && node2)
- . += SSair.icon_manager.get_atmos_icon("pipe", null, pipe_color, pipe_icon + "intact" + icon_connect_type)
+ . += GLOB.pipe_icon_manager.get_atmos_icon("pipe", null, pipe_color, pipe_icon + "intact" + icon_connect_type)
else
- . += SSair.icon_manager.get_atmos_icon("pipe", null, pipe_color, pipe_icon + "exposed[node1?1:0][node2?1:0]" + icon_connect_type)
+ . += GLOB.pipe_icon_manager.get_atmos_icon("pipe", null, pipe_color, pipe_icon + "exposed[node1?1:0][node2?1:0]" + icon_connect_type)
// A check to make sure both nodes exist - self-delete if they aren't present
/obj/machinery/atmospherics/pipe/simple/check_nodes_exist()
diff --git a/code/modules/atmospherics/machinery/pipes/simple/pipe_simple_hidden.dm b/code/modules/atmospherics/machinery/pipes/simple/pipe_simple_hidden.dm
index 98fdb86546b..4a62c341c91 100644
--- a/code/modules/atmospherics/machinery/pipes/simple/pipe_simple_hidden.dm
+++ b/code/modules/atmospherics/machinery/pipes/simple/pipe_simple_hidden.dm
@@ -49,7 +49,7 @@
/obj/machinery/atmospherics/pipe/simple/hidden/universal/update_overlays()
. = list()
alpha = 255
- . += SSair.icon_manager.get_atmos_icon("pipe", color = pipe_color, state = "universal")
+ . += GLOB.pipe_icon_manager.get_atmos_icon("pipe", color = pipe_color, state = "universal")
update_underlays()
/obj/machinery/atmospherics/pipe/simple/hidden/universal/update_underlays()
diff --git a/code/modules/atmospherics/machinery/pipes/simple/pipe_simple_visible.dm b/code/modules/atmospherics/machinery/pipes/simple/pipe_simple_visible.dm
index 42259af6e6d..27d1a0df0ad 100644
--- a/code/modules/atmospherics/machinery/pipes/simple/pipe_simple_visible.dm
+++ b/code/modules/atmospherics/machinery/pipes/simple/pipe_simple_visible.dm
@@ -66,7 +66,7 @@
/obj/machinery/atmospherics/pipe/simple/visible/universal/update_overlays()
. = list()
alpha = 255
- . += SSair.icon_manager.get_atmos_icon("pipe", color = pipe_color, state = "universal")
+ . += GLOB.pipe_icon_manager.get_atmos_icon("pipe", color = pipe_color, state = "universal")
update_underlays()
/obj/machinery/atmospherics/pipe/simple/visible/universal/update_underlays()