diff --git a/code/game/machinery/vending.dm b/code/game/machinery/vending.dm
index ef2a602ed83..4e10c3e73e9 100644
--- a/code/game/machinery/vending.dm
+++ b/code/game/machinery/vending.dm
@@ -924,7 +924,7 @@
icon_state = "engivend"
icon_deny = "engivend-deny"
req_access_txt = "11" //Engineering Equipment access
- products = list(/obj/item/clothing/glasses/meson = 2,/obj/item/device/multitool = 4,/obj/item/weapon/airlock_electronics = 10,/obj/item/weapon/module/power_control = 10,/obj/item/weapon/airalarm_electronics = 10,/obj/item/weapon/stock_parts/cell/high = 10)
+ products = list(/obj/item/clothing/glasses/meson/engine = 2,/obj/item/device/multitool = 4,/obj/item/weapon/airlock_electronics = 10,/obj/item/weapon/module/power_control = 10,/obj/item/weapon/airalarm_electronics = 10,/obj/item/weapon/stock_parts/cell/high = 10)
contraband = list(/obj/item/weapon/stock_parts/cell/potato = 3)
premium = list(/obj/item/weapon/storage/belt/utility = 3)
@@ -936,7 +936,7 @@
icon_deny = "engi-deny"
req_access_txt = "11"
products = list(/obj/item/clothing/under/rank/chief_engineer = 4,/obj/item/clothing/under/rank/engineer = 4,/obj/item/clothing/shoes/sneakers/orange = 4,/obj/item/clothing/head/hardhat = 4,
- /obj/item/weapon/storage/belt/utility = 4,/obj/item/clothing/glasses/meson = 4,/obj/item/clothing/gloves/color/yellow = 4, /obj/item/weapon/screwdriver = 12,
+ /obj/item/weapon/storage/belt/utility = 4,/obj/item/clothing/glasses/meson/engine = 4,/obj/item/clothing/gloves/color/yellow = 4, /obj/item/weapon/screwdriver = 12,
/obj/item/weapon/crowbar = 12,/obj/item/weapon/wirecutters = 12,/obj/item/device/multitool = 12,/obj/item/weapon/wrench = 12,/obj/item/device/t_scanner = 12,
/obj/item/weapon/stock_parts/cell = 8, /obj/item/weapon/weldingtool = 8,/obj/item/clothing/head/welding = 8,
/obj/item/weapon/light/tube = 10,/obj/item/clothing/suit/fire = 4, /obj/item/weapon/stock_parts/scanning_module = 5,/obj/item/weapon/stock_parts/micro_laser = 5,
diff --git a/code/game/objects/structures/crates_lockers/closets/secure/engineering.dm b/code/game/objects/structures/crates_lockers/closets/secure/engineering.dm
index 8484f67c549..8ae39adf6e2 100644
--- a/code/game/objects/structures/crates_lockers/closets/secure/engineering.dm
+++ b/code/game/objects/structures/crates_lockers/closets/secure/engineering.dm
@@ -33,6 +33,7 @@
new /obj/item/clothing/mask/gas(src)
new /obj/item/device/multitool(src)
new /obj/item/device/flash/handheld(src)
+ new /obj/item/clothing/glasses/meson/engine(src)
return
/obj/structure/closet/secure_closet/engineering_electrical
@@ -111,7 +112,7 @@
new /obj/item/device/radio/headset/headset_eng(src)
new /obj/item/clothing/suit/hazardvest(src)
new /obj/item/clothing/mask/gas(src)
- new /obj/item/clothing/glasses/meson(src)
+ new /obj/item/clothing/glasses/meson/engine(src)
return
/obj/structure/closet/secure_closet/atmospherics
diff --git a/code/modules/admin/verbs/debug.dm b/code/modules/admin/verbs/debug.dm
index 71023368948..a6186d8ca29 100644
--- a/code/modules/admin/verbs/debug.dm
+++ b/code/modules/admin/verbs/debug.dm
@@ -1182,7 +1182,7 @@ var/global/list/g_fancy_list_of_types = null
M.equip_to_slot_or_del(new /obj/item/clothing/suit/space/ert/engi(M), slot_wear_suit)
M.equip_to_slot_or_del(new /obj/item/weapon/card/id/ert/Engineer(M), slot_wear_id)
M.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/industrial(M), slot_back)
- M.equip_to_slot_or_del(new /obj/item/clothing/glasses/meson(M), slot_glasses)
+ M.equip_to_slot_or_del(new /obj/item/clothing/glasses/meson/engine(M), slot_glasses)
M.equip_to_slot_or_del(new /obj/item/weapon/storage/box/engineer(M), slot_in_backpack)
M.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/space/hardsuit/ert/engi(M), slot_in_backpack)
diff --git a/code/modules/clothing/glasses/engine_goggles.dm b/code/modules/clothing/glasses/engine_goggles.dm
index 7c4b19480af..b465100900b 100644
--- a/code/modules/clothing/glasses/engine_goggles.dm
+++ b/code/modules/clothing/glasses/engine_goggles.dm
@@ -1,38 +1,42 @@
//Engineering Mesons
/obj/item/clothing/glasses/meson/engine
- name = "Engineering Meson Scanner"
+ name = "Engineering Scanner Goggles"
desc = "Goggles used by engineers. The Meson Scanner mode lets you see basic structural and terrain layouts through walls, regardless of lighting condition. The T-ray Scanner mode lets you see underfloor objects such as cables and pipes."
- icon_state = "meson"
+ icon_state = "trayson-meson"
item_state = "glasses"
origin_tech = "magnets=2;engineering=2"
darkness_view = 1
vision_flags = SEE_TURFS
invis_view = SEE_INVISIBLE_MINIMUM
- var/state = 0 //0 - regular mesons mode 1 - t-ray mode
+ var/mode = 0 //0 - regular mesons mode 1 - t-ray mode
var/invis_objects = list()
- action_button_name = "Change scanning mode"
+ action_button_name = "Change Scanning Mode"
-/obj/item/clothing/glasses/meson/engine/attack_self(mob/user)
+/obj/item/clothing/glasses/meson/engine/attack_self()
ui_action_click()
-/obj/item/clothing/glasses/meson/engine/ui_action_click(mob/user)
- state = !state
- if(state)
+/obj/item/clothing/glasses/meson/engine/ui_action_click()
+ mode = !mode
+
+ if(mode)
SSobj.processing |= src
vision_flags = 0
darkness_view = 2
invis_view = SEE_INVISIBLE_LIVING
+ usr << "You toggle the goggles scanning mode to \[T-Ray]."
else
SSobj.processing.Remove(src)
vision_flags = SEE_TURFS
darkness_view = 1
invis_view = SEE_INVISIBLE_MINIMUM
+ usr << "You toggle the goggles scanning mode to \[Meson]."
invis_update()
+
update_icon()
/obj/item/clothing/glasses/meson/engine/process()
- if(!state)
+ if(!mode)
return null
if(!istype(loc,/mob/living/carbon/human))
@@ -78,7 +82,11 @@
return 0
var/mob/living/carbon/human/user = loc
- return state & (user.glasses == src)
+ return mode & (user.glasses == src)
/obj/item/clothing/glasses/meson/engine/update_icon()
- icon_state = state ? "material" : "meson"
+ icon_state = mode ? "trayson-tray" : "trayson-meson"
+ if(istype(loc,/mob/living/carbon/human/))
+ var/mob/living/carbon/human/user = loc
+ if(user.glasses == src)
+ user.update_inv_glasses()
diff --git a/code/modules/clothing/glasses/glasses.dm b/code/modules/clothing/glasses/glasses.dm
index 63e3849210e..16add9a8e5f 100644
--- a/code/modules/clothing/glasses/glasses.dm
+++ b/code/modules/clothing/glasses/glasses.dm
@@ -147,5 +147,4 @@
name = "Optical Thermal Eyepatch"
desc = "An eyepatch with built-in thermal optics."
icon_state = "eyepatch"
- item_state = "eyepatch"
-
+ item_state = "eyepatch"
\ No newline at end of file
diff --git a/code/modules/power/singularity/singularity.dm b/code/modules/power/singularity/singularity.dm
index 78998bac96e..a9a0e19d6af 100644
--- a/code/modules/power/singularity/singularity.dm
+++ b/code/modules/power/singularity/singularity.dm
@@ -355,9 +355,15 @@
if(M.stat == CONSCIOUS)
if (istype(M,/mob/living/carbon/human))
var/mob/living/carbon/human/H = M
- if(istype(H.glasses,/obj/item/clothing/glasses/meson))
- H << "You look directly into the [src.name], good thing you had your protective eyewear on!"
- return
+ if(istype(H.glasses,/obj/item/clothing/glasses/meson/engine))
+ var/obj/item/clothing/glasses/meson/engine/G = H.glasses
+ if(!G.mode)
+ H << "You look directly into the [src.name], good thing you had your protective eyewear on!"
+ return
+ else
+ if(istype(H.glasses,/obj/item/clothing/glasses/meson))
+ H << "You look directly into the [src.name], good thing you had your protective eyewear on!"
+ return
M.apply_effect(3, STUN)
M.visible_message("[M] stares blankly at the [src.name]!", \
"You look directly into the [src.name] and feel weak.")
diff --git a/code/modules/research/designs.dm b/code/modules/research/designs.dm
index 50aaac4afb1..0e2b77b33cb 100644
--- a/code/modules/research/designs.dm
+++ b/code/modules/research/designs.dm
@@ -307,6 +307,16 @@ datum/design/proc/CalcReliability(var/list/temp_techs)
build_path = /obj/item/clothing/glasses/meson
category = list("Equipement")
+/datum/design/engine_goggles
+ name = "Engineering Scanner Goggles"
+ desc = "Goggles used by engineers. The Meson Scanner mode lets you see basic structural and terrain layouts through walls, regardless of lighting condition. The T-ray Scanner mode lets you see underfloor objects such as cables and pipes."
+ id = "engine_goggles"
+ req_tech = list("materials" = 4, "magnets" = 3, "engineering" = 4)
+ build_type = PROTOLATHE
+ materials = list("$metal" = 200, "$glass" = 300, "$plasma" = 100)
+ build_path = /obj/item/clothing/glasses/meson/engine
+ category = list("Equipement")
+
/datum/design/night_vision_goggles
name = "Night Vision Goggles"
desc = "Goggles that let you see through darkness unhindered."
diff --git a/icons/mob/eyes.dmi b/icons/mob/eyes.dmi
index b79cf6e60fa..61ce2f7a71f 100644
Binary files a/icons/mob/eyes.dmi and b/icons/mob/eyes.dmi differ
diff --git a/icons/obj/clothing/glasses.dmi b/icons/obj/clothing/glasses.dmi
index c6d3db0432c..c6ffd4ed9c5 100644
Binary files a/icons/obj/clothing/glasses.dmi and b/icons/obj/clothing/glasses.dmi differ