mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-12 11:13:16 +00:00
Merge pull request #5708 from Walter0o/pai_lang_fix
adds proper pAI language based translator
This commit is contained in:
6
code/modules/mob/language.dm
Normal file → Executable file
6
code/modules/mob/language.dm
Normal file → Executable file
@@ -54,7 +54,7 @@
|
|||||||
speech_verb = "shrieks"
|
speech_verb = "shrieks"
|
||||||
colour = "vox"
|
colour = "vox"
|
||||||
key = "v"
|
key = "v"
|
||||||
flags = RESTRICTED | UNTRANSLATABLE
|
flags = RESTRICTED
|
||||||
|
|
||||||
/datum/language/diona
|
/datum/language/diona
|
||||||
name = "Rootspeak"
|
name = "Rootspeak"
|
||||||
@@ -62,7 +62,7 @@
|
|||||||
speech_verb = "creaks and rustles"
|
speech_verb = "creaks and rustles"
|
||||||
colour = "soghun"
|
colour = "soghun"
|
||||||
key = "q"
|
key = "q"
|
||||||
flags = RESTRICTED | UNTRANSLATABLE
|
flags = RESTRICTED
|
||||||
|
|
||||||
/datum/language/human
|
/datum/language/human
|
||||||
name = "Sol Common"
|
name = "Sol Common"
|
||||||
@@ -106,7 +106,7 @@
|
|||||||
// Can we speak this language, as opposed to just understanding it?
|
// Can we speak this language, as opposed to just understanding it?
|
||||||
/mob/proc/can_speak(datum/language/speaking)
|
/mob/proc/can_speak(datum/language/speaking)
|
||||||
|
|
||||||
return ((universal_speak && !(speaking.flags & UNTRANSLATABLE)) || speaking in src.languages)
|
return (universal_speak || speaking in src.languages)
|
||||||
|
|
||||||
//TBD
|
//TBD
|
||||||
/mob/verb/check_languages()
|
/mob/verb/check_languages()
|
||||||
|
|||||||
2
code/modules/mob/living/silicon/pai/pai.dm
Normal file → Executable file
2
code/modules/mob/living/silicon/pai/pai.dm
Normal file → Executable file
@@ -52,6 +52,8 @@
|
|||||||
|
|
||||||
var/obj/item/radio/integrated/signal/sradio // AI's signaller
|
var/obj/item/radio/integrated/signal/sradio // AI's signaller
|
||||||
|
|
||||||
|
var/translator_on = 0 // keeps track of the translator module
|
||||||
|
|
||||||
|
|
||||||
/mob/living/silicon/pai/New(var/obj/item/device/paicard)
|
/mob/living/silicon/pai/New(var/obj/item/device/paicard)
|
||||||
canmove = 0
|
canmove = 0
|
||||||
|
|||||||
30
code/modules/mob/living/silicon/pai/software.dm
Normal file → Executable file
30
code/modules/mob/living/silicon/pai/software.dm
Normal file → Executable file
@@ -266,7 +266,7 @@
|
|||||||
src.medHUD = !src.medHUD
|
src.medHUD = !src.medHUD
|
||||||
if("translator")
|
if("translator")
|
||||||
if(href_list["toggle"])
|
if(href_list["toggle"])
|
||||||
src.universal_speak = !src.universal_speak
|
src.translator_toggle()
|
||||||
if("doorjack")
|
if("doorjack")
|
||||||
if(href_list["jack"])
|
if(href_list["jack"])
|
||||||
if(src.cable && src.cable.machine)
|
if(src.cable && src.cable.machine)
|
||||||
@@ -325,7 +325,7 @@
|
|||||||
if(s == "medical HUD") //This file has to be saved as ANSI or this will not display correctly
|
if(s == "medical HUD") //This file has to be saved as ANSI or this will not display correctly
|
||||||
dat += "<a href='byond://?src=\ref[src];software=medicalhud;sub=0'>Medical Analysis Suite</a> [(src.medHUD) ? "<font color=#55FF55><3E></font>" : "<font color=#FF5555><3E></font>"] <br>"
|
dat += "<a href='byond://?src=\ref[src];software=medicalhud;sub=0'>Medical Analysis Suite</a> [(src.medHUD) ? "<font color=#55FF55><3E></font>" : "<font color=#FF5555><3E></font>"] <br>"
|
||||||
if(s == "universal translator") //This file has to be saved as ANSI or this will not display correctly
|
if(s == "universal translator") //This file has to be saved as ANSI or this will not display correctly
|
||||||
dat += "<a href='byond://?src=\ref[src];software=translator;sub=0'>Universal Translator</a> [(src.universal_speak) ? "<font color=#55FF55><3E></font>" : "<font color=#FF5555><3E></font>"] <br>"
|
dat += "<a href='byond://?src=\ref[src];software=translator;sub=0'>Universal Translator</a> [(src.translator_on) ? "<font color=#55FF55><3E></font>" : "<font color=#FF5555><3E></font>"] <br>"
|
||||||
if(s == "projection array")
|
if(s == "projection array")
|
||||||
dat += "<a href='byond://?src=\ref[src];software=projectionarray;sub=0'>Projection Array</a> <br>"
|
dat += "<a href='byond://?src=\ref[src];software=projectionarray;sub=0'>Projection Array</a> <br>"
|
||||||
if(s == "camera jack")
|
if(s == "camera jack")
|
||||||
@@ -498,7 +498,7 @@
|
|||||||
/mob/living/silicon/pai/proc/softwareTranslator()
|
/mob/living/silicon/pai/proc/softwareTranslator()
|
||||||
var/dat = {"<h2>Universal Translator</h2><hr>
|
var/dat = {"<h2>Universal Translator</h2><hr>
|
||||||
When enabled, this device will automatically convert all spoken and written languages into a format that any known recipient can understand.<br><br>
|
When enabled, this device will automatically convert all spoken and written languages into a format that any known recipient can understand.<br><br>
|
||||||
The device is currently [ (src.universal_speak) ? "<font color=#55FF55>en" : "<font color=#FF5555>dis" ]abled</font>.<br>
|
The device is currently [ (src.translator_on) ? "<font color=#55FF55>en" : "<font color=#FF5555>dis" ]abled</font>.<br>
|
||||||
<a href='byond://?src=\ref[src];software=translator;sub=0;toggle=1'>Toggle Device</a><br>
|
<a href='byond://?src=\ref[src];software=translator;sub=0;toggle=1'>Toggle Device</a><br>
|
||||||
"}
|
"}
|
||||||
return dat
|
return dat
|
||||||
@@ -686,3 +686,27 @@
|
|||||||
dat += addtext("<tr><td class='a'><i><b>From</b></i></td><td class='a'><i><b>→</b></i></td><td><i><b><a href='byond://?src=\ref[src];software=pdamessage;target=",index["target"],"'>", index["owner"],"</a>: </b></i>", index["message"], "<br></td></tr>")
|
dat += addtext("<tr><td class='a'><i><b>From</b></i></td><td class='a'><i><b>→</b></i></td><td><i><b><a href='byond://?src=\ref[src];software=pdamessage;target=",index["target"],"'>", index["owner"],"</a>: </b></i>", index["message"], "<br></td></tr>")
|
||||||
dat += "</table>"
|
dat += "</table>"
|
||||||
return dat
|
return dat
|
||||||
|
|
||||||
|
/mob/living/silicon/pai/proc/translator_toggle()
|
||||||
|
|
||||||
|
// Sol Common, Tradeband and Gutter are added with New() and are therefore the current default, always active languages
|
||||||
|
|
||||||
|
if(translator_on)
|
||||||
|
translator_on = 0
|
||||||
|
|
||||||
|
remove_language("Sinta'unathi")
|
||||||
|
remove_language("Siik'maas")
|
||||||
|
remove_language("Siik'tajr")
|
||||||
|
remove_language("Skrellian")
|
||||||
|
|
||||||
|
src << "\blue Translator Module toggled OFF."
|
||||||
|
|
||||||
|
else
|
||||||
|
translator_on = 1
|
||||||
|
|
||||||
|
add_language("Sinta'unathi")
|
||||||
|
add_language("Siik'maas")
|
||||||
|
add_language("Siik'tajr", 0)
|
||||||
|
add_language("Skrellian")
|
||||||
|
|
||||||
|
src << "\blue Translator Module toggled ON."
|
||||||
|
|||||||
@@ -74,7 +74,7 @@
|
|||||||
return 1
|
return 1
|
||||||
|
|
||||||
//Universal speak makes everything understandable, for obvious reasons.
|
//Universal speak makes everything understandable, for obvious reasons.
|
||||||
else if((src.universal_speak || src.universal_understand) && !(speaking.flags & UNTRANSLATABLE))
|
else if(src.universal_speak || src.universal_understand)
|
||||||
return 1
|
return 1
|
||||||
|
|
||||||
//Languages are handled after.
|
//Languages are handled after.
|
||||||
|
|||||||
@@ -748,7 +748,6 @@ var/list/RESTRICTED_CAMERA_NETWORKS = list( //Those networks can only be accesse
|
|||||||
#define RESTRICTED 2 // Language can only be accquired by spawning or an admin.
|
#define RESTRICTED 2 // Language can only be accquired by spawning or an admin.
|
||||||
#define NONVERBAL 4 // Language has a significant non-verbal component. Speech is garbled without line-of-sight
|
#define NONVERBAL 4 // Language has a significant non-verbal component. Speech is garbled without line-of-sight
|
||||||
#define SIGNLANG 8 // Language is completely non-verbal. Speech is displayed through emotes for those who can understand.
|
#define SIGNLANG 8 // Language is completely non-verbal. Speech is displayed through emotes for those who can understand.
|
||||||
#define UNTRANSLATABLE 16 // Language is not translated by universal_speak or universal_understand.
|
|
||||||
|
|
||||||
//Flags for zone sleeping
|
//Flags for zone sleeping
|
||||||
#define ZONE_ACTIVE 1
|
#define ZONE_ACTIVE 1
|
||||||
|
|||||||
Reference in New Issue
Block a user