Add better-fitting eyewear for monitor heads. (#30197)

* Add better-fitting eyewear for monitor heads.

* Incorporate linter feedback.

* Defluff

* Nudge side view monitor glasses to sit to the front of the screen.
This commit is contained in:
Alan
2025-09-18 02:09:27 -04:00
committed by GitHub
parent 5e29e1ff0c
commit 6e699e96cb
8 changed files with 42 additions and 1 deletions
+1
View File
@@ -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?
+19
View File
@@ -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()
@@ -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'
@@ -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'
@@ -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'
+4
View File
@@ -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
@@ -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]
Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB