Items with colourable accents (#16743)

* Items with colourable accents

Changes the way loadout items with additional colours worked to be part of all items, rather than changes to each of their update_icon procs.

Also added a few new clothing items with colourable accents.

* merge conflict fixes

Gah. .dmi files why.
This commit is contained in:
Sparky
2023-07-21 20:33:06 +01:00
committed by GitHub
parent dd937ca5fc
commit f3a4b5d22e
31 changed files with 111 additions and 200 deletions

View File

@@ -1,7 +1,7 @@
#define GEAR_NO_SELECTION BITFLAG(0)
#define GEAR_HAS_COLOR_SELECTION BITFLAG(1)
#define GEAR_HAS_ALPHA_SELECTION BITFLAG(2)
#define GEAR_HAS_ADDITIONAL_COLOR_SELECTION BITFLAG(3)
#define GEAR_HAS_ACCENT_COLOR_SELECTION BITFLAG(3)
#define GEAR_HAS_NAME_SELECTION BITFLAG(4)
#define GEAR_HAS_DESC_SELECTION BITFLAG(5)
#define GEAR_HAS_COLOR_ROTATION_SELECTION BITFLAG(6)

View File

@@ -68,19 +68,18 @@ Alpha adjustment
item.alpha = metadata
/*
Additional Color adjustment
Accent colour
*/
var/datum/gear_tweak/color/additional/gear_tweak_additional_color = new()
var/datum/gear_tweak/color/accent/gear_tweak_accent_color = new()
/datum/gear_tweak/color/additional/get_contents(var/metadata)
return "Additional Color: <font color='[metadata]'>&#9899;</font>"
/datum/gear_tweak/color/accent/get_contents(var/metadata)
return "Accent Color: <font color='[metadata]'>&#9899;</font>"
/datum/gear_tweak/color/additional/tweak_item(var/obj/item/I, var/metadata, var/mob/living/carbon/human/H)
/datum/gear_tweak/color/accent/tweak_item(var/obj/item/I, var/metadata, var/mob/living/carbon/human/H)
if(valid_colors && !(metadata in valid_colors))
return
if(I.vars["additional_color"]) // set var/additional_color = COLOR_GREY on item
I.vars["additional_color"] = metadata
I.accent_color = metadata
I.update_icon()
/*

View File

@@ -390,8 +390,8 @@ var/list/gear_datums = list()
gear_tweaks += list(gear_tweak_free_color_choice)
if(flags & GEAR_HAS_ALPHA_SELECTION)
gear_tweaks += list(gear_tweak_alpha_choice)
if(flags & GEAR_HAS_ADDITIONAL_COLOR_SELECTION)
gear_tweaks += list(gear_tweak_additional_color)
if(flags & GEAR_HAS_ACCENT_COLOR_SELECTION)
gear_tweaks += list(gear_tweak_accent_color)
if(flags & GEAR_HAS_NAME_SELECTION)
gear_tweaks += list(gear_tweak_free_name)
if(flags & GEAR_HAS_DESC_SELECTION)

View File

@@ -165,4 +165,4 @@
/datum/gear/eyes/colorable
display_name = "colorable glasses"
path = /obj/item/clothing/glasses/colorable
flags = GEAR_HAS_COLOR_SELECTION | GEAR_HAS_ALPHA_SELECTION | GEAR_HAS_ADDITIONAL_COLOR_SELECTION
flags = GEAR_HAS_COLOR_SELECTION | GEAR_HAS_ALPHA_SELECTION | GEAR_HAS_ACCENT_COLOR_SELECTION

View File

@@ -89,9 +89,19 @@
path = /obj/item/clothing/suit/storage/hooded/wintercoat/mars
/datum/gear/suit/labcoat
display_name = "labcoat"
display_name = "labcoat selection"
description = "A selection of recolourable labcoats."
path = /obj/item/clothing/suit/storage/toggle/labcoat
flags = GEAR_HAS_NAME_SELECTION | GEAR_HAS_DESC_SELECTION | GEAR_HAS_COLOR_SELECTION
flags = GEAR_HAS_NAME_SELECTION | GEAR_HAS_DESC_SELECTION | GEAR_HAS_COLOR_SELECTION | GEAR_HAS_ACCENT_COLOR_SELECTION
/datum/gear/suit/labcoat/New()
..()
var/list/labcoats = list()
labcoats["plain labcoat"] = /obj/item/clothing/suit/storage/toggle/labcoat
labcoats["accent labcoat"] = /obj/item/clothing/suit/storage/toggle/labcoat/accent
labcoats["accent labcoat, alt"] = /obj/item/clothing/suit/storage/toggle/labcoat/accent/alt
labcoats["long labcoat"] = /obj/item/clothing/suit/storage/toggle/longcoat
gear_tweaks += new /datum/gear_tweak/path(labcoats)
/datum/gear/suit/cmo_labcoats
display_name = "chief medical officer labcoats selection"
@@ -158,6 +168,18 @@
poncho["poncho, operations"] = /obj/item/clothing/accessory/poncho/roles/cargo
gear_tweaks += new /datum/gear_tweak/path(poncho)
/datum/gear/suit/poncho_colorable
display_name = "poncho selection, colourable"
path = /obj/item/clothing/accessory/poncho/colorable
flags = GEAR_HAS_NAME_SELECTION | GEAR_HAS_DESC_SELECTION | GEAR_HAS_COLOR_SELECTION | GEAR_HAS_ACCENT_COLOR_SELECTION
/datum/gear/suit/poncho_colorable/New()
..()
var/list/col_poncho = list()
col_poncho["poncho"] = /obj/item/clothing/accessory/poncho/colorable
col_poncho["poncho, alt"] = /obj/item/clothing/accessory/poncho/colorable/alt
col_poncho["poncho, gradient"] = /obj/item/clothing/accessory/poncho/colorable/gradient
gear_tweaks += new /datum/gear_tweak/path(col_poncho)
/datum/gear/suit/suitjacket
display_name = "suit jacket"
@@ -194,16 +216,18 @@
gear_tweaks += new /datum/gear_tweak/path(coat)
/datum/gear/suit/trenchcoat_colorable
display_name = "colorable trenchcoat"
display_name = "colorable trenchcoat selection"
description = "A sleek canvas trenchcoat in 167,777,216 designer colors."
path = /obj/item/clothing/suit/storage/toggle/trench/colorable
flags = GEAR_HAS_NAME_SELECTION | GEAR_HAS_DESC_SELECTION | GEAR_HAS_COLOR_SELECTION
flags = GEAR_HAS_NAME_SELECTION | GEAR_HAS_DESC_SELECTION | GEAR_HAS_COLOR_SELECTION | GEAR_HAS_ACCENT_COLOR_SELECTION
/datum/gear/suit/trenchcoat_colorable_alt
display_name = "colorable trenchcoat, alt"
description = "A sleek canvas trenchcoat in 167,777,216 designer colors."
path = /obj/item/clothing/suit/storage/toggle/trench/colorable/alt
flags = GEAR_HAS_NAME_SELECTION | GEAR_HAS_DESC_SELECTION | GEAR_HAS_COLOR_SELECTION | GEAR_HAS_ADDITIONAL_COLOR_SELECTION
/datum/gear/suit/trenchcoat_colorable/New()
..()
var/list/trenches = list()
trenches["trenchcoat"] = /obj/item/clothing/suit/storage/toggle/trench/colorable
trenches["trenchcoat, alt"] = /obj/item/clothing/suit/storage/toggle/trench/colorable/alt
gear_tweaks += new /datum/gear_tweak/path(trenches)
/datum/gear/suit/ian
display_name = "worn shirt"

View File

@@ -59,7 +59,7 @@
cost = 1
whitelisted = list(SPECIES_DIONA, SPECIES_DIONA_COEUS)
sort_category = "Xenowear - Diona"
flags = GEAR_HAS_NAME_SELECTION | GEAR_HAS_DESC_SELECTION | GEAR_HAS_COLOR_SELECTION | GEAR_HAS_ADDITIONAL_COLOR_SELECTION
flags = GEAR_HAS_NAME_SELECTION | GEAR_HAS_DESC_SELECTION | GEAR_HAS_COLOR_SELECTION | GEAR_HAS_ACCENT_COLOR_SELECTION
/datum/gear/suit/diona/carp
display_name = "carp hide poncho"

View File

@@ -101,7 +101,7 @@
whitelisted = list(SPECIES_SKRELL, SPECIES_SKRELL_AXIORI)
sort_category = "Xenowear - Skrell"
flags = GEAR_HAS_DESC_SELECTION | GEAR_HAS_COLOR_SELECTION
/datum/gear/head/skrell/skrell_bandana
display_name = "skrell bandana"
path = /obj/item/clothing/head/skrell/skrell_bandana
@@ -400,7 +400,7 @@ var/datum/gear_tweak/social_credit/social_credit_tweak = new()
path = /obj/item/clothing/under/skrell/wetsuit
whitelisted = list(SPECIES_SKRELL, SPECIES_SKRELL_AXIORI)
sort_category = "Xenowear - Skrell"
flags = GEAR_HAS_NAME_SELECTION | GEAR_HAS_DESC_SELECTION | GEAR_HAS_COLOR_SELECTION | GEAR_HAS_ADDITIONAL_COLOR_SELECTION
flags = GEAR_HAS_NAME_SELECTION | GEAR_HAS_DESC_SELECTION | GEAR_HAS_COLOR_SELECTION | GEAR_HAS_ACCENT_COLOR_SELECTION
/datum/gear/ears/skrell/tailband
display_name = "SCS tailband"

View File

@@ -154,7 +154,7 @@
display_name = "himation cloak"
path = /obj/item/clothing/under/unathi/himation
cost = 1
flags = GEAR_HAS_NAME_SELECTION | GEAR_HAS_DESC_SELECTION | GEAR_HAS_COLOR_SELECTION | GEAR_HAS_ADDITIONAL_COLOR_SELECTION
flags = GEAR_HAS_NAME_SELECTION | GEAR_HAS_DESC_SELECTION | GEAR_HAS_COLOR_SELECTION | GEAR_HAS_ACCENT_COLOR_SELECTION
/datum/gear/head/sinta_ronin
display_name = "straw hat"
@@ -275,7 +275,7 @@
path = /obj/item/clothing/under/unathi/zazali
whitelisted = list(SPECIES_UNATHI, SPECIES_VAURCA_WORKER, SPECIES_VAURCA_WARRIOR)
sort_category = "Xenowear - Unathi"
flags = GEAR_HAS_COLOR_SELECTION | GEAR_HAS_ADDITIONAL_COLOR_SELECTION
flags = GEAR_HAS_COLOR_SELECTION | GEAR_HAS_ACCENT_COLOR_SELECTION
/datum/gear/uniform/unathi/huytai
display_name = "huytai outfit"
@@ -392,7 +392,7 @@
whitelisted = list(SPECIES_UNATHI)
origin_restriction = list(/singleton/origin_item/origin/heartland_upper, /singleton/origin_item/origin/trad_nobles, , /singleton/origin_item/origin/tza_upper, /singleton/origin_item/origin/southlands_upper, /singleton/origin_item/origin/zazalai_upper, /singleton/origin_item/origin/broken_nobles)
sort_category = "Xenowear - Unathi"
flags = GEAR_HAS_NAME_SELECTION | GEAR_HAS_DESC_SELECTION | GEAR_HAS_COLOR_SELECTION | GEAR_HAS_ADDITIONAL_COLOR_SELECTION
flags = GEAR_HAS_NAME_SELECTION | GEAR_HAS_DESC_SELECTION | GEAR_HAS_COLOR_SELECTION | GEAR_HAS_ACCENT_COLOR_SELECTION
/datum/gear/wrists/noble_bracers
display_name = "jeweled bracers"