diff --git a/code/game/objects/items/devices/radio/headset.dm b/code/game/objects/items/devices/radio/headset.dm index 5d48b8cede3..2d70810384b 100644 --- a/code/game/objects/items/devices/radio/headset.dm +++ b/code/game/objects/items/devices/radio/headset.dm @@ -4,6 +4,7 @@ icon_state = "headset" worn_icon_state = "headset" inhand_icon_state = "headset" + var/icon_monitor = 'icons/mob/clothing/species/machine/monitor/ears.dmi' sprite_sheets = list( "Vox" = 'icons/mob/clothing/species/vox/ears.dmi', //We read you loud and skree-er. "Kidan" = 'icons/mob/clothing/species/kidan/ears.dmi' diff --git a/code/modules/clothing/ears/earmuffs.dm b/code/modules/clothing/ears/earmuffs.dm index 7f345475022..1bde5bac425 100644 --- a/code/modules/clothing/ears/earmuffs.dm +++ b/code/modules/clothing/ears/earmuffs.dm @@ -2,6 +2,7 @@ name = "earmuffs" desc = "Protects your hearing from loud noises, and quiet ones as well." icon_state = "earmuffs" + icon_monitor = 'icons/mob/clothing/species/machine/monitor/ears.dmi' flags = EARBANGPROTECT strip_delay = 15 put_on_delay = 25 diff --git a/code/modules/instruments/objs/items/headphones.dm b/code/modules/instruments/objs/items/headphones.dm index 76678b1b6de..f572ca112e8 100644 --- a/code/modules/instruments/objs/items/headphones.dm +++ b/code/modules/instruments/objs/items/headphones.dm @@ -3,6 +3,7 @@ desc = "Unce unce unce unce." icon_state = "headphones0" inhand_icon_state = "headphones" + icon_monitor = 'icons/mob/clothing/species/machine/monitor/ears.dmi' actions_types = list(/datum/action/item_action/change_headphones_song, /datum/action/item_action/toggle_music_notes) var/datum/song/headphones/song var/on = FALSE diff --git a/code/modules/mob/living/carbon/human/human_update_icons.dm b/code/modules/mob/living/carbon/human/human_update_icons.dm index 94017938944..a53eec58750 100644 --- a/code/modules/mob/living/carbon/human/human_update_icons.dm +++ b/code/modules/mob/living/carbon/human/human_update_icons.dm @@ -764,11 +764,24 @@ GLOBAL_LIST_EMPTY(damage_icon_parts) left_ear_inv?.update_icon() right_ear_inv?.update_icon() + var/obj/item/organ/external/head/head_organ = get_organ("head") + var/datum/robolimb/robohead = head_organ.is_robotic() ? GLOB.all_robolimbs[head_organ.model] : null + if(l_ear) update_hud_l_ear(l_ear) + var/obj/item/radio/headset/ear_radio + var/obj/item/clothing/ear_clothes + var/icon/monitor_icon + if(istype(l_ear, /obj/item/radio/headset)) + ear_radio = l_ear + monitor_icon = ear_radio.icon_monitor + else if(istype(l_ear, /obj/item/clothing)) + ear_clothes = l_ear + monitor_icon = ear_clothes.icon_monitor + if((!head || !(head.flags_inv & HIDEEARS)) && (!wear_mask || !(wear_mask.flags_inv & HIDEEARS)) && !HAS_TRAIT(l_ear, TRAIT_NO_WORN_ICON)) - var/worn_icon = listgetindex(l_ear.sprite_sheets, dna.species.sprite_sheet_name) || 'icons/mob/clothing/ears.dmi' + var/worn_icon = listgetindex(l_ear.sprite_sheets, dna.species.sprite_sheet_name) || (robohead && robohead.is_monitor && (ear_clothes || ear_radio) ? monitor_icon : FALSE) || 'icons/mob/clothing/ears.dmi' var/worn_state = l_ear.worn_icon_state || l_ear.icon_state overlays_standing[LEFT_EAR_LAYER] = mutable_appearance(worn_icon, worn_state, layer = -LEFT_EAR_LAYER) @@ -776,8 +789,18 @@ GLOBAL_LIST_EMPTY(damage_icon_parts) if(r_ear) update_hud_r_ear(r_ear) + var/obj/item/radio/headset/ear_radio + var/obj/item/clothing/ear_clothes + var/icon/monitor_icon + if(istype(r_ear, /obj/item/radio/headset)) + ear_radio = r_ear + monitor_icon = ear_radio.icon_monitor + else if(istype(r_ear, /obj/item/clothing)) + ear_clothes = r_ear + monitor_icon = ear_clothes.icon_monitor + if((!head || !(head.flags_inv & HIDEEARS)) && (!wear_mask || !(wear_mask.flags_inv & HIDEEARS)) && !HAS_TRAIT(r_ear, TRAIT_NO_WORN_ICON)) - var/worn_icon = listgetindex(r_ear.sprite_sheets, dna.species.sprite_sheet_name) || 'icons/mob/clothing/ears.dmi' + var/worn_icon = listgetindex(r_ear.sprite_sheets, dna.species.sprite_sheet_name) || (robohead && robohead.is_monitor && (ear_clothes || ear_radio) ? monitor_icon : FALSE) || 'icons/mob/clothing/ears.dmi' var/worn_state = r_ear.worn_icon_state || r_ear.icon_state overlays_standing[RIGHT_EAR_LAYER] = mutable_appearance(worn_icon, worn_state, layer = -RIGHT_EAR_LAYER) diff --git a/icons/mob/clothing/species/machine/monitor/ears.dmi b/icons/mob/clothing/species/machine/monitor/ears.dmi new file mode 100644 index 00000000000..52d36379491 Binary files /dev/null and b/icons/mob/clothing/species/machine/monitor/ears.dmi differ