diff --git a/code/modules/research/designs_vr.dm b/code/modules/research/designs_vr.dm
index fc156ca245..32031fd512 100644
--- a/code/modules/research/designs_vr.dm
+++ b/code/modules/research/designs_vr.dm
@@ -69,13 +69,13 @@
build_path = /obj/item/device/perfect_tele
sort_string = "HABAF"
-/datum/design/item/translator
- name = "handheld translator"
- id = "translator"
+/datum/design/item/translator/ear
+ name = "handheld translator (ear)"
+ id = "translator_ear"
req_tech = list(TECH_DATA = 3, TECH_ENGINEERING = 3)
materials = list(DEFAULT_WALL_MATERIAL = 2000, "glass" = 2000)
- build_path = /obj/item/device/universal_trans
- sort_string = "HABBA"
+ build_path = /obj/item/device/universal_translator/ear
+ sort_string = "HABBB"
// Resleeving Circuitboards
diff --git a/code/modules/vore/fluffstuff/custom_items_vr.dm b/code/modules/vore/fluffstuff/custom_items_vr.dm
index c6f16a725c..69189ed1ad 100644
--- a/code/modules/vore/fluffstuff/custom_items_vr.dm
+++ b/code/modules/vore/fluffstuff/custom_items_vr.dm
@@ -879,60 +879,3 @@ obj/item/weapon/material/hatchet/tacknife/combatknife/fluff/katarina/handle_shie
B.internal_contents |= src
user.visible_message("[user] eats a telebeacon!","You eat the the beacon!")
playsound(user, B.vore_sound, 70, 1)
-
-//Universal translator
-/obj/item/device/universal_trans
- name = "handheld translator"
- desc = "This handy device appears to translate the languages it hears into onscreen text for a user."
- icon = 'icons/obj/device_alt.dmi'
- icon_state = "atmos"
- w_class = ITEMSIZE_SMALL
- origin_tech = list(TECH_DATA = 3, TECH_ENGINEERING = 3)
- var/listening = 0
- var/datum/language/langset
-
-/obj/item/device/universal_trans/attack_self(mob/user)
- if(!listening) //Turning ON
- langset = input(user,"Translate to which of your languages?","Language Selection") as null|anything in user.languages
- if(langset)
- listening = 1
- listening_objects |= src
- icon_state = "[initial(icon_state)]1"
- user << "You enable \the [src], translating into [langset.name]."
- else //Turning OFF
- listening = 0
- listening_objects -= src
- langset = null
- icon_state = "[initial(icon_state)]"
- user << "You disable \the [src]."
-
-
-/obj/item/device/universal_trans/hear_talk(var/mob/speaker,var/message,var/vrb,var/datum/language/language)
- if(!listening || !istype(speaker))
- return
-
- //Show the "I heard something" animation.
- flick("[initial(icon_state)]2",src)
-
- //Handheld or pocket only.
- if(!isliving(loc))
- return
-
- var/mob/living/L = loc
-
- if (language && (language.flags & NONVERBAL))
- return //Not gonna translate sign language
-
- //Only translate if they can't understand, otherwise pointlessly spammy
- //I'll just assume they don't look at the screen in that case
-
- //They don't understand the spoken language we're translating FROM
- if(!L.say_understands(speaker,language))
-
- //They understand the PRINTED language
- if(L.say_understands(null,langset))
- L << "[src] displays, \"[message]\""
-
- //They don't understand the PRINTED language
- else
- L << "[src] displays, \"[langset.scramble(message)]\""
diff --git a/maps/virgo/virgo-1.dmm b/maps/virgo/virgo-1.dmm
index 4bb1d92718..192acf9eb4 100644
--- a/maps/virgo/virgo-1.dmm
+++ b/maps/virgo/virgo-1.dmm
@@ -682,7 +682,7 @@
"anf" = (/obj/structure/closet/secure_closet/security,/obj/machinery/light{dir = 1},/obj/effect/floor_decal/industrial/outline/yellow,/obj/item/clothing/glasses/hud/security,/obj/item/clothing/shoes/boots/jackboots/toeless,/turf/simulated/floor/tiled,/area/security/security_lockerroom)
"ang" = (/obj/structure/closet/secure_closet/security,/obj/machinery/firealarm{dir = 2; pixel_y = 24},/obj/effect/floor_decal/industrial/outline/yellow,/obj/item/clothing/glasses/hud/security,/obj/item/clothing/suit/armor/vest/wolftaur,/obj/item/clothing/shoes/boots/jackboots/toeless,/turf/simulated/floor/tiled,/area/security/security_lockerroom)
"anh" = (/obj/structure/closet/wardrobe/red,/obj/effect/floor_decal/corner/red/full{dir = 8},/obj/item/device/radio/intercom{dir = 1; name = "Station Intercom (General)"; pixel_y = 21},/turf/simulated/floor/tiled,/area/security/security_lockerroom)
-"ani" = (/obj/structure/table/standard,/obj/item/device/taperecorder{pixel_y = 0},/obj/item/device/megaphone,/obj/item/weapon/packageWrap,/obj/item/weapon/storage/box,/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_x = 0; pixel_y = 24},/obj/effect/floor_decal/corner/red/full{dir = 1},/obj/structure/cable/green{d2 = 2; icon_state = "0-2"},/obj/item/weapon/hand_labeler,/obj/item/device/universal_trans,/turf/simulated/floor/tiled,/area/security/security_lockerroom)
+"ani" = (/obj/structure/table/standard,/obj/item/device/taperecorder{pixel_y = 0},/obj/item/device/megaphone,/obj/item/weapon/packageWrap,/obj/item/weapon/storage/box,/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_x = 0; pixel_y = 24},/obj/effect/floor_decal/corner/red/full{dir = 1},/obj/structure/cable/green{d2 = 2; icon_state = "0-2"},/obj/item/weapon/hand_labeler,/obj/item/device/universal_translator,/turf/simulated/floor/tiled,/area/security/security_lockerroom)
"anj" = (/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/obj/structure/mirror{pixel_x = -28},/obj/machinery/light{dir = 1},/turf/simulated/floor/tiled/freezer,/area/security/security_bathroom)
"ank" = (/obj/structure/undies_wardrobe,/turf/simulated/floor/tiled/freezer,/area/security/security_bathroom)
"anl" = (/obj/structure/table/standard,/obj/machinery/firealarm{dir = 2; pixel_y = 24},/obj/item/weapon/soap/nanotrasen,/obj/item/weapon/soap/nanotrasen,/turf/simulated/floor/tiled/freezer,/area/security/security_bathroom)
@@ -3044,7 +3044,7 @@
"bgB" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 4},/obj/effect/floor_decal/corner/paleblue/diagonal{dir = 4},/obj/machinery/alarm{dir = 4; pixel_x = -23; pixel_y = 0},/turf/simulated/floor/tiled/white,/area/crew_quarters/medbreak)
"bgC" = (/obj/machinery/atmospherics/unary/vent_pump/on,/obj/effect/floor_decal/corner/paleblue/diagonal{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled/white,/area/crew_quarters/medbreak)
"bgD" = (/obj/item/weapon/stool/padded,/obj/effect/floor_decal/corner/paleblue/diagonal{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled/white,/area/crew_quarters/medbreak)
-"bgE" = (/obj/structure/table/standard,/obj/item/weapon/reagent_containers/food/drinks/britcup,/obj/effect/floor_decal/corner/paleblue/diagonal{dir = 4},/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/item/weapon/reagent_containers/food/drinks/britcup,/obj/item/device/universal_trans,/turf/simulated/floor/tiled/white,/area/crew_quarters/medbreak)
+"bgE" = (/obj/structure/table/standard,/obj/effect/floor_decal/corner/paleblue/diagonal{dir = 4},/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/item/device/universal_translator,/turf/simulated/floor/tiled/white,/area/crew_quarters/medbreak)
"bgF" = (/obj/structure/table/standard,/obj/effect/floor_decal/corner/paleblue/diagonal{dir = 4},/obj/item/weapon/deck/cards,/turf/simulated/floor/tiled/white,/area/crew_quarters/medbreak)
"bgG" = (/obj/machinery/atmospherics/unary/vent_scrubber/on,/obj/effect/floor_decal/corner/paleblue/diagonal{dir = 4},/obj/item/weapon/stool/padded,/turf/simulated/floor/tiled/white,/area/crew_quarters/medbreak)
"bgH" = (/obj/effect/floor_decal/corner/paleblue/diagonal{dir = 4},/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/camera/network/medbay{c_tag = "MED - Break Room"; dir = 8},/turf/simulated/floor/tiled/white,/area/crew_quarters/medbreak)
@@ -3111,7 +3111,7 @@
"bhQ" = (/obj/effect/floor_decal/corner/paleblue/diagonal{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/turf/simulated/floor/tiled/white,/area/crew_quarters/medbreak)
"bhR" = (/obj/item/weapon/stool/padded,/obj/effect/floor_decal/corner/paleblue/diagonal{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/tiled/white,/area/crew_quarters/medbreak)
"bhS" = (/obj/structure/closet/crate,/obj/item/target,/obj/item/target,/obj/item/target,/obj/item/target,/obj/item/target,/obj/item/weapon/gun/projectile/shotgun/pump/rifle/practice,/obj/item/weapon/gun/projectile/shotgun/pump/rifle/practice,/obj/item/ammo_magazine/clip/a762/practice,/obj/item/ammo_magazine/clip/a762/practice,/obj/item/ammo_magazine/clip/a762/practice,/obj/item/ammo_magazine/clip/a762/practice,/turf/simulated/floor/tiled,/area/security/range)
-"bhT" = (/obj/structure/table/standard,/obj/item/weapon/reagent_containers/food/drinks/britcup,/obj/effect/floor_decal/corner/paleblue/diagonal{dir = 4},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/random/medical,/turf/simulated/floor/tiled/white,/area/crew_quarters/medbreak)
+"bhT" = (/obj/structure/table/standard,/obj/item/weapon/reagent_containers/food/drinks/britcup,/obj/effect/floor_decal/corner/paleblue/diagonal{dir = 4},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/random/medical,/obj/item/weapon/reagent_containers/food/drinks/britcup,/turf/simulated/floor/tiled/white,/area/crew_quarters/medbreak)
"bhU" = (/obj/item/weapon/stool/padded,/obj/effect/floor_decal/corner/paleblue/diagonal{dir = 4},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers,/turf/simulated/floor/tiled/white,/area/crew_quarters/medbreak)
"bhV" = (/obj/effect/floor_decal/corner/paleblue/diagonal{dir = 4},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/green{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled/white,/area/crew_quarters/medbreak)
"bhW" = (/obj/machinery/door/airlock/medical{name = "Rest Room"},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/tiled/freezer,/area/crew_quarters/medical_restroom)