Files
Aurora.3/code/modules/ntsl2/telecomms.dm
2020-04-28 15:41:32 +02:00

48 lines
1.6 KiB
Plaintext

/datum/TCS_Compiler/ntsl2
var/datum/ntsl_program/running_code = null
/datum/TCS_Compiler/ntsl2/Compile(code)
var/list/errors = list()
if(istype(running_code))
running_code.kill()
running_code = ntsl2.new_program(code, src, usr)
if(!istype(running_code))
errors += "The code failed to compile."
return errors
/datum/TCS_Compiler/ntsl2/Run(var/datum/signal/signal)
if(istype(running_code))
running_code.tc_message(signal)
running_code.cycle(100000)
update_code()
/datum/TCS_Compiler/ntsl2/proc/update_code()
if(istype(running_code))
running_code.cycle(100000)
var/list/dat = json_decode(ntsl2.send(list(action="get_signals",id=running_code.id)))
if(istype(dat) && ("content" in dat))
var/datum/signal/sig = null
if(dat["reference"])
sig = locate(dat["reference"])
if(istype(sig))
var/datum/language/L = all_languages[dat["language"]]
if(!L || !(L.flags & TCOMSSIM))
L = all_languages[LANGUAGE_TCB]
sig.data["message"] = dat["content"]
sig.frequency = text2num(dat["freq"]) || PUB_FREQ
sig.data["name"] = html_encode(dat["source"])
sig.data["realname"] = html_encode(dat["source"])
sig.data["job"] = html_encode(dat["job"])
sig.data["reject"] = !dat["pass"]
sig.data["verb"] = html_encode(dat["verb"])
sig.data["language"] = L
sig.data["vmessage"] = html_encode(dat["content"])
sig.data["vname"] = html_encode(dat["source"])
sig.data["vmask"] = 0
else
sig = new()
sig.data["server"] = running_code.S
sig.tcombroadcast(html_encode(dat["content"]), dat["freq"], html_encode(dat["source"]), html_encode(dat["job"]), html_encode(dat["verb"]), dat["language"])