diff --git a/code/modules/clothing/clothing.dm b/code/modules/clothing/clothing.dm index 377ad96adce..db75fbc0059 100644 --- a/code/modules/clothing/clothing.dm +++ b/code/modules/clothing/clothing.dm @@ -8,6 +8,7 @@ permeability_coefficient = 0.8 /// Only these species can wear this kit. var/list/species_restricted + var/icon_monitor = null //If set to a sprite path, replaces the sprite for monitor heads /// Can the wearer see reagents inside transparent containers while it's equipped? var/scan_reagents = FALSE /// Can the wearer see reagents inside any container and identify blood types while it's equipped? diff --git a/code/modules/clothing/glasses/glasses.dm b/code/modules/clothing/glasses/glasses.dm index 51c09143be3..9ac6eb9c97c 100644 --- a/code/modules/clothing/glasses/glasses.dm +++ b/code/modules/clothing/glasses/glasses.dm @@ -89,6 +89,7 @@ inhand_icon_state = "meson" origin_tech = "magnets=1;engineering=2" prescription_upgradable = TRUE + icon_monitor = 'icons/mob/clothing/species/machine/monitor/eyes.dmi' var/active_on_equip = TRUE /obj/item/clothing/glasses/meson/equipped(mob/user, slot, initial) @@ -128,6 +129,7 @@ force = 10 throwforce = 10 throw_speed = 4 + icon_monitor = null attack_verb = list("sliced") hitsound = 'sound/weapons/bladeslice.ogg' sharp = TRUE @@ -149,6 +151,7 @@ scan_reagents = TRUE // You can see reagents while wearing science goggles resistance_flags = ACID_PROOF armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, RAD = 0, FIRE = 200, ACID = INFINITY) + icon_monitor = 'icons/mob/clothing/species/machine/monitor/eyes.dmi' actions_types = list(/datum/action/item_action/toggle_research_scanner) /obj/item/clothing/glasses/science/item_action_slot_check(slot) @@ -166,11 +169,13 @@ name = "janitorial goggles" desc = "These'll keep the soap out of your eyes." icon_state = "purple" + icon_monitor = 'icons/mob/clothing/species/machine/monitor/eyes.dmi' /obj/item/clothing/glasses/night name = "night vision goggles" desc = "You can totally see in the dark now!" icon_state = "night" + icon_monitor = 'icons/mob/clothing/species/machine/monitor/eyes.dmi' origin_tech = "materials=4;magnets=4;plasmatech=4;engineering=4" see_in_dark = 8 prescription_upgradable = TRUE @@ -188,6 +193,7 @@ icon_state = "eyepatch" inhand_icon_state = "blindfold" prescription_upgradable = TRUE + icon_monitor = 'icons/mob/clothing/species/machine/monitor/eyes.dmi' /obj/item/clothing/glasses/monocle name = "monocle" @@ -197,12 +203,14 @@ lefthand_file = 'icons/mob/inhands/items_lefthand.dmi' righthand_file = 'icons/mob/inhands/items_righthand.dmi' prescription_upgradable = TRUE + icon_monitor = 'icons/mob/clothing/species/machine/monitor/eyes.dmi' /obj/item/clothing/glasses/material name = "optical material scanner" desc = "Very confusing glasses." icon_state = "material" origin_tech = "magnets=3;engineering=3" + icon_monitor = 'icons/mob/clothing/species/machine/monitor/eyes.dmi' vision_flags = SEE_OBJS | SEE_TURFS /obj/item/clothing/glasses/material/cyber @@ -225,6 +233,7 @@ desc = "Made by Nerd. Co." icon_state = "glasses" prescription = TRUE + icon_monitor = 'icons/mob/clothing/species/machine/monitor/eyes.dmi' /obj/item/clothing/glasses/regular/hipster desc = "Made by Uncool. Co." @@ -235,27 +244,33 @@ desc = "Just some basic goggles, rather fashionable." icon_state = "goggles" + icon_monitor = 'icons/mob/clothing/species/machine/monitor/eyes.dmi' + /obj/item/clothing/glasses/threedglasses name = "\improper 3D glasses" desc = "A long time ago, people used these glasses to makes images from screens threedimensional." icon_state = "3d" + icon_monitor = 'icons/mob/clothing/species/machine/monitor/eyes.dmi' /obj/item/clothing/glasses/gglasses name = "green glasses" desc = "Forest green glasses, like the kind you'd wear when hatching a nasty scheme." icon_state = "gglasses" + icon_monitor = 'icons/mob/clothing/species/machine/monitor/eyes.dmi' prescription_upgradable = TRUE /obj/item/clothing/glasses/syndie name = "suspicious glasses" desc = "Suspicious-looking, stylish glasses. They don't look like they could protect you from a flash, however they have a slot around their lenses where something could easily be inserted." icon_state = "syndieglasses" + icon_monitor = 'icons/mob/clothing/species/machine/monitor/eyes.dmi' prescription_upgradable = TRUE /obj/item/clothing/glasses/syndie_sun name = "suspicious shaded glasses" desc = "Suspicious-looking, dark red, stylish glasses. They appear to have an additional eye-shielding layer over the lenses." icon_state = "syndieglasses_sun" + icon_monitor = 'icons/mob/clothing/species/machine/monitor/eyes.dmi' inhand_icon_state = "sunglasses" see_in_dark = 1 flash_protect = FLASH_PROTECTION_FLASH @@ -272,6 +287,7 @@ tint = FLASH_PROTECTION_FLASH prescription_upgradable = TRUE dog_fashion = /datum/dog_fashion/head + icon_monitor = 'icons/mob/clothing/species/machine/monitor/eyes.dmi' hide_examine = TRUE /obj/item/clothing/glasses/sunglasses_fake @@ -280,6 +296,7 @@ icon_state = "sun" inhand_icon_state = "sunglasses" prescription_upgradable = TRUE + icon_monitor = 'icons/mob/clothing/species/machine/monitor/eyes.dmi' /obj/item/clothing/glasses/sunglasses/noir name = "noir sunglasses" @@ -357,6 +374,7 @@ tint = FLASH_PROTECTION_WELDER can_toggle = TRUE visor_vars_to_toggle = VISOR_FLASHPROTECT | VISOR_TINT + icon_monitor = 'icons/mob/clothing/species/machine/monitor/eyes.dmi' /obj/item/clothing/glasses/welding/attack_self__legacy__attackchain(mob/user) weldingvisortoggle(user) @@ -398,6 +416,7 @@ vision_flags = SEE_MOBS lighting_alpha = LIGHTING_PLANE_ALPHA_MOSTLY_VISIBLE flash_protect = FLASH_PROTECTION_SENSITIVE + icon_monitor = 'icons/mob/clothing/species/machine/monitor/eyes.dmi' /obj/item/clothing/glasses/thermal/emp_act(severity) thermal_overload() diff --git a/code/modules/clothing/glasses/hudglasses.dm b/code/modules/clothing/glasses/hudglasses.dm index 1e04625007e..5745dffda16 100644 --- a/code/modules/clothing/glasses/hudglasses.dm +++ b/code/modules/clothing/glasses/hudglasses.dm @@ -50,6 +50,7 @@ origin_tech = "magnets=4;biotech=4;plasmatech=4;engineering=5" see_in_dark = 8 lighting_alpha = LIGHTING_PLANE_ALPHA_MOSTLY_VISIBLE + icon_monitor = 'icons/mob/clothing/species/machine/monitor/eyes.dmi' /obj/item/clothing/glasses/hud/health/sunglasses name = "medical HUDSunglasses" @@ -60,6 +61,7 @@ flash_protect = FLASH_PROTECTION_FLASH tint = FLASH_PROTECTION_FLASH hide_examine = TRUE + icon_monitor = 'icons/mob/clothing/species/machine/monitor/eyes.dmi' /obj/item/clothing/glasses/hud/diagnostic name = "diagnostic HUD" @@ -75,6 +77,7 @@ origin_tech = "magnets=4;powerstorage=4;plasmatech=4;engineering=5" see_in_dark = 8 lighting_alpha = LIGHTING_PLANE_ALPHA_MOSTLY_VISIBLE + icon_monitor = 'icons/mob/clothing/species/machine/monitor/eyes.dmi' /obj/item/clothing/glasses/hud/diagnostic/sunglasses name = "diagnostic sunglasses" @@ -83,6 +86,7 @@ inhand_icon_state = "sunglasses" flash_protect = FLASH_PROTECTION_FLASH tint = FLASH_PROTECTION_FLASH + icon_monitor = 'icons/mob/clothing/species/machine/monitor/eyes.dmi' /obj/item/clothing/glasses/hud/security name = "security HUD" @@ -99,6 +103,7 @@ origin_tech = "magnets=4;combat=4;plasmatech=4;engineering=5" see_in_dark = 8 lighting_alpha = LIGHTING_PLANE_ALPHA_MOSTLY_INVISIBLE //don't render darkness while wearing these + icon_monitor = 'icons/mob/clothing/species/machine/monitor/eyes.dmi' /obj/item/clothing/glasses/hud/security/sunglasses name = "HUDSunglasses" @@ -109,6 +114,7 @@ see_in_dark = 1 flash_protect = FLASH_PROTECTION_FLASH tint = FLASH_PROTECTION_FLASH + icon_monitor = 'icons/mob/clothing/species/machine/monitor/eyes.dmi' hide_examine = TRUE /obj/item/clothing/glasses/hud/security/sunglasses/jensenshades @@ -133,6 +139,7 @@ icon_state = "hydroponichudnight" see_in_dark = 8 lighting_alpha = LIGHTING_PLANE_ALPHA_MOSTLY_VISIBLE + icon_monitor = 'icons/mob/clothing/species/machine/monitor/eyes.dmi' /obj/item/clothing/glasses/hud/skills name = "skills HUD" @@ -148,6 +155,7 @@ see_in_dark = 1 // None of these three can be converted to booleans. Do not try it. flash_protect = FLASH_PROTECTION_FLASH tint = FLASH_PROTECTION_FLASH + icon_monitor = 'icons/mob/clothing/species/machine/monitor/eyes.dmi' /obj/item/clothing/glasses/hud/janitor name = "janitor HUD" @@ -164,6 +172,7 @@ flash_protect = FLASH_PROTECTION_FLASH tint = FLASH_PROTECTION_FLASH hide_examine = TRUE + icon_monitor = 'icons/mob/clothing/species/machine/monitor/eyes.dmi' /obj/item/clothing/glasses/hud/janitor/night name = "night vision janitor HUD" @@ -172,3 +181,4 @@ origin_tech = "magnets=4;biotech=4;plasmatech=4;engineering=5" see_in_dark = 8 lighting_alpha = LIGHTING_PLANE_ALPHA_MOSTLY_VISIBLE + icon_monitor = 'icons/mob/clothing/species/machine/monitor/eyes.dmi' diff --git a/code/modules/clothing/glasses/hudgoggles.dm b/code/modules/clothing/glasses/hudgoggles.dm index b8d4d1224d9..11c361c1e84 100644 --- a/code/modules/clothing/glasses/hudgoggles.dm +++ b/code/modules/clothing/glasses/hudgoggles.dm @@ -3,27 +3,32 @@ desc = "Fashionable security goggles." icon_state = "sechudgoggles" flags_cover = GLASSESCOVERSEYES + icon_monitor = 'icons/mob/clothing/species/machine/monitor/eyes.dmi' /obj/item/clothing/glasses/hud/health/goggles name = "health HUD goggles" desc = "Fashionable medical goggles." icon_state = "medhudgoggles" flags_cover = GLASSESCOVERSEYES + icon_monitor = 'icons/mob/clothing/species/machine/monitor/eyes.dmi' /obj/item/clothing/glasses/hud/diagnostic/goggles name = "diagnostic HUD goggles" desc = "Fashionable diagnostic goggles." icon_state = "diaghudgoggles" flags_cover = GLASSESCOVERSEYES + icon_monitor = 'icons/mob/clothing/species/machine/monitor/eyes.dmi' /obj/item/clothing/glasses/hud/hydroponic/goggles name = "hydroponic HUD goggles" desc = "Fashionable hydroponic goggles." icon_state = "hydrohudgoggles" flags_cover = GLASSESCOVERSEYES + icon_monitor = 'icons/mob/clothing/species/machine/monitor/eyes.dmi' /obj/item/clothing/glasses/hud/skills/goggles name = "skills HUD goggles" desc = "Fashionable skills goggles." icon_state = "skillhudgoggles" flags_cover = GLASSESCOVERSEYES + icon_monitor = 'icons/mob/clothing/species/machine/monitor/eyes.dmi' diff --git a/code/modules/clothing/glasses/tajblind.dm b/code/modules/clothing/glasses/tajblind.dm index 5507bf63295..ed9246f2daf 100644 --- a/code/modules/clothing/glasses/tajblind.dm +++ b/code/modules/clothing/glasses/tajblind.dm @@ -13,6 +13,7 @@ correct_wires = TRUE var/list/modes = list(MODE_OFF = MODE_NATURAL, MODE_NATURAL = MODE_CORRECTION, MODE_CORRECTION = MODE_OFF) var/selected_mode = MODE_CORRECTION + icon_monitor = 'icons/mob/clothing/species/machine/monitor/eyes.dmi' sprite_sheets = list( "Vox" = 'icons/mob/clothing/species/vox/eyes.dmi', "Grey" = 'icons/mob/clothing/species/grey/eyes.dmi' diff --git a/code/modules/customitems/item_defines.dm b/code/modules/customitems/item_defines.dm index 792bd3a0459..d4a1cc35e96 100644 --- a/code/modules/customitems/item_defines.dm +++ b/code/modules/customitems/item_defines.dm @@ -183,6 +183,7 @@ desc = "Wolf's non-functional thermal eyepatch." icon = 'icons/obj/custom_items.dmi' icon_state = "wolf_eyepatch" + icon_monitor = null /// Adrkiller59: Adam Cooper /obj/item/clothing/glasses/meson/fluff/book_berner_1 @@ -190,12 +191,14 @@ desc = "One of the older meson scanner models retrofitted to perform like its modern counterparts." icon = 'icons/obj/custom_items.dmi' icon_state = "book_berner_1" + icon_monitor = null /// Rapidvalj: Kakicharakiti /obj/item/clothing/glasses/sunglasses_fake/fluff/kaki name = "broken thermonocle" desc = "A weathered Vox thermonocle, doesn't seem to work anymore." icon_state = "thermonocle" + icon_monitor = null /// Rapidvalj: Hakikarahiti /obj/item/fluff/rapid_wheelchair_kit @@ -616,6 +619,7 @@ desc = "Tacticool ballistic glasses, for making all operators look badass." icon = 'icons/obj/custom_items.dmi' icon_state = "eyepro" + icon_monitor = null /// LP Spartan: Kaskreyarawkta /obj/item/clothing/glasses/hud/security/sunglasses/fluff/voxxyhud 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 a6aa0f12557..bbeb6eed860 100644 --- a/code/modules/mob/living/carbon/human/human_update_icons.dm +++ b/code/modules/mob/living/carbon/human/human_update_icons.dm @@ -691,9 +691,10 @@ GLOBAL_LIST_EMPTY(damage_icon_parts) if(glasses) 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 update_hud_glasses(glasses) - var/worn_icon = glasses.worn_icon || listgetindex(glasses.sprite_sheets, head_organ.dna.species.sprite_sheet_name) || 'icons/mob/clothing/eyes.dmi' + var/worn_icon = glasses.worn_icon || (robohead && robohead.is_monitor ? glasses.icon_monitor : FALSE) || listgetindex(glasses.sprite_sheets, head_organ.dna.species.sprite_sheet_name) || 'icons/mob/clothing/eyes.dmi' var/worn_icon_state = glasses.worn_icon_state || glasses.icon_state var/obj/item/clothing/glasses/mob_glasses = glasses var/datum/sprite_accessory/hair/hair_style = GLOB.hair_styles_full_list[head_organ.h_style] diff --git a/icons/mob/clothing/species/machine/monitor/eyes.dmi b/icons/mob/clothing/species/machine/monitor/eyes.dmi new file mode 100644 index 00000000000..8002879539c Binary files /dev/null and b/icons/mob/clothing/species/machine/monitor/eyes.dmi differ