actual tgui code

This commit is contained in:
Letter N
2020-08-17 21:07:09 +08:00
parent 610e25beb7
commit 55bd3ecc26
9 changed files with 507 additions and 50 deletions
+22 -10
View File
@@ -80,14 +80,20 @@
opened_at = world.time
window.acquire_lock(src)
if(!window.is_ready())
window.initialize(inline_assets = list(
get_asset_datum(/datum/asset/simple/tgui),
))
window.initialize(
fancy = user.client.prefs.tgui_fancy,
inline_assets = list(
get_asset_datum(/datum/asset/simple/tgui_common),
get_asset_datum(/datum/asset/simple/tgui),
))
else
window.send_message("ping")
window.send_asset(get_asset_datum(/datum/asset/simple/fontawesome))
var/flush_queue = window.send_asset(get_asset_datum(
/datum/asset/simple/namespaced/fontawesome))
for(var/datum/asset/asset in src_object.ui_assets(user))
window.send_asset(asset)
flush_queue |= window.send_asset(asset)
if (flush_queue)
user.client.browse_queue_flush()
window.send_message("update", get_payload(
with_data = TRUE,
with_static_data = TRUE))
@@ -143,11 +149,13 @@
* Makes an asset available to use in tgui.
*
* required asset datum/asset
*
* return bool - true if an asset was actually sent
*/
/datum/tgui/proc/send_asset(datum/asset/asset)
if(!window)
CRASH("send_asset() can only be called after open().")
window.send_asset(asset)
return window.send_asset(asset)
/**
* public
@@ -199,13 +207,17 @@
"key" = window_key,
"size" = window_size,
"fancy" = user.client.prefs.tgui_fancy,
"locked" = user.client.prefs.tgui_lock
"locked" = user.client.prefs.tgui_lock,
),
"client" = list(
"ckey" = user.client.ckey,
"address" = user.client.address,
"computer_id" = user.client.computer_id,
),
"user" = list(
"name" = "[user]",
"ckey" = "[user.ckey]",
"observer" = isobserver(user)
)
"observer" = isobserver(user),
),
)
var/data = custom_data || with_data && src_object.ui_data(user)
if(data)