mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-08-20 19:49:39 +01:00
[MIRROR] Fixes podperson hair colors, adds individual layer colors [MDB IGNORE] (#18185)
* Fixes podperson hair colors, adds individual layer colors * merge conflicts * oops, use old screenshot png Co-authored-by: Time-Green <timkoster1@hotmail.com> Co-authored-by: tastyfish <crazychris32@gmail.com>
This commit is contained in:
co-authored by
Time-Green
tastyfish
parent
6ce3f3857f
commit
7cc088e72a
+22
-11
@@ -41,6 +41,8 @@
|
||||
var/draw_color
|
||||
///Where does this organ inherit it's color from?
|
||||
var/color_source = ORGAN_COLOR_INHERIT
|
||||
///FALSE will set the color on the organ, TRUE will call get_overlay_color() for every layer and put it directly on the overlay
|
||||
var/apply_color_to_layer = FALSE
|
||||
|
||||
///Does this organ have any bodytypes to pass to it's ownerlimb?
|
||||
var/external_bodytypes = NONE
|
||||
@@ -164,6 +166,9 @@
|
||||
if(sprite_datum.color_src)
|
||||
appearance.color = draw_color
|
||||
|
||||
if(apply_color_to_layer)
|
||||
appearance.color = get_overlay_color(image_layer)
|
||||
|
||||
if(sprite_datum.center)
|
||||
center_image(appearance, sprite_datum.dimension_x, sprite_datum.dimension_y)
|
||||
|
||||
@@ -264,13 +269,18 @@
|
||||
return
|
||||
var/mob/living/carbon/human/human_owner = ownerlimb.owner
|
||||
draw_color = human_owner.hair_color
|
||||
color = draw_color
|
||||
if(!apply_color_to_layer)
|
||||
color = draw_color
|
||||
return TRUE
|
||||
|
||||
///Colorizes the limb it's inserted to, if required.
|
||||
/obj/item/organ/external/proc/override_color(rgb_value)
|
||||
CRASH("External organ color set to override with no override proc.")
|
||||
|
||||
///Return a color for our specific layer
|
||||
/obj/item/organ/external/proc/get_overlay_color(draw_layer)
|
||||
return draw_color
|
||||
|
||||
///The horns of a lizard!
|
||||
/obj/item/organ/external/horns
|
||||
name = "horns"
|
||||
@@ -425,7 +435,12 @@
|
||||
dna_block = DNA_POD_HAIR_BLOCK
|
||||
restyle_flags = EXTERNAL_RESTYLE_PLANT
|
||||
|
||||
color_source = ORGAN_COLOR_OVERRIDE
|
||||
apply_color_to_layer = TRUE
|
||||
|
||||
///This layer will be colored differently than the rest of the organ. So we can get differently colored flowers or something
|
||||
var/color_swapped_layer = EXTERNAL_FRONT
|
||||
///The individual rgb colors are subtracted from this to get the color shifted layer
|
||||
var/color_inverse_base = 255
|
||||
|
||||
/obj/item/organ/external/pod_hair/get_global_feature_list()
|
||||
return GLOB.pod_hair_list
|
||||
@@ -435,13 +450,9 @@
|
||||
return TRUE
|
||||
return FALSE
|
||||
|
||||
/obj/item/organ/external/pod_hair/get_global_feature_list()
|
||||
return GLOB.pod_hair_list
|
||||
/obj/item/organ/external/pod_hair/get_overlay_color(draw_layer)
|
||||
if(draw_layer != bitflag_to_layer(color_swapped_layer))
|
||||
return ..()
|
||||
|
||||
/obj/item/organ/external/pod_hair/override_color(rgb_value)
|
||||
// SKYRAT EDIT START - I hate non-sensical errors sometimes.
|
||||
if(!findtext(rgb_value, "#", 1, 2))
|
||||
rgb_value = "#[rgb_value]"
|
||||
// SKYRAT EDIT END
|
||||
var/list/rgb_list = rgb2num(rgb_value)
|
||||
return rgb(255 - rgb_list[1], 255 - rgb_list[2], 255 - rgb_list[3])
|
||||
var/list/rgb_list = rgb2num(draw_color)
|
||||
return rgb(color_inverse_base - rgb_list[1], color_inverse_base - rgb_list[2], color_inverse_base - rgb_list[3])
|
||||
|
||||
Reference in New Issue
Block a user