Adjust earwear for monitor heads. (#31775)

* Adjust earwear for monitor heads.

* Tweak soviet headset, correct icon code.
This commit is contained in:
Alan
2026-04-09 00:21:23 -04:00
committed by GitHub
parent 05eeff6df2
commit ba5db365e3
5 changed files with 28 additions and 2 deletions
+1
View File
@@ -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
@@ -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
@@ -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)