diff --git a/code/__defines/materials.dm b/code/__defines/materials.dm
index e3e5f111637..682b02d2488 100644
--- a/code/__defines/materials.dm
+++ b/code/__defines/materials.dm
@@ -57,13 +57,6 @@
#define MATERIAL_CLOTH "cloth"
#define MATERIAL_COTTON "cotton"
#define MATERIAL_CARPET "carpet"
-#define MATERIAL_CLOTH_TEAL "teal"
-#define MATERIAL_CLOTH_BLACK "black"
-#define MATERIAL_CLOTH_GREEN "green"
-#define MATERIAL_CLOTH_PURPLE "purple"
-#define MATERIAL_CLOTH_BLUE "blue"
-#define MATERIAL_CLOTH_BEIGE "beige"
-#define MATERIAL_CLOTH_LIME "lime"
#define MATERIAL_ALTERATION_NONE 0
#define MATERIAL_ALTERATION_NAME 1
diff --git a/code/game/objects/items/devices/floor_painter.dm b/code/game/objects/items/devices/floor_painter.dm
index 407a148ef94..54855ed8b88 100644
--- a/code/game/objects/items/devices/floor_painter.dm
+++ b/code/game/objects/items/devices/floor_painter.dm
@@ -76,14 +76,23 @@
var/obj/structure/heavy_vehicle_frame/EF = A
if(istype(EF))
+ playsound(get_turf(src), 'sound/effects/spray3.ogg', 30, 1, -6)
EF.set_colour(paint_colour)
return
var/obj/item/mech_component/MC = A
if(istype(MC))
+ playsound(get_turf(src), 'sound/effects/spray3.ogg', 30, 1, -6)
MC.set_colour(paint_colour)
return
+ var/obj/structure/bed/B = A
+ if(istype(B))
+ playsound(get_turf(src), 'sound/effects/spray3.ogg', 30, 1, -6)
+ B.set_colour(paint_colour)
+ B.update_icon()
+ return
+
var/turf/simulated/floor/F = A
if(!istype(F))
to_chat(user, "\The [src] can only be used on station flooring.")
diff --git a/code/game/objects/structures/stool_bed_chair_nest/bed.dm b/code/game/objects/structures/stool_bed_chair_nest/bed.dm
index faaa4d84047..d24c1a0aea4 100644
--- a/code/game/objects/structures/stool_bed_chair_nest/bed.dm
+++ b/code/game/objects/structures/stool_bed_chair_nest/bed.dm
@@ -25,6 +25,8 @@
var/material_alteration = MATERIAL_ALTERATION_ALL
var/buckling_sound = 'sound/effects/buckle.ogg'
+ var/painted_colour // Used for paint gun and preset colours. I know this name sucks.
+
var/can_dismantle = TRUE
var/can_pad = TRUE
@@ -41,7 +43,7 @@
. = ..()
LAZYADD(can_buckle, /mob/living)
-/obj/structure/bed/New(newloc, new_material = MATERIAL_STEEL, new_padding_material)
+/obj/structure/bed/New(newloc, new_material = MATERIAL_STEEL, new_padding_material, new_painted_colour)
..(newloc)
if(can_buckle)
desc_info = "Click and drag yourself (or anyone) to this to buckle in. Click on this with an empty hand to undo the buckles.
\
@@ -55,6 +57,8 @@
return
if(new_padding_material)
padding_material = SSmaterials.get_material_by_name(new_padding_material)
+ if(new_painted_colour)
+ painted_colour = new_painted_colour
update_icon()
/obj/structure/bed/buckle(mob/living/M)
@@ -80,10 +84,13 @@
// Padding overlay.
if(padding_material)
var/padding_cache_key = "[base_icon]-[padding_material.name]-padding"
- if(!furniture_cache[padding_cache_key])
+ if(!furniture_cache[padding_cache_key] || painted_colour) //avoid having to regenerate the image everytime unless painted.
var/image/I = image(icon, "[base_icon]_padding")
if(material_alteration & MATERIAL_ALTERATION_COLOR)
- I.color = padding_material.icon_colour
+ if(painted_colour)
+ I.color = painted_colour
+ else
+ I.color = padding_material.icon_colour
furniture_cache[padding_cache_key] = I
add_overlay(furniture_cache[padding_cache_key])
@@ -93,8 +100,13 @@
if(material_alteration & MATERIAL_ALTERATION_DESC)
desc = initial(desc)
- desc += padding_material ? " It's made of [material.use_name] and covered with [padding_material.use_name]." : " It's made of [material.use_name]."
+ desc += padding_material ? " It's made of [material.use_name] and covered with [padding_material.use_name][painted_colour ? ", colored in [painted_colour]" : ""]." : " It's made of [material.use_name]." //Yeah plain hex codes suck but at least it's a little funny and less of a headache for players.
+/obj/structure/bed/proc/set_colour(new_colour)
+ if(padding_material)
+ var/last_colour = painted_colour
+ painted_colour = new_colour
+ return painted_colour != last_colour
/obj/structure/bed/forceMove(atom/dest)
. = ..()
@@ -162,6 +174,7 @@
return
to_chat(user, "You remove the padding from \the [src].")
playsound(src, 'sound/items/wirecutter.ogg', 100, 1)
+ painted_colour = null
remove_padding()
else if (W.isscrewdriver())
@@ -197,6 +210,9 @@
W.pixel_x = 10 //make sure they reach the pillow
W.pixel_y = -6
+ else if(istype(W, /obj/item/device/floor_painter))
+ return
+
else if(!istype(W, /obj/item/bedsheet))
..()
diff --git a/code/game/objects/structures/stool_bed_chair_nest/chairs.dm b/code/game/objects/structures/stool_bed_chair_nest/chairs.dm
index 3852781ab3e..76523e045fe 100644
--- a/code/game/objects/structures/stool_bed_chair_nest/chairs.dm
+++ b/code/game/objects/structures/stool_bed_chair_nest/chairs.dm
@@ -84,33 +84,42 @@
if(mover.density && isliving(mover) && (reverse_dir[dir] & angle2dir(Get_Angle(src, mover))))
return FALSE
return ..()
-
+
/obj/structure/bed/stool/chair/padded/brown/New(var/newloc)
..(newloc, MATERIAL_STEEL, MATERIAL_LEATHER)
+/obj/structure/bed/stool/chair/padded/black/New(var/newloc)
+ ..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH, COLOR_DARK_GRAY)
+
+/obj/structure/bed/stool/chair/padded/beige/New(var/newloc)
+ ..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH, COLOR_BEIGE)
+
/obj/structure/bed/stool/chair/padded/red/New(var/newloc)
..(newloc, MATERIAL_STEEL, MATERIAL_CARPET)
-/obj/structure/bed/stool/chair/padded/teal/New(var/newloc)
- ..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH_TEAL)
+/obj/structure/bed/stool/chair/padded/orange/New(var/newloc)
+ ..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH, COLOR_ORANGE)
-/obj/structure/bed/stool/chair/padded/black/New(var/newloc)
- ..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH_BLACK)
+/obj/structure/bed/stool/chair/padded/yellow/New(var/newloc)
+ ..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH, COLOR_YELLOW)
/obj/structure/bed/stool/chair/padded/green/New(var/newloc)
- ..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH_GREEN)
-
-/obj/structure/bed/stool/chair/padded/purp/New(var/newloc)
- ..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH_PURPLE)
-
-/obj/structure/bed/stool/chair/padded/blue/New(var/newloc)
- ..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH_BLUE)
-
-/obj/structure/bed/stool/chair/padded/beige/New(var/newloc)
- ..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH_BEIGE)
+ ..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH, COLOR_GREEN)
/obj/structure/bed/stool/chair/padded/lime/New(var/newloc)
- ..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH_LIME)
+ ..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH, COLOR_LIME)
+
+/obj/structure/bed/stool/chair/padded/blue/New(var/newloc)
+ ..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH, COLOR_BLUE)
+
+/obj/structure/bed/stool/chair/padded/teal/New(var/newloc)
+ ..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH, COLOR_TEAL)
+
+/obj/structure/bed/stool/chair/padded/purple/New(var/newloc)
+ ..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH, COLOR_PURPLE)
+
+/obj/structure/bed/stool/chair/padded/violet/New(var/newloc)
+ ..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH, COLOR_VIOLET)
/obj/structure/bed/stool/chair/sofa
name = "sofa"
@@ -121,29 +130,38 @@
/obj/structure/bed/stool/chair/sofa/brown/New(var/newloc)
..(newloc, MATERIAL_STEEL, MATERIAL_LEATHER)
+/obj/structure/bed/stool/chair/sofa/black/New(var/newloc)
+ ..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH, COLOR_DARK_GRAY)
+
+/obj/structure/bed/stool/chair/sofa/beige/New(var/newloc)
+ ..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH, COLOR_BEIGE)
+
/obj/structure/bed/stool/chair/sofa/red/New(var/newloc)
..(newloc, MATERIAL_STEEL, MATERIAL_CARPET)
-/obj/structure/bed/stool/chair/sofa/teal/New(var/newloc)
- ..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH_TEAL)
+/obj/structure/bed/stool/chair/sofa/orange/New(var/newloc)
+ ..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH, COLOR_ORANGE)
-/obj/structure/bed/stool/chair/sofa/black/New(var/newloc)
- ..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH_BLACK)
+/obj/structure/bed/stool/chair/sofa/yellow/New(var/newloc)
+ ..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH, COLOR_YELLOW)
/obj/structure/bed/stool/chair/sofa/green/New(var/newloc)
- ..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH_GREEN)
-
-/obj/structure/bed/stool/chair/sofa/purp/New(var/newloc)
- ..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH_PURPLE)
-
-/obj/structure/bed/stool/chair/sofa/blue/New(var/newloc)
- ..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH_BLUE)
-
-/obj/structure/bed/stool/chair/sofa/beige/New(var/newloc)
- ..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH)
+ ..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH, COLOR_GREEN)
/obj/structure/bed/stool/chair/sofa/lime/New(var/newloc)
- ..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH_LIME)
+ ..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH, COLOR_LIME)
+
+/obj/structure/bed/stool/chair/sofa/blue/New(var/newloc)
+ ..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH, COLOR_BLUE)
+
+/obj/structure/bed/stool/chair/sofa/teal/New(var/newloc)
+ ..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH, COLOR_TEAL)
+
+/obj/structure/bed/stool/chair/sofa/purple/New(var/newloc)
+ ..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH, COLOR_PURPLE)
+
+/obj/structure/bed/stool/chair/sofa/violet/New(var/newloc)
+ ..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH, COLOR_VIOLET)
/obj/structure/bed/stool/chair/sofa/left
icon_state = "sofaend_left_preview"
@@ -152,29 +170,38 @@
/obj/structure/bed/stool/chair/sofa/left/brown/New(var/newloc)
..(newloc, MATERIAL_STEEL, MATERIAL_LEATHER)
+/obj/structure/bed/stool/chair/sofa/left/black/New(var/newloc)
+ ..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH, COLOR_DARK_GRAY)
+
+/obj/structure/bed/stool/chair/sofa/left/beige/New(var/newloc)
+ ..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH, COLOR_BEIGE)
+
/obj/structure/bed/stool/chair/sofa/left/red/New(var/newloc)
..(newloc, MATERIAL_STEEL, MATERIAL_CARPET)
-/obj/structure/bed/stool/chair/sofa/left/teal/New(var/newloc)
- ..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH_TEAL)
+/obj/structure/bed/stool/chair/sofa/left/orange/New(var/newloc)
+ ..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH, COLOR_ORANGE)
-/obj/structure/bed/stool/chair/sofa/left/black/New(var/newloc)
- ..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH_BLACK)
+/obj/structure/bed/stool/chair/sofa/left/yellow/New(var/newloc)
+ ..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH, COLOR_YELLOW)
/obj/structure/bed/stool/chair/sofa/left/green/New(var/newloc)
- ..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH_GREEN)
-
-/obj/structure/bed/stool/chair/sofa/left/purp/New(var/newloc)
- ..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH_PURPLE)
-
-/obj/structure/bed/stool/chair/sofa/left/blue/New(var/newloc)
- ..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH_BLUE)
-
-/obj/structure/bed/stool/chair/sofa/left/beige/New(var/newloc)
- ..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH)
+ ..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH, COLOR_GREEN)
/obj/structure/bed/stool/chair/sofa/left/lime/New(var/newloc)
- ..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH_LIME)
+ ..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH, COLOR_LIME)
+
+/obj/structure/bed/stool/chair/sofa/left/blue/New(var/newloc)
+ ..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH, COLOR_BLUE)
+
+/obj/structure/bed/stool/chair/sofa/left/teal/New(var/newloc)
+ ..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH, COLOR_TEAL)
+
+/obj/structure/bed/stool/chair/sofa/left/purple/New(var/newloc)
+ ..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH, COLOR_PURPLE)
+
+/obj/structure/bed/stool/chair/sofa/left/violet/New(var/newloc)
+ ..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH, COLOR_VIOLET)
/obj/structure/bed/stool/chair/sofa/right
icon_state = "sofaend_right_preview"
@@ -183,29 +210,39 @@
/obj/structure/bed/stool/chair/sofa/right/brown/New(var/newloc)
..(newloc, MATERIAL_STEEL, MATERIAL_LEATHER)
+/obj/structure/bed/stool/chair/sofa/right/black/New(var/newloc)
+ ..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH, COLOR_DARK_GRAY)
+
+/obj/structure/bed/stool/chair/sofa/right/beige/New(var/newloc)
+ ..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH, COLOR_BEIGE)
+
/obj/structure/bed/stool/chair/sofa/right/red/New(var/newloc)
..(newloc, MATERIAL_STEEL, MATERIAL_CARPET)
-/obj/structure/bed/stool/chair/sofa/right/teal/New(var/newloc)
- ..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH_TEAL)
+/obj/structure/bed/stool/chair/sofa/right/orange/New(var/newloc)
+ ..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH, COLOR_ORANGE)
-/obj/structure/bed/stool/chair/sofa/right/black/New(var/newloc)
- ..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH_BLACK)
+/obj/structure/bed/stool/chair/sofa/right/yellow/New(var/newloc)
+ ..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH, COLOR_YELLOW)
/obj/structure/bed/stool/chair/sofa/right/green/New(var/newloc)
- ..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH_GREEN)
-
-/obj/structure/bed/stool/chair/sofa/right/purp/New(var/newloc)
- ..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH_PURPLE)
-
-/obj/structure/bed/stool/chair/sofa/right/blue/New(var/newloc)
- ..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH_BLUE)
-
-/obj/structure/bed/stool/chair/sofa/right/beige/New(var/newloc)
- ..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH)
+ ..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH, COLOR_GREEN)
/obj/structure/bed/stool/chair/sofa/right/lime/New(var/newloc)
- ..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH_LIME)
+ ..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH, COLOR_LIME)
+
+/obj/structure/bed/stool/chair/sofa/right/blue/New(var/newloc)
+ ..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH, COLOR_BLUE)
+
+/obj/structure/bed/stool/chair/sofa/right/teal/New(var/newloc)
+ ..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH, COLOR_TEAL)
+
+/obj/structure/bed/stool/chair/sofa/right/purple/New(var/newloc)
+ ..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH, COLOR_PURPLE)
+
+/obj/structure/bed/stool/chair/sofa/right/violet/New(var/newloc)
+ ..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH, COLOR_VIOLET)
+
/obj/structure/bed/stool/chair/sofa/corner
icon_state = "sofacorner_preview"
@@ -214,29 +251,38 @@
/obj/structure/bed/stool/chair/sofa/corner/brown/New(var/newloc)
..(newloc, MATERIAL_STEEL, MATERIAL_LEATHER)
+/obj/structure/bed/stool/chair/sofa/corner/black/New(var/newloc)
+ ..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH, COLOR_DARK_GRAY)
+
+/obj/structure/bed/stool/chair/sofa/corner/beige/New(var/newloc)
+ ..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH, COLOR_BEIGE)
+
/obj/structure/bed/stool/chair/sofa/corner/red/New(var/newloc)
..(newloc, MATERIAL_STEEL, MATERIAL_CARPET)
-/obj/structure/bed/stool/chair/sofa/corner/teal/New(var/newloc)
- ..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH_TEAL)
+/obj/structure/bed/stool/chair/sofa/corner/orange/New(var/newloc)
+ ..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH, COLOR_ORANGE)
-/obj/structure/bed/stool/chair/sofa/corner/black/New(var/newloc)
- ..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH_BLACK)
+/obj/structure/bed/stool/chair/sofa/corner/yellow/New(var/newloc)
+ ..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH, COLOR_YELLOW)
/obj/structure/bed/stool/chair/sofa/corner/green/New(var/newloc)
- ..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH_GREEN)
-
-/obj/structure/bed/stool/chair/sofa/corner/purp/New(var/newloc)
- ..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH_PURPLE)
-
-/obj/structure/bed/stool/chair/sofa/corner/blue/New(var/newloc)
- ..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH_BLUE)
-
-/obj/structure/bed/stool/chair/sofa/corner/beige/New(var/newloc)
- ..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH)
+ ..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH, COLOR_GREEN)
/obj/structure/bed/stool/chair/sofa/corner/lime/New(var/newloc)
- ..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH_LIME)
+ ..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH, COLOR_LIME)
+
+/obj/structure/bed/stool/chair/sofa/corner/blue/New(var/newloc)
+ ..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH, COLOR_BLUE)
+
+/obj/structure/bed/stool/chair/sofa/corner/teal/New(var/newloc)
+ ..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH, COLOR_TEAL)
+
+/obj/structure/bed/stool/chair/sofa/corner/purple/New(var/newloc)
+ ..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH, COLOR_PURPLE)
+
+/obj/structure/bed/stool/chair/sofa/corner/violet/New(var/newloc)
+ ..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH, COLOR_VIOLET)
/obj/structure/bed/stool/chair/office // For the love of god, don't use this.
diff --git a/code/game/objects/structures/stool_bed_chair_nest/stools.dm b/code/game/objects/structures/stool_bed_chair_nest/stools.dm
index b6590f0ad32..10c27632dd8 100644
--- a/code/game/objects/structures/stool_bed_chair_nest/stools.dm
+++ b/code/game/objects/structures/stool_bed_chair_nest/stools.dm
@@ -28,12 +28,15 @@
S.name = name // Get the name and desc of the stool, rather. We already went through all the trouble in New in bed.dm
if(material_alteration & MATERIAL_ALTERATION_DESC)
S.desc = desc
+ if(painted_colour)
+ S.painted_colour = painted_colour
if(blood_DNA)
S.blood_DNA |= blood_DNA // Transfer blood, if any.
S.add_blood()
S.dir = dir
S.add_fingerprint(usr)
usr.put_in_hands(S)
+ S.update_icon()
qdel(src)
/obj/structure/bed/stool/wood/New(var/newloc)
@@ -45,29 +48,38 @@
/obj/structure/bed/stool/padded/brown/New(var/newloc)
..(newloc, MATERIAL_STEEL, MATERIAL_LEATHER)
+/obj/structure/bed/stool/padded/black/New(var/newloc)
+ ..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH, COLOR_DARK_GRAY)
+
+/obj/structure/bed/stool/padded/beige/New(var/newloc)
+ ..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH, COLOR_BEIGE)
+
/obj/structure/bed/stool/padded/red/New(var/newloc)
..(newloc, MATERIAL_STEEL, MATERIAL_CARPET)
-/obj/structure/bed/stool/padded/teal/New(var/newloc)
- ..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH_TEAL)
+/obj/structure/bed/stool/padded/orange/New(var/newloc)
+ ..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH, COLOR_ORANGE)
-/obj/structure/bed/stool/padded/black/New(var/newloc)
- ..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH_BLACK)
+/obj/structure/bed/stool/padded/yellow/New(var/newloc)
+ ..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH, COLOR_YELLOW)
/obj/structure/bed/stool/padded/green/New(var/newloc)
- ..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH_GREEN)
-
-/obj/structure/bed/stool/padded/purp/New(var/newloc)
- ..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH_PURPLE)
-
-/obj/structure/bed/stool/padded/blue/New(var/newloc)
- ..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH_BLUE)
-
-/obj/structure/bed/stool/padded/beige/New(var/newloc)
- ..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH_BEIGE)
+ ..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH, COLOR_GREEN)
/obj/structure/bed/stool/padded/lime/New(var/newloc)
- ..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH_LIME)
+ ..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH, COLOR_LIME)
+
+/obj/structure/bed/stool/padded/blue/New(var/newloc)
+ ..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH, COLOR_BLUE)
+
+/obj/structure/bed/stool/padded/teal/New(var/newloc)
+ ..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH, COLOR_TEAL)
+
+/obj/structure/bed/stool/padded/purple/New(var/newloc)
+ ..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH, COLOR_PURPLE)
+
+/obj/structure/bed/stool/padded/violet/New(var/newloc)
+ ..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH, COLOR_VIOLET)
/obj/structure/bed/stool/wood/New(var/newloc)
..(newloc, MATERIAL_WOOD)
@@ -86,32 +98,45 @@
/obj/structure/bed/stool/bar/padded
icon_state = "bar_stool_padded_preview"
+// ROYGBIV colors for convenience. Mappers can use custom hex codes or defines if they want special colors.
+
+
/obj/structure/bed/stool/bar/padded/brown/New(var/newloc)
..(newloc, MATERIAL_STEEL, MATERIAL_LEATHER)
+/obj/structure/bed/stool/bar/padded/black/New(var/newloc)
+ ..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH, COLOR_DARK_GRAY)
+
+/obj/structure/bed/stool/bar/padded/beige/New(var/newloc)
+ ..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH, COLOR_BEIGE)
+
/obj/structure/bed/stool/bar/padded/red/New(var/newloc)
..(newloc, MATERIAL_STEEL, MATERIAL_CARPET)
-/obj/structure/bed/stool/bar/padded/teal/New(var/newloc)
- ..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH_TEAL)
+/obj/structure/bed/stool/bar/padded/orange/New(var/newloc)
+ ..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH, COLOR_ORANGE)
-/obj/structure/bed/stool/bar/padded/black/New(var/newloc)
- ..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH_BLACK)
+/obj/structure/bed/stool/bar/padded/yellow/New(var/newloc)
+ ..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH, COLOR_YELLOW)
/obj/structure/bed/stool/bar/padded/green/New(var/newloc)
- ..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH_GREEN)
-
-/obj/structure/bed/stool/bar/padded/purp/New(var/newloc)
- ..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH_PURPLE)
-
-/obj/structure/bed/stool/bar/padded/blue/New(var/newloc)
- ..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH_BLUE)
-
-/obj/structure/bed/stool/bar/padded/beige/New(var/newloc)
- ..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH_BEIGE)
+ ..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH, COLOR_GREEN)
/obj/structure/bed/stool/bar/padded/lime/New(var/newloc)
- ..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH_LIME)
+ ..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH, COLOR_LIME)
+
+/obj/structure/bed/stool/bar/padded/blue/New(var/newloc)
+ ..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH, COLOR_BLUE)
+
+/obj/structure/bed/stool/bar/padded/teal/New(var/newloc)
+ ..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH, COLOR_TEAL)
+
+/obj/structure/bed/stool/bar/padded/purple/New(var/newloc)
+ ..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH, COLOR_PURPLE)
+
+/obj/structure/bed/stool/bar/padded/violet/New(var/newloc)
+ ..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH, COLOR_VIOLET)
+
/obj/structure/bed/stool/bar/wood/New(var/newloc)
..(newloc, MATERIAL_WOOD)
@@ -152,6 +177,7 @@
var/material/padding_material
var/obj/structure/bed/stool/origin_type = /obj/structure/bed/stool
var/deploy_verb = "right"
+ var/painted_colour
/obj/item/material/stool/New(var/newloc, var/new_material, var/new_padding_material)
..(newloc, new_material) // new_material handled in material_weapons.dm
@@ -231,7 +257,10 @@
padding_overlay.appearance_flags = RESET_COLOR
build_from_parts = TRUE
worn_overlay = "padding"
- if(padding_material.icon_colour)
+ if(painted_colour)
+ padding_overlay.color = painted_colour
+ worn_overlay_color = painted_colour
+ else if(padding_material.icon_colour)
padding_overlay.color = padding_material.icon_colour
worn_overlay_color = padding_material.icon_colour
add_overlay(padding_overlay)
diff --git a/code/modules/materials/material_sheets.dm b/code/modules/materials/material_sheets.dm
index e31abc45a56..c8cd3f89c43 100644
--- a/code/modules/materials/material_sheets.dm
+++ b/code/modules/materials/material_sheets.dm
@@ -13,6 +13,7 @@
var/material/material
var/perunit
var/apply_colour //temp pending icon rewrite
+ var/painted_colour
var/use_material_sound = TRUE
/obj/item/stack/material/Initialize(mapload, amount)
@@ -32,7 +33,9 @@
perunit = SHEET_MATERIAL_AMOUNT
if(apply_colour)
- color = material.icon_colour
+ var/image/I = new(icon, icon_state)
+ I.color = material.icon_colour
+ add_overlay(I)
if(use_material_sound) // SEE MATERIALS.DM
drop_sound = material.drop_sound
@@ -61,8 +64,16 @@
/obj/item/stack/material/update_icon()
. = ..()
+ cut_overlays()
if(material)
update_strings()
+ if(apply_colour) // This is ass, but stops maptext from getting colored.
+ var/image/I = new(icon, icon_state)
+ if(!painted_colour)
+ I.color = material.icon_colour
+ else
+ I.color = painted_colour
+ add_overlay(I)
/obj/item/stack/material/transfer_to(obj/item/stack/S, var/tamount=null, var/type_verified)
var/obj/item/stack/material/M = S
@@ -92,7 +103,7 @@
name = "iron"
icon_state = "sheet-silver"
default_type = MATERIAL_IRON
- apply_colour = 1
+ apply_colour = TRUE
/obj/item/stack/material/iron/full/Initialize()
. = ..()
@@ -223,7 +234,7 @@
name = "tritium"
icon_state = "sheet-silver"
default_type = MATERIAL_TRITIUM
- apply_colour = 1
+ apply_colour = TRUE
/obj/item/stack/material/tritium/full/Initialize()
. = ..()
@@ -234,7 +245,7 @@
name = "osmium"
icon_state = "sheet-silver"
default_type = MATERIAL_OSMIUM
- apply_colour = 1
+ apply_colour = TRUE
/obj/item/stack/material/osmium/full/Initialize()
. = ..()
@@ -315,6 +326,7 @@
icon_state = "sheet-cloth"
default_type = MATERIAL_CLOTH
icon_has_variants = TRUE
+ apply_colour = TRUE
/obj/item/stack/material/cloth/full/Initialize()
. = ..()
diff --git a/code/modules/materials/materials.dm b/code/modules/materials/materials.dm
index 965f517e117..6b42033b2a6 100644
--- a/code/modules/materials/materials.dm
+++ b/code/modules/materials/materials.dm
@@ -893,48 +893,6 @@
pickup_sound = 'sound/items/pickup/cloth.ogg'
weapon_hitsound = 'sound/weapons/towelwhip.ogg'
-/material/cloth/teal
- name = MATERIAL_CLOTH_TEAL
- display_name ="teal"
- use_name = "teal cloth"
- icon_colour = "#00EAFA"
-
-/material/cloth/black
- name = MATERIAL_CLOTH_BLACK
- display_name = "black"
- use_name = "black cloth"
- icon_colour = "#505050"
-
-/material/cloth/green
- name = MATERIAL_CLOTH_GREEN
- display_name = "green"
- use_name = "green cloth"
- icon_colour = "#01C608"
-
-/material/cloth/purple
- name = MATERIAL_CLOTH_PURPLE
- display_name = "purple"
- use_name = "purple cloth"
- icon_colour = "#9C56C4"
-
-/material/cloth/blue
- name = MATERIAL_CLOTH_BLUE
- display_name = "blue"
- use_name = "blue cloth"
- icon_colour = "#6B6FE3"
-
-/material/cloth/beige
- name = MATERIAL_CLOTH_BEIGE
- display_name = "beige"
- use_name = "beige cloth"
- icon_colour = "#E8E7C8"
-
-/material/cloth/lime
- name = MATERIAL_CLOTH_LIME
- display_name = "lime"
- use_name = "lime cloth"
- icon_colour = "#62E36C"
-
/material/hide //TODO make different hides somewhat different among them
name = MATERIAL_HIDE
stack_origin_tech = list(TECH_MATERIAL = 2)
diff --git a/html/changelogs/wezzy_paint_stuff.yml b/html/changelogs/wezzy_paint_stuff.yml
new file mode 100644
index 00000000000..d650ff2a28c
--- /dev/null
+++ b/html/changelogs/wezzy_paint_stuff.yml
@@ -0,0 +1,42 @@
+################################
+# Example Changelog File
+#
+# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb.
+#
+# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.)
+# When it is, any changes listed below will disappear.
+#
+# Valid Prefixes:
+# bugfix
+# wip (For works in progress)
+# tweak
+# soundadd
+# sounddel
+# rscadd (general adding of nice things)
+# rscdel (general deleting of nice things)
+# imageadd
+# imagedel
+# maptweak
+# spellcheck (typo fixes)
+# experiment
+# balance
+# admin
+# backend
+# security
+# refactor
+#################################
+
+# Your name.
+author: Wowzewow (Wezzy)
+
+# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again.
+delete-after: True
+
+# Any changes you've made. See valid prefix list above.
+# INDENT WITH TWO SPACES. NOT TABS. SPACES.
+# SCREW THIS UP AND IT WON'T WORK.
+# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries.
+# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog.
+changes:
+ - rscadd: "You can now paint padded chairs, beds, and stools using the paint gun."
+ - bugfix: "Fixes colored materials coloring the stack number weirdly."