mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-01-16 12:07:48 +00:00
50 lines
1.2 KiB
Plaintext
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)
|