diff --git a/code/__DEFINES/atmos.dm b/code/__DEFINES/atmos.dm index 6cc3f6b3561..ae6f22c4f8d 100644 --- a/code/__DEFINES/atmos.dm +++ b/code/__DEFINES/atmos.dm @@ -139,4 +139,13 @@ #define CONNECT_TYPE_FUEL 16 #define CONNECT_TYPE_AUX 32 -var/global/list/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, "black" = PIPE_COLOR_BLACK, "purple" = PIPE_COLOR_PURPLE) +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, + "black" = PIPE_COLOR_BLACK, + "purple" = PIPE_COLOR_PURPLE +)) diff --git a/code/game/machinery/pipe/construction.dm b/code/game/machinery/pipe/construction.dm index 55e4ea5ba42..982545de2ee 100644 --- a/code/game/machinery/pipe/construction.dm +++ b/code/game/machinery/pipe/construction.dm @@ -14,6 +14,17 @@ level = 2 obj_flags = OBJ_FLAG_ROTATABLE +/obj/item/pipe/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) + . = ..() + var/pipe_color_check = color || PIPE_COLOR_GREY + var/found_color_name = "Unknown" + for(var/color_name in GLOB.pipe_colors) + var/color_value = GLOB.pipe_colors[color_name] + if(pipe_color_check == color_value) + found_color_name = color_name + break + . += "This pipe is: [capitalize(found_color_name)]" + /obj/item/pipe/New(var/loc, var/pipe_type, var/dir, var/obj/machinery/atmospherics/make_from) ..() if (make_from) diff --git a/code/game/objects/items/devices/pipe_painter.dm b/code/game/objects/items/devices/pipe_painter.dm index a5c46b0e5de..b90dfa9dcae 100644 --- a/code/game/objects/items/devices/pipe_painter.dm +++ b/code/game/objects/items/devices/pipe_painter.dm @@ -10,7 +10,7 @@ /obj/item/device/pipe_painter/New() ..() modes = new() - for(var/C in pipe_colors) + for(var/C in GLOB.pipe_colors) modes += "[C]" mode = pick(modes) @@ -23,10 +23,10 @@ return else if(istype(A,/obj/machinery/atmospherics/pipe)) var/obj/machinery/atmospherics/pipe/P = A - P.change_color(pipe_colors[mode]) - else if(istype(A, /obj/item/pipe) && pipe_color_check(pipe_colors[mode])) + P.change_color(GLOB.pipe_colors[mode]) + else if(istype(A, /obj/item/pipe) && pipe_color_check(GLOB.pipe_colors[mode])) var/obj/item/pipe/P = A - P.color = pipe_colors[mode] + P.color = GLOB.pipe_colors[mode] /obj/item/device/pipe_painter/attack_self(var/mob/user) mode = tgui_input_list(user, "Which colour do you want to use?", "Pipe Painter", modes, mode) diff --git a/code/modules/atmospherics/_atmos_setup.dm b/code/modules/atmospherics/_atmos_setup.dm index 4b58dad5eac..ca3e78bd063 100644 --- a/code/modules/atmospherics/_atmos_setup.dm +++ b/code/modules/atmospherics/_atmos_setup.dm @@ -1,21 +1,21 @@ //-------------------------------------------- // Pipe colors // -// Add them here and to the pipe_colors list +// Add them here and to the GLOB.pipe_colors list // to automatically add them to all relevant // atmospherics devices. //-------------------------------------------- /proc/pipe_color_lookup(var/color) - for(var/C in pipe_colors) - if(color == pipe_colors[C]) + for(var/C in GLOB.pipe_colors) + if(color == GLOB.pipe_colors[C]) return "[C]" /proc/pipe_color_check(var/color) if(!color) return 1 - for(var/C in pipe_colors) - if(color == pipe_colors[C]) + for(var/C in GLOB.pipe_colors) + if(color == GLOB.pipe_colors[C]) return 1 return 0 @@ -95,10 +95,10 @@ var/image/I = image('icons/atmos/pipes.dmi', icon_state = state) pipe_icons[cache_name] = I - for(var/pipe_color in pipe_colors) + for(var/pipe_color in GLOB.pipe_colors) I = image('icons/atmos/pipes.dmi', icon_state = state) - I.color = pipe_colors[pipe_color] - pipe_icons[state + "[pipe_colors[pipe_color]]"] = I + I.color = GLOB.pipe_colors[pipe_color] + pipe_icons[state + "[GLOB.pipe_colors[pipe_color]]"] = I pipe = new ('icons/atmos/heat.dmi') for(var/state in pipe.IconStates()) @@ -128,10 +128,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 pipe_colors) + for(var/pipe_color in GLOB.pipe_colors) I = image('icons/atmos/manifold.dmi', icon_state = state) - I.color = pipe_colors[pipe_color] - manifold_icons[state + pipe_colors[pipe_color]] = I + I.color = GLOB.pipe_colors[pipe_color] + manifold_icons[state + GLOB.pipe_colors[pipe_color]] = I /datum/pipe_icon_manager/proc/gen_device_icons() if(!device_icons) @@ -179,10 +179,10 @@ for(var/D in GLOB.cardinal) var/image/I = image('icons/atmos/pipe_underlays.dmi', icon_state = state, dir = D) underlays[cache_name + "[D]"] = I - for(var/pipe_color in pipe_colors) + for(var/pipe_color in GLOB.pipe_colors) I = image('icons/atmos/pipe_underlays.dmi', icon_state = state, dir = D) - I.color = pipe_colors[pipe_color] - underlays[state + "[D]" + "[pipe_colors[pipe_color]]"] = I + I.color = GLOB.pipe_colors[pipe_color] + underlays[state + "[D]" + "[GLOB.pipe_colors[pipe_color]]"] = I /* Leaving the old icon manager code commented out for now, as we may want to rewrite the new code to cleanly @@ -241,39 +241,39 @@ pipe_underlays_exposed["[D]"] = I if("pipe_intact-scrubbers") pipe_underlays_intact["[D]"] = I - for(var/pipe_color in pipe_colors) + for(var/pipe_color in GLOB.pipe_colors) I = image('icons/atmos/pipe_underlays.dmi', icon_state = state, dir = D) - I.color = pipe_colors[pipe_color] + I.color = GLOB.pipe_colors[pipe_color] switch(state) if("intact") - underlays_intact["[D]" + pipe_colors[pipe_color]] = I + underlays_intact["[D]" + GLOB.pipe_colors[pipe_color]] = I if("exposed") - underlays_exposed["[D]" + pipe_colors[pipe_color]] = I + underlays_exposed["[D]" + GLOB.pipe_colors[pipe_color]] = I if("down") - underlays_down["[D]" + pipe_colors[pipe_color]] = I + underlays_down["[D]" + GLOB.pipe_colors[pipe_color]] = I if("pipe_exposed") - pipe_underlays_exposed["[D]" + pipe_colors[pipe_color]] = I + pipe_underlays_exposed["[D]" + GLOB.pipe_colors[pipe_color]] = I if("pipe_intact") - pipe_underlays_intact["[D]" + pipe_colors[pipe_color]] = I + pipe_underlays_intact["[D]" + GLOB.pipe_colors[pipe_color]] = I if("intact-supply") - underlays_intact["[D]" + pipe_colors[pipe_color]] = I + underlays_intact["[D]" + GLOB.pipe_colors[pipe_color]] = I if("exposed-supply") - underlays_exposed["[D]" + pipe_colors[pipe_color]] = I + underlays_exposed["[D]" + GLOB.pipe_colors[pipe_color]] = I if("down-supply") - underlays_down["[D]" + pipe_colors[pipe_color]] = I + underlays_down["[D]" + GLOB.pipe_colors[pipe_color]] = I if("pipe_exposed-supply") - pipe_underlays_exposed["[D]" + pipe_colors[pipe_color]] = I + pipe_underlays_exposed["[D]" + GLOB.pipe_colors[pipe_color]] = I if("pipe_intact-supply") - pipe_underlays_intact["[D]" + pipe_colors[pipe_color]] = I + pipe_underlays_intact["[D]" + GLOB.pipe_colors[pipe_color]] = I if("intact-scrubbers") - underlays_intact["[D]" + pipe_colors[pipe_color]] = I + underlays_intact["[D]" + GLOB.pipe_colors[pipe_color]] = I if("exposed-scrubbers") - underlays_exposed["[D]" + pipe_colors[pipe_color]] = I + underlays_exposed["[D]" + GLOB.pipe_colors[pipe_color]] = I if("down-scrubbers") - underlays_down["[D]" + pipe_colors[pipe_color]] = I + underlays_down["[D]" + GLOB.pipe_colors[pipe_color]] = I if("pipe_exposed-scrubbers") - pipe_underlays_exposed["[D]" + pipe_colors[pipe_color]] = I + pipe_underlays_exposed["[D]" + GLOB.pipe_colors[pipe_color]] = I if("pipe_intact-scrubbers") - pipe_underlays_intact["[D]" + pipe_colors[pipe_color]] = I + pipe_underlays_intact["[D]" + GLOB.pipe_colors[pipe_color]] = I */ diff --git a/code/modules/atmospherics/pipes.dm b/code/modules/atmospherics/pipes.dm index 29e51d8fc62..5c8e910207d 100644 --- a/code/modules/atmospherics/pipes.dm +++ b/code/modules/atmospherics/pipes.dm @@ -26,6 +26,17 @@ desc_info += "
Most pipes and atmospheric devices can be connected or disconnected with a wrench. The pipe's pressure must not be too high, \ or if it is a device, it must be turned off first." +/obj/machinery/atmospherics/pipe/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) + . = ..() + var/pipe_color_check = pipe_color || PIPE_COLOR_GREY + var/found_color_name = "Unknown" + for(var/color_name in GLOB.pipe_colors) + var/color_value = GLOB.pipe_colors[color_name] + if(pipe_color_check == color_value) + found_color_name = color_name + break + . += "This pipe is: [capitalize(found_color_name)]" + /obj/machinery/atmospherics/pipe/hides_under_flooring() return level != 2 diff --git a/code/modules/power/cable.dm b/code/modules/power/cable.dm index 0fb4cb1d51c..eebc7b43a24 100644 --- a/code/modules/power/cable.dm +++ b/code/modules/power/cable.dm @@ -1,3 +1,14 @@ +GLOBAL_LIST_INIT(cable_coil_colours, list( + "Yellow" = COLOR_YELLOW, + "Green" = COLOR_LIME, + "Pink" = COLOR_PINK, + "Blue" = COLOR_BLUE, + "Orange" = COLOR_ORANGE, + "Cyan" = COLOR_CYAN, + "Red" = COLOR_RED, + "White" = COLOR_WHITE +)) + /////////////////////////////// //CABLE STRUCTURE /////////////////////////////// @@ -36,6 +47,16 @@ By design, d1 is the smallest direction and d2 is the highest color = COLOR_RED var/obj/machinery/power/breakerbox/breaker_box +/obj/structure/cable/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) + . = ..() + var/found_color_name = "Unknown" + for(var/color_name in GLOB.cable_coil_colours) + var/color_value = GLOB.cable_coil_colours[color_name] + if(color == color_value) + found_color_name = color_name + break + . += "This cable is: [found_color_name]" + /obj/structure/cable/drain_power(var/drain_check, var/surge, var/amount = 0) if(drain_check) @@ -490,16 +511,6 @@ By design, d1 is the smallest direction and d2 is the highest drop_sound = 'sound/items/drop/accessory.ogg' pickup_sound = 'sound/items/pickup/accessory.ogg' surgerysound = 'sound/items/surgery/fixovein.ogg' - var/static/list/possible_cable_coil_colours = list( - "Yellow" = COLOR_YELLOW, - "Green" = COLOR_LIME, - "Pink" = COLOR_PINK, - "Blue" = COLOR_BLUE, - "Orange" = COLOR_ORANGE, - "Cyan" = COLOR_CYAN, - "Red" = COLOR_RED, - "White" = COLOR_WHITE - ) build_from_parts = TRUE worn_overlay = "end" @@ -517,6 +528,22 @@ By design, d1 is the smallest direction and d2 is the highest update_icon() update_wclass() +/obj/item/stack/cable_coil/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) + . = ..() + + var/found_color_name = "Unknown" + for(var/color_name in GLOB.cable_coil_colours) + var/color_value = GLOB.cable_coil_colours[color_name] + if(color == color_value) + found_color_name = color_name + break + . += "This cable is: [found_color_name]" + + if(!uses_charge) + . += "There [src.amount == 1 ? "is" : "are"] [src.amount] [src.singular_name]\s of cable in the coil." + else + . += "You have enough charge to produce [get_amount()]." + /obj/item/stack/cable_coil/attack(mob/living/carbon/M, mob/user) if(ishuman(M) && user.a_intent == I_HELP) var/mob/living/carbon/human/H = M @@ -610,7 +637,7 @@ By design, d1 is the smallest direction and d2 is the highest /obj/item/stack/cable_coil/update_icon() if(!color) - color = pick(possible_cable_coil_colours) + color = pick(GLOB.cable_coil_colours) name = "[initial(name)]" if(amount == 1) icon_state = "[initial(icon_state)]1" @@ -635,16 +662,16 @@ By design, d1 is the smallest direction and d2 is the highest return ..() /obj/item/stack/cable_coil/proc/choose_cable_color(var/user) - var/selected_type = tgui_input_list(user, "Pick a new colour.", "Cable Colour", possible_cable_coil_colours) + var/selected_type = tgui_input_list(user, "Pick a new colour.", "Cable Colour", GLOB.cable_coil_colours) set_cable_color(selected_type, user) /obj/item/stack/cable_coil/proc/set_cable_color(selected_color, var/user) if(!selected_color) return - var/final_color = possible_cable_coil_colours[selected_color] + var/final_color = GLOB.cable_coil_colours[selected_color] if(!final_color) - final_color = possible_cable_coil_colours["Red"] + final_color = GLOB.cable_coil_colours["Red"] selected_color = "Red" color = final_color to_chat(user, SPAN_NOTICE("You change \the [src]'s color to [lowertext(selected_color)].")) @@ -657,13 +684,6 @@ By design, d1 is the smallest direction and d2 is the highest w_class = ITEMSIZE_SMALL slot_flags = SLOT_BELT -/obj/item/stack/cable_coil/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) - . = ..() - if(!uses_charge) - . += "There [src.amount == 1 ? "is" : "are"] [src.amount] [src.singular_name]\s of cable in the coil." - else - . += "You have enough charge to produce [get_amount()]." - /obj/item/stack/cable_coil/verb/make_restraint() set name = "Make Cable Restraints" set category = "Object" @@ -985,8 +1005,9 @@ By design, d1 is the smallest direction and d2 is the highest color = COLOR_WHITE /obj/item/stack/cable_coil/random/Initialize() - color = pick(possible_cable_coil_colours) - . = ..() + var/color_name = pick(GLOB.cable_coil_colours) + color = GLOB.cable_coil_colours[color_name] + return ..() ////////////////////////////// // Nooses. diff --git a/html/changelogs/geeves-cable_labeling.yml b/html/changelogs/geeves-cable_labeling.yml new file mode 100644 index 00000000000..858d1f81ce6 --- /dev/null +++ b/html/changelogs/geeves-cable_labeling.yml @@ -0,0 +1,6 @@ +author: Geeves + +delete-after: True + +changes: + - rscadd: "Examining a pipe or cable will now display its color as text." \ No newline at end of file