[MIRROR] Changes how tgui handles static data [MDB IGNORE] (#11401)

* Changes how tgui handles static data (#64757)

* Changes how tgui handles static data

Co-authored-by: Jeremiah <42397676+jlsnow301@users.noreply.github.com>
This commit is contained in:
SkyratBot
2022-02-09 14:36:26 +00:00
committed by GitHub
co-authored by Jeremiah
parent 051c810dbe
commit bd8e08bac3
12 changed files with 118 additions and 82 deletions
+10 -2
View File
@@ -31,6 +31,8 @@
var/closing = FALSE
/// The status/visibility of the UI.
var/status = UI_INTERACTIVE
/// Timed refreshing state
var/refreshing = FALSE
/// Topic state used to determine status/interactability.
var/datum/ui_state/state = null
/// Rate limit client refreshes to prevent DoS.
@@ -180,11 +182,17 @@
/datum/tgui/proc/send_full_update(custom_data, force)
if(!user.client || !initialized || closing)
return
if(!COOLDOWN_FINISHED(src, refresh_cooldown))
refreshing = TRUE
addtimer(CALLBACK(src, .proc/send_full_update), TGUI_REFRESH_FULL_UPDATE_COOLDOWN, TIMER_UNIQUE)
return
refreshing = FALSE
var/should_update_data = force || status >= UI_UPDATE
window.send_message("update", get_payload(
custom_data,
with_data = should_update_data,
with_static_data = TRUE))
COOLDOWN_START(src, refresh_cooldown, TGUI_REFRESH_FULL_UPDATE_COOLDOWN)
/**
* public
@@ -215,6 +223,7 @@
"title" = title,
"status" = status,
"interface" = interface,
"refreshing" = refreshing,
"window" = list(
"key" = window_key,
"size" = window_size,
@@ -303,9 +312,8 @@
switch(type)
if("ready")
// Send a full update when the user manually refreshes the UI
if (initialized && COOLDOWN_FINISHED(src, refresh_cooldown))
if(initialized)
send_full_update()
COOLDOWN_START(src, refresh_cooldown, TGUI_REFRESH_FULL_UPDATE_COOLDOWN)
initialized = TRUE
if("pingReply")
initialized = TRUE
+6 -4
View File
@@ -123,15 +123,17 @@
/datum/tgui_modal/ui_state(mob/user)
return GLOB.always_state
/datum/tgui_modal/ui_data(mob/user)
/datum/tgui_modal/ui_static_data(mob/user)
. = list()
.["autofocus"] = autofocus
.["buttons"] = buttons
.["message"] = message
.["preferences"] = list()
.["preferences"]["large_buttons"] = user.client.prefs.read_preference(/datum/preference/toggle/tgui_input_large)
.["preferences"]["swapped_buttons"] = user.client.prefs.read_preference(/datum/preference/toggle/tgui_input_swapped)
.["large_buttons"] = user.client.prefs.read_preference(/datum/preference/toggle/tgui_input_large)
.["swapped_buttons"] = user.client.prefs.read_preference(/datum/preference/toggle/tgui_input_swapped)
.["title"] = title
/datum/tgui_modal/ui_data(mob/user)
. = list()
if(timeout)
.["timeout"] = CLAMP01((timeout - (world.time - start_time) - 1 SECONDS) / (timeout - 1 SECONDS))
+5 -6
View File
@@ -143,16 +143,15 @@
/datum/tgui_list_input/ui_static_data(mob/user)
. = list()
.["init_value"] = default || items[1]
.["items"] = items
.["large_buttons"] = user.client.prefs.read_preference(/datum/preference/toggle/tgui_input_large)
.["message"] = message
.["swapped_buttons"] = user.client.prefs.read_preference(/datum/preference/toggle/tgui_input_swapped)
.["title"] = title
/datum/tgui_list_input/ui_data(mob/user)
. = list()
.["init_value"] = default || items[1]
.["message"] = message
.["preferences"] = list()
.["preferences"]["large_buttons"] = user.client.prefs.read_preference(/datum/preference/toggle/tgui_input_large)
.["preferences"]["swapped_buttons"] = user.client.prefs.read_preference(/datum/preference/toggle/tgui_input_swapped)
.["title"] = title
if(timeout)
.["timeout"] = clamp((timeout - (world.time - start_time) - 1 SECONDS) / (timeout - 1 SECONDS), 0, 1)
+6 -4
View File
@@ -136,16 +136,18 @@
/datum/tgui_input_number/ui_state(mob/user)
return GLOB.always_state
/datum/tgui_input_number/ui_data(mob/user)
/datum/tgui_input_number/ui_static_data(mob/user)
. = list()
.["init_value"] = default // Default is a reserved keyword
.["large_buttons"] = user.client.prefs.read_preference(/datum/preference/toggle/tgui_input_large)
.["max_value"] = max_value
.["message"] = message
.["min_value"] = min_value
.["preferences"] = list()
.["preferences"]["large_buttons"] = user.client.prefs.read_preference(/datum/preference/toggle/tgui_input_large)
.["preferences"]["swapped_buttons"] = user.client.prefs.read_preference(/datum/preference/toggle/tgui_input_swapped)
.["swapped_buttons"] = user.client.prefs.read_preference(/datum/preference/toggle/tgui_input_swapped)
.["title"] = title
/datum/tgui_input_number/ui_data(mob/user)
. = list()
if(timeout)
.["timeout"] = CLAMP01((timeout - (world.time - start_time) - 1 SECONDS) / (timeout - 1 SECONDS))
+6 -4
View File
@@ -147,16 +147,18 @@
/datum/tgui_input_text/ui_state(mob/user)
return GLOB.always_state
/datum/tgui_input_text/ui_data(mob/user)
/datum/tgui_input_text/ui_static_data(mob/user)
. = list()
.["large_buttons"] = user.client.prefs.read_preference(/datum/preference/toggle/tgui_input_large)
.["max_length"] = max_length
.["message"] = message
.["multiline"] = multiline
.["placeholder"] = default // Default is a reserved keyword
.["preferences"] = list()
.["preferences"]["large_buttons"] = user.client.prefs.read_preference(/datum/preference/toggle/tgui_input_large)
.["preferences"]["swapped_buttons"] = user.client.prefs.read_preference(/datum/preference/toggle/tgui_input_swapped)
.["swapped_buttons"] = user.client.prefs.read_preference(/datum/preference/toggle/tgui_input_swapped)
.["title"] = title
/datum/tgui_input_text/ui_data(mob/user)
. = list()
if(timeout)
.["timeout"] = CLAMP01((timeout - (world.time - start_time) - 1 SECONDS) / (timeout - 1 SECONDS))