From 2eb366de89baba4b8b0474ceecaf2fe93414c22d Mon Sep 17 00:00:00 2001 From: tkdrg Date: Sun, 4 Jan 2015 04:35:36 -0300 Subject: [PATCH] Fixes a few RPD painting bugs Changes RPD colors to be consistent with pipe painter & default pipes. Makes the RPD properly update its neighbors on painting. Offloads the neighbor updating logic from pipe_painter to a pipe proc. Fixes #6783 --- code/ATMOSPHERICS/pipes.dm | 6 +++- code/ATMOSPHERICS/pipes/manifold.dm | 9 ++++++ code/ATMOSPHERICS/pipes/manifold4w.dm | 11 +++++++ code/ATMOSPHERICS/pipes/simple.dm | 7 ++++ .../objects/items/devices/pipe_painter.dm | 32 ++----------------- code/game/objects/items/weapons/RPD.dm | 17 +++++----- 6 files changed, 43 insertions(+), 39 deletions(-) diff --git a/code/ATMOSPHERICS/pipes.dm b/code/ATMOSPHERICS/pipes.dm index 571b32cbc48..96a46761871 100644 --- a/code/ATMOSPHERICS/pipes.dm +++ b/code/ATMOSPHERICS/pipes.dm @@ -49,4 +49,8 @@ var/obj/item/pipe_meter/PM = new (T) meter.transfer_fingerprints_to(PM) qdel(meter) - ..() + ..() + +/obj/machinery/atmospherics/pipe/proc/update_node_icon() + //Used for pipe painting. Overriden in the children. + return diff --git a/code/ATMOSPHERICS/pipes/manifold.dm b/code/ATMOSPHERICS/pipes/manifold.dm index 2952dbc7674..a11c06a97a3 100644 --- a/code/ATMOSPHERICS/pipes/manifold.dm +++ b/code/ATMOSPHERICS/pipes/manifold.dm @@ -115,6 +115,15 @@ /obj/machinery/atmospherics/pipe/manifold/pipeline_expansion() return list(node1, node2, node3) +/obj/machinery/atmospherics/pipe/manifold/update_node_icon() + ..() + if(node1) + node1.update_icon() + if(node2) + node2.update_icon() + if(node3) + node3.update_icon() + //Colored pipes, use these for mapping /obj/machinery/atmospherics/pipe/manifold/general diff --git a/code/ATMOSPHERICS/pipes/manifold4w.dm b/code/ATMOSPHERICS/pipes/manifold4w.dm index 6fc3ba86629..b1e8844c230 100644 --- a/code/ATMOSPHERICS/pipes/manifold4w.dm +++ b/code/ATMOSPHERICS/pipes/manifold4w.dm @@ -122,6 +122,17 @@ if(node4) overlays += getpipeimage('icons/obj/atmospherics/pipe_manifold.dmi', "manifold_full[invis]", WEST) +/obj/machinery/atmospherics/pipe/manifold4w/update_node_icon() + ..() + if(node1) + node1.update_icon() + if(node2) + node2.update_icon() + if(node3) + node3.update_icon() + if(node4) + node4.update_icon() + //Colored pipes, use these for mapping /obj/machinery/atmospherics/pipe/manifold4w/general name="pipe" diff --git a/code/ATMOSPHERICS/pipes/simple.dm b/code/ATMOSPHERICS/pipes/simple.dm index 47f62a70ace..3ce6e094a79 100644 --- a/code/ATMOSPHERICS/pipes/simple.dm +++ b/code/ATMOSPHERICS/pipes/simple.dm @@ -137,6 +137,13 @@ The regular pipe you see everywhere, including bent ones. /obj/machinery/atmospherics/pipe/simple/pipeline_expansion() return list(node1, node2) +/obj/machinery/atmospherics/pipe/simple/update_node_icon() + ..() + if(node1) + node1.update_icon() + if(node2) + node2.update_icon() + /obj/machinery/atmospherics/pipe/simple/insulated icon = 'icons/obj/atmospherics/red_pipe.dmi' icon_state = "intact" diff --git a/code/game/objects/items/devices/pipe_painter.dm b/code/game/objects/items/devices/pipe_painter.dm index 10407aaea8b..6ba985c908a 100644 --- a/code/game/objects/items/devices/pipe_painter.dm +++ b/code/game/objects/items/devices/pipe_painter.dm @@ -29,37 +29,9 @@ var/obj/machinery/atmospherics/pipe/P = A P.color = modes[mode] P.pipe_color = modes[mode] + P.stored.color = modes[mode] user.visible_message("[user] paints \the [P] [mode].","You paint \the [P] [mode].") - //P.update_icon() - - if(istype(A,/obj/machinery/atmospherics/pipe/simple)) - var/obj/machinery/atmospherics/pipe/simple/pipe = A - - if(pipe.node1) - pipe.node1.update_icon() - if(pipe.node2) - pipe.node2.update_icon() - else if(istype(A,/obj/machinery/atmospherics/pipe/manifold)) - var/obj/machinery/atmospherics/pipe/manifold/pipe = A - - if(pipe.node1) - pipe.node1.update_icon() - if(pipe.node2) - pipe.node2.update_icon() - if(pipe.node3) - pipe.node3.update_icon() - else if(istype(A,/obj/machinery/atmospherics/pipe/manifold4w)) - var/obj/machinery/atmospherics/pipe/manifold4w/pipe = A - - if(pipe.node1) - pipe.node1.update_icon() - if(pipe.node2) - pipe.node2.update_icon() - if(pipe.node3) - pipe.node3.update_icon() - if(pipe.node4) - pipe.node4.update_icon() - + P.update_node_icon() //updates the neighbors /obj/item/device/pipe_painter/attack_self(mob/user as mob) mode = input("Which colour do you want to use?","Pipe painter") in modes diff --git a/code/game/objects/items/weapons/RPD.dm b/code/game/objects/items/weapons/RPD.dm index 89cdffc6050..29537ed054a 100644 --- a/code/game/objects/items/weapons/RPD.dm +++ b/code/game/objects/items/weapons/RPD.dm @@ -140,13 +140,13 @@ var/global/list/RPD_recipes=list( var/p_class = ATMOS_MODE var/p_disposal = 0 var/list/paint_colors = list( - "grey" = "#cccccc", - "red" = "#800000", - "blue" = "#000080", - "cyan" = "#1C94C4", - "green" = "#00CC00", - "yellow" = "#FFCC00", - "purple" = "#822BFF" + "grey" = rgb(255,255,255), + "red" = rgb(255,0,0), + "blue" = rgb(0,0,255), + "cyan" = rgb(0,256,249), + "green" = rgb(30,255,0), + "yellow" = rgb(255,198,0), + "purple" = rgb(130,43,255) ) var/paint_color="grey" @@ -478,7 +478,8 @@ var/global/list/RPD_recipes=list( P.pipe_color = paint_colors[paint_color] P.stored.color = paint_colors[paint_color] user.visible_message("[user] paints \the [P] [paint_color].","You paint \the [P] [paint_color].") - P.update_icon() + //P.update_icon() + P.update_node_icon() return 1 if(EATING_MODE) // Eating pipes // Must click on an actual pipe or meter.