mirror of
https://github.com/VOREStation/VOREStation.git
synced 2026-07-18 10:34:10 +01:00
FIXES EYES
This commit is contained in:
@@ -51,69 +51,6 @@ var/global/list/limb_icon_cache = list()
|
||||
var/obj/item/organ/internal/eyes/eyes = owner.internal_organs_by_name[O_EYES]
|
||||
if(eyes) eyes.update_colour()
|
||||
|
||||
/obj/item/organ/external/head/get_icon()
|
||||
..()
|
||||
|
||||
//The overlays are not drawn on the mob, they are used for if the head is removed and becomes an item
|
||||
cut_overlays()
|
||||
|
||||
//Every 'addon' below requires information from species
|
||||
if(!iscarbon(owner) || !owner.species)
|
||||
return
|
||||
|
||||
var/icon/eyecon //VOREStation Edit -- holds eye icon to render over markings later.
|
||||
|
||||
//Eye color/icon
|
||||
var/should_have_eyes = owner.should_have_organ(O_EYES)
|
||||
var/has_eye_color = owner.species.appearance_flags & HAS_EYE_COLOR
|
||||
if((should_have_eyes || has_eye_color) && eye_icon)
|
||||
var/obj/item/organ/internal/eyes/eyes = owner.internal_organs_by_name[O_EYES]
|
||||
var/icon/eyes_icon = new/icon(eye_icon_location, eye_icon)
|
||||
//Should have eyes
|
||||
if(should_have_eyes)
|
||||
//And we have them
|
||||
if(eyes)
|
||||
if(has_eye_color)
|
||||
eyes_icon.Blend(rgb(eyes.eye_colour[1], eyes.eye_colour[2], eyes.eye_colour[3]), ICON_ADD)
|
||||
//They're gone!
|
||||
else
|
||||
eyes_icon.Blend(rgb(128,0,0), ICON_ADD)
|
||||
//We have weird other-sorts of eyes (as we're not supposed to have eye organ, but we have HAS_EYE_COLOR species)
|
||||
else
|
||||
eyes_icon.Blend(rgb(owner.r_eyes, owner.g_eyes, owner.b_eyes), ICON_ADD)
|
||||
|
||||
//VOREStation edit -- allow rendering of eyes over markings.
|
||||
if(eyes_over_markings)
|
||||
eyecon = eyes_icon
|
||||
else
|
||||
add_overlay(eyes_icon)
|
||||
mob_icon.Blend(eyes_icon, ICON_OVERLAY)
|
||||
icon_cache_key += "[eye_icon]"
|
||||
|
||||
//Lip color/icon
|
||||
if(owner.lip_style && (species && (species.appearance_flags & HAS_LIPS)))
|
||||
var/icon/lip_icon = new/icon('icons/mob/human_face.dmi', "lips_[owner.lip_style]_s")
|
||||
add_overlay(lip_icon)
|
||||
mob_icon.Blend(lip_icon, ICON_OVERLAY)
|
||||
|
||||
//Head markings
|
||||
for(var/M in markings)
|
||||
var/datum/sprite_accessory/marking/mark_style = markings[M]["datum"]
|
||||
var/icon/mark_s = new/icon("icon" = mark_style.icon, "icon_state" = "[mark_style.icon_state]-[organ_tag]")
|
||||
mark_s.Blend(markings[M]["color"], mark_style.color_blend_mode) // VOREStation edit
|
||||
add_overlay(mark_s) //So when it's not on your body, it has icons
|
||||
mob_icon.Blend(mark_s, ICON_OVERLAY) //So when it's on your body, it has icons
|
||||
icon_cache_key += "[M][markings[M]["color"]]"
|
||||
|
||||
if(eyes_over_markings && eyecon) //VOREStation edit -- toggle to render eyes above markings.
|
||||
add_overlay(eyecon)
|
||||
mob_icon.Blend(eyecon, ICON_OVERLAY)
|
||||
icon_cache_key += "[eye_icon]"
|
||||
|
||||
add_overlay(get_hair_icon())
|
||||
|
||||
return mob_icon
|
||||
|
||||
/obj/item/organ/external/head/proc/get_hair_icon()
|
||||
var/image/res = image('icons/mob/human_face.dmi',"bald_s")
|
||||
//Facial hair
|
||||
|
||||
@@ -4,11 +4,11 @@
|
||||
/obj/item/organ/external/groin/crewkin
|
||||
min_broken_damage = 20
|
||||
|
||||
/obj/item/organ/external/head/vr/crewkin
|
||||
/obj/item/organ/external/head/crewkin
|
||||
min_broken_damage = 15
|
||||
|
||||
eye_icons_vr = 'icons/mob/human_face_vr.dmi'
|
||||
eye_icon_vr = "eyes_shadekin_station"
|
||||
eye_icon_location = 'icons/mob/human_face_vr.dmi'
|
||||
eye_icon = "eyes_shadekin_station"
|
||||
|
||||
/obj/item/organ/external/arm/crewkin
|
||||
min_broken_damage = 15
|
||||
|
||||
@@ -266,15 +266,13 @@
|
||||
encased = "skull"
|
||||
base_miss_chance = 40
|
||||
var/can_intake_reagents = 1
|
||||
var/eye_icons = 'icons/mob/human_face_alt.dmi'
|
||||
var/head_offset = 0
|
||||
var/eye_icon = "eyes_s"
|
||||
var/eye_icon_location = 'icons/mob/human_face.dmi'
|
||||
force = 3
|
||||
throwforce = 7
|
||||
var/eyes_over_markings = FALSE //VOREStation edit
|
||||
|
||||
var/eye_icon_location = 'icons/mob/human_face.dmi'
|
||||
|
||||
/obj/item/organ/external/head/Initialize()
|
||||
if(config.allow_headgibs)
|
||||
cannot_gib = FALSE
|
||||
@@ -328,50 +326,65 @@
|
||||
|
||||
/obj/item/organ/external/head/get_icon()
|
||||
..()
|
||||
overlays.Cut()
|
||||
if(!owner || !owner.species)
|
||||
|
||||
//The overlays are not drawn on the mob, they are used for if the head is removed and becomes an item
|
||||
cut_overlays()
|
||||
|
||||
//Every 'addon' below requires information from species
|
||||
if(!iscarbon(owner) || !owner.species)
|
||||
return
|
||||
|
||||
var/icon/eyecon //VOREStation Edit -- holds eye icon to render over markings later.
|
||||
|
||||
//Eye color/icon
|
||||
var/should_have_eyes = owner.should_have_organ(O_EYES)
|
||||
var/has_eye_color = owner.species.appearance_flags & HAS_EYE_COLOR
|
||||
if((should_have_eyes || has_eye_color) && eye_icon)
|
||||
var/obj/item/organ/internal/eyes/eyes = owner.internal_organs_by_name[O_EYES]
|
||||
var/icon/eyes_icon = new/icon(eye_icon_location, eye_icon)
|
||||
//Should have eyes
|
||||
if(should_have_eyes)
|
||||
//And we have them
|
||||
if(eyes)
|
||||
if(has_eye_color)
|
||||
eyes_icon.Blend(rgb(eyes.eye_colour[1], eyes.eye_colour[2], eyes.eye_colour[3]), ICON_ADD)
|
||||
//They're gone!
|
||||
else
|
||||
eyes_icon.Blend(rgb(128,0,0), ICON_ADD)
|
||||
//We have weird other-sorts of eyes (as we're not supposed to have eye organ, but we have HAS_EYE_COLOR species)
|
||||
else
|
||||
eyes_icon.Blend(rgb(owner.r_eyes, owner.g_eyes, owner.b_eyes), ICON_ADD)
|
||||
|
||||
//VOREStation edit -- allow rendering of eyes over markings.
|
||||
if(eyes_over_markings)
|
||||
eyecon = eyes_icon
|
||||
else
|
||||
add_overlay(eyes_icon)
|
||||
mob_icon.Blend(eyes_icon, ICON_OVERLAY)
|
||||
icon_cache_key += "[eye_icon]"
|
||||
|
||||
//Lip color/icon
|
||||
if(owner.lip_style && (species && (species.appearance_flags & HAS_LIPS)))
|
||||
var/icon/lip_icon = new/icon('icons/mob/human_face.dmi', "lips_[owner.lip_style]_s")
|
||||
add_overlay(lip_icon)
|
||||
mob_icon.Blend(lip_icon, ICON_OVERLAY)
|
||||
|
||||
//Head markings
|
||||
for(var/M in markings)
|
||||
var/datum/sprite_accessory/marking/mark_style = markings[M]["datum"]
|
||||
var/icon/mark_s = new/icon("icon" = mark_style.icon, "icon_state" = "[mark_style.icon_state]-[organ_tag]")
|
||||
mark_s.Blend(markings[M]["color"], mark_style.color_blend_mode)
|
||||
overlays |= mark_s //So when it's not on your body, it has icons
|
||||
mark_s.Blend(markings[M]["color"], mark_style.color_blend_mode) // VOREStation edit
|
||||
add_overlay(mark_s) //So when it's not on your body, it has icons
|
||||
mob_icon.Blend(mark_s, ICON_OVERLAY) //So when it's on your body, it has icons
|
||||
icon_cache_key += "[M][markings[M]["color"]]"
|
||||
|
||||
if(owner.should_have_organ(O_EYES))//Moved on top of markings.
|
||||
var/obj/item/organ/internal/eyes/eyes = owner.internal_organs_by_name[O_EYES]
|
||||
if(eye_icon)
|
||||
var/icon/eyes_icon = new/icon(eye_icons, eye_icon)
|
||||
if(eyes)
|
||||
if(owner.species.appearance_flags & HAS_EYE_COLOR)
|
||||
eyes_icon.Blend(rgb(eyes.eye_colour[1], eyes.eye_colour[2], eyes.eye_colour[3]), ICON_ADD)
|
||||
else
|
||||
eyes_icon.Blend(rgb(128,0,0), ICON_ADD)
|
||||
mob_icon.Blend(eyes_icon, ICON_OVERLAY)
|
||||
overlays |= eyes_icon
|
||||
if(eyes_over_markings && eyecon) //VOREStation edit -- toggle to render eyes above markings.
|
||||
add_overlay(eyecon)
|
||||
mob_icon.Blend(eyecon, ICON_OVERLAY)
|
||||
icon_cache_key += "[eye_icon]"
|
||||
|
||||
if(owner.lip_style && (species && (species.appearance_flags & HAS_LIPS)))
|
||||
var/icon/lip_icon = new/icon('icons/mob/human_face.dmi', "lips_[owner.lip_style]_s")
|
||||
overlays |= lip_icon
|
||||
mob_icon.Blend(lip_icon, ICON_OVERLAY)
|
||||
add_overlay(get_hair_icon())
|
||||
|
||||
if(owner.f_style)
|
||||
var/datum/sprite_accessory/facial_hair_style = facial_hair_styles_list[owner.f_style]
|
||||
if(facial_hair_style && facial_hair_style.species_allowed && (species.get_bodytype(owner) in facial_hair_style.species_allowed))
|
||||
var/icon/facial_s = new/icon("icon" = facial_hair_style.icon, "icon_state" = "[facial_hair_style.icon_state]_s")
|
||||
if(facial_hair_style.do_colouration)
|
||||
facial_s.Blend(rgb(owner.r_facial, owner.g_facial, owner.b_facial), ICON_ADD)
|
||||
overlays |= image(facial_s, "pixel_y" = head_offset)
|
||||
|
||||
if(owner.h_style && !(owner.head && (owner.head.flags_inv & BLOCKHEADHAIR)))
|
||||
var/datum/sprite_accessory/hair_style = hair_styles_list[owner.h_style]
|
||||
if(hair_style && (species.get_bodytype(owner) in hair_style.species_allowed))
|
||||
var/icon/hair_s = new/icon("icon" = hair_style.icon, "icon_state" = "[hair_style.icon_state]_s")
|
||||
if(hair_style.do_colouration && islist(h_col) && h_col.len >= 3)
|
||||
hair_s.Blend(rgb(h_col[1], h_col[2], h_col[3]), ICON_MULTIPLY)
|
||||
overlays |= image(hair_s, "pixel_y" = head_offset)
|
||||
return mob_icon
|
||||
|
||||
/obj/item/organ/external/head/skrell
|
||||
|
||||
@@ -1,21 +1,21 @@
|
||||
//For custom heads with custom parts since the base code is restricted to a single icon file.
|
||||
|
||||
/obj/item/organ/external/head/vr
|
||||
var/eye_icons_vr = 'icons/mob/human_face_vr.dmi'
|
||||
var/eye_icon_vr = "blank_eyes"
|
||||
/obj/item/organ/external/head/blank_vr // Unused for now. Might be at some point.
|
||||
eye_icon_location = 'icons/mob/human_face_vr.dmi'
|
||||
eye_icon = "blank_eyes"
|
||||
|
||||
/obj/item/organ/external/head/vr/sergal
|
||||
eye_icon_vr = "eyes_sergal"
|
||||
/obj/item/organ/external/head/sergal
|
||||
eye_icon_location = 'icons/mob/human_face_vr.dmi'
|
||||
eye_icon = "eyes_sergal"
|
||||
|
||||
/obj/item/organ/external/head/vr/werebeast
|
||||
eye_icons_vr = 'icons/mob/werebeast_face_vr.dmi'
|
||||
eye_icon_vr = "werebeast_eyes"
|
||||
/obj/item/organ/external/head/werebeast
|
||||
eye_icon_location = 'icons/mob/werebeast_face_vr.dmi'
|
||||
eye_icon = "werebeast_eyes"
|
||||
head_offset = 6
|
||||
|
||||
/obj/item/organ/external/head/vr/shadekin
|
||||
/obj/item/organ/external/head/shadekin
|
||||
cannot_gib = 1
|
||||
cannot_amputate = 1
|
||||
|
||||
eye_icons_vr = 'icons/mob/human_face_vr.dmi'
|
||||
eye_icon_vr = "eyes_shadekin"
|
||||
eye_icon_location = 'icons/mob/human_face_vr.dmi'
|
||||
eye_icon = "eyes_shadekin"
|
||||
|
||||
Reference in New Issue
Block a user