Files
Bubberstation/code/controllers/subsystem/nanoUI.dm
Orange Borg d56782f645 compile your shit they say
Don't kill me they say
2015-02-28 10:26:38 +13:00

50 lines
1.2 KiB
Plaintext

var/datum/subsystem/nano/SSnano
/datum/subsystem/nano
name = "NanoUI"
can_fire = 1
wait = 5
priority = 16
var/list/open_uis = list() //a list of current open /nanoui UIs, grouped by src_object and ui_key
var/list/processing_uis = list() //a list of current open /nanoui UIs, not grouped, for use in processing
//List of asset filenames to be sent to the client on user login
var/list/asset_files = list()
/datum/subsystem/nano/New()
NEW_SS_GLOBAL(SSnano)
//Generate list of files to send to client for nano UI's
var/list/nano_asset_dirs = list(\
"nano/css/",\
"nano/images/",\
"nano/js/",\
"nano/templates/"\
)
var/list/filenames = null
for (var/path in nano_asset_dirs)
filenames = flist(path)
for(var/filename in filenames)
//Ignore directories
if(copytext(filename, length(filename)) != "/")
if(fexists(path + filename))
asset_files.Add(fcopy_rsc(path + filename))
/datum/subsystem/nano/stat_entry()
stat(name, "[round(cost,0.001)]ds (CPU:[round(cpu,1)]%) [processing_uis.len]")
/datum/subsystem/nano/fire()
var/i=1
for(var/thing in SSnano.processing_uis)
if(thing)
var/datum/nanoui/ui = thing
if(ui.src_object && ui.user)
ui.process()
++i
continue
processing_uis.Cut(i, i+1)