colour backend

This commit is contained in:
Timothy Teakettle
2021-04-28 22:33:05 +01:00
parent 72a009dc7c
commit cb98cbd19f
2 changed files with 35 additions and 15 deletions
+14 -1
View File
@@ -528,8 +528,21 @@ GLOBAL_LIST_EMPTY(preferences_datums)
dat += "<table>"
var/list/markings = features[marking_type]
for(var/list/marking_list in markings)
var/marking_index = markings.Find(marking_list) // consider changing loop to go through indexes over lists instead of using Find here
var/actual_name = GLOB.bodypart_names[num2text(marking_list[1])] // get the actual name from the bitflag representing the part the marking is applied to
dat += "<tr><td>[marking_list[2]] - [actual_name]</td> <td><a href='?_src_=prefs;preference=marking_down;task=input;marking_index=[markings.Find(marking_list)];marking_type=[marking_type]'>&#708;</a> <a href='?_src_=prefs;preference=marking_up;task=input;marking_index=[markings.Find(marking_list)];marking_type=[marking_type]'>&#709;</a> <a href='?_src_=prefs;preference=marking_remove;task=input;marking_index=[markings.Find(marking_list)];marking_type=[marking_type]'>X</a></td></tr>"
var/color_marking_dat = ""
var/datum/sprite_accessory/S = (actual_name == "mam_body_markings") ? GLOB.mam_body_markings_list[marking_list[2]] : GLOB.body_markings_list[marking_list[2]]
if(S && S.matrixed_sections && S.matrixed_sections != MATRIX_NONE)
// we know it has one matrixed section at minimum
color_marking_dat += "<span style='border: 1px solid #161616; background-color: #[marking_list[3][1]];'>&nbsp;&nbsp;&nbsp;</span>"
// if it has a second section, add it
if(S.matrixed_sections == MATRIX_RED_BLUE || S.matrixed_sections == MATRIX_GREEN_BLUE || S.matrixed_sections == MATRIX_RED_GREEN)
color_marking_dat += "<span style='border: 1px solid #161616; background-color: #[marking_list[3][2]];'>&nbsp;&nbsp;&nbsp;</span>"
// if it has a third section, add it
if(S.matrixed_sections == MATRIX_ALL)
color_marking_dat += "<span style='border: 1px solid #161616; background-color: #[marking_list[3][3]];'>&nbsp;&nbsp;&nbsp;</span>"
color_marking_dat += " <a href='?_src_=prefs;preference=marking_color;marking_index=[marking_index]task=input'>Change</a><BR>"
dat += "<tr><td>[marking_list[2]] - [actual_name]</td> <td><a href='?_src_=prefs;preference=marking_down;task=input;marking_index=[marking_index];marking_type=[marking_type]'>&#708;</a> <a href='?_src_=prefs;preference=marking_up;task=input;marking_index=[marking_index];marking_type=[marking_type]'>&#709;</a> <a href='?_src_=prefs;preference=marking_remove;task=input;marking_index=[marking_index];marking_type=[marking_type]'>X</a> [color_marking_dat]</td></tr>"
dat += "</table>"
for(var/mutant_part in GLOB.all_mutant_parts)
+21 -14
View File
@@ -700,8 +700,12 @@
marking_value = Smark?.icon_state || lowertext(H.dna.features["mam_body_markings"])
else
marking_value = "plain"
message_admins("MATCH FOUND FOR [marking[1]] ON PART [body_part] ON USER [C], VALUE IS [body_markings_icon] AND [marking_value]")
body_markings_list += list(list(body_markings_icon, marking_value))
var/list/color_values
if(length(marking) == 3)
color_values = marking[3]
else
color_values = list("#FFFFFF", "#FFFFFF", "#FFFFFF")
body_markings_list += list(list(body_markings_icon, marking_value, color_values))
markings_color = list(colorlist)
else
@@ -796,8 +800,8 @@
if((body_zone != BODY_ZONE_HEAD && body_zone != BODY_ZONE_CHEST))
should_draw_gender = FALSE
var/list/markings_list = list()
if(is_organic_limb())
message_admins("UPDATING ORGANIC LIMB FOR [owner] AT [src]")
limb.icon = base_bp_icon || 'icons/mob/human_parts.dmi'
if(should_draw_gender)
limb.icon_state = "[species_id]_[body_zone]_[icon_gender]"
@@ -810,23 +814,28 @@
limb.icon_state = "[species_id]_[body_zone]"
// Body markings
var/list/marking_list
if(length(body_markings_list))
if(species_id == "husk")
marking_list += image('modular_citadel/icons/mob/markings_notmammals.dmi', "husk_[body_zone]", -MARKING_LAYER, image_dir)
. += image('modular_citadel/icons/mob/markings_notmammals.dmi', "husk_[body_zone]", -MARKING_LAYER, image_dir)
else if(species_id == "husk" && use_digitigrade)
marking_list += image('modular_citadel/icons/mob/markings_notmammals.dmi', "husk_[digitigrade_type]_[use_digitigrade]_[body_zone]", -MARKING_LAYER, image_dir)
. += image('modular_citadel/icons/mob/markings_notmammals.dmi', "husk_[digitigrade_type]_[use_digitigrade]_[body_zone]", -MARKING_LAYER, image_dir)
else
for(var/list/marking_list in body_markings_list)
// marking stores icon and value for the specific bodypart
if(!use_digitigrade)
if(body_zone == BODY_ZONE_CHEST)
marking_list += image(marking_list[1], "[marking_list[2]]_[body_zone]_[icon_gender]", -MARKING_LAYER, image_dir)
markings_list.Add(image(marking_list[1], "[marking_list[2]]_[body_zone]_[icon_gender]", -MARKING_LAYER, image_dir))
message_admins("length is now [length(markings_list)]")
else
marking_list += image(marking_list[1], "[marking_list[2]]_[body_zone]", -MARKING_LAYER, image_dir)
markings_list.Add(image(marking_list[1], "[marking_list[2]]_[body_zone]", -MARKING_LAYER, image_dir))
message_admins("length is now [length(markings_list)]")
else
marking_list += image(marking_list[1], "[marking_list[2]]_[digitigrade_type]_[use_digitigrade]_[body_zone]", -MARKING_LAYER, image_dir)
. += marking_list
markings_list.Add(image(marking_list[1], "[marking_list[2]]_[digitigrade_type]_[use_digitigrade]_[body_zone]", -MARKING_LAYER, image_dir))
message_admins("length is now [length(markings_list)]")
if(color_src && length(marking_list) == 3)
message_admins("trying to color list of length [length(marking_list)] and also trying to access index [length(markings_list)] on a list of the same length")
markings_list[length(markings_list)].color = marking_list[3]
. += markings_list
// Citadel End
@@ -908,10 +917,8 @@
if(!isnull(body_markings))
if(species_id == "husk")
marking.color = "#141414"
else
marking.color = list(markings_color)
for(var/image/marking in markings_list)
marking.color = "#141414"
/obj/item/bodypart/deconstruct(disassembled = TRUE)
drop_organs()