From 51b41725092b4173774e6983b15edd5ac73e58d0 Mon Sep 17 00:00:00 2001 From: Letter N <24603524+LetterN@users.noreply.github.com> Date: Fri, 12 Feb 2021 18:36:12 +0800 Subject: [PATCH] T-G-U-I --- code/modules/tgui/external.dm | 9 +- code/modules/tgui/states.dm | 23 +-- code/modules/tgui/states/admin.dm | 8 +- code/modules/tgui/states/always.dm | 8 +- code/modules/tgui/states/conscious.dm | 8 +- code/modules/tgui/states/contained.dm | 8 +- code/modules/tgui/states/deep_inventory.dm | 8 +- code/modules/tgui/states/default.dm | 26 +-- code/modules/tgui/states/hands.dm | 8 +- code/modules/tgui/states/human_adjacent.dm | 8 +- code/modules/tgui/states/inventory.dm | 8 +- code/modules/tgui/states/language_menu.dm | 8 +- code/modules/tgui/states/new_player.dm | 13 ++ code/modules/tgui/states/not_incapacitated.dm | 10 +- code/modules/tgui/states/notcontained.dm | 8 +- code/modules/tgui/states/observer.dm | 8 +- code/modules/tgui/states/physical.dm | 8 +- code/modules/tgui/states/self.dm | 8 +- code/modules/tgui/states/zlevel.dm | 8 +- code/modules/tgui/tgui.dm | 20 ++- code/modules/tgui/tgui_alert.dm | 160 ++++++++++++++++++ code/modules/tgui/tgui_window.dm | 2 +- code/modules/tgui_panel/audio.dm | 2 +- code/modules/tgui_panel/external.dm | 42 ++--- code/modules/tgui_panel/telemetry.dm | 2 +- code/modules/tgui_panel/tgui_panel.dm | 4 +- sound/machines/computer/computer_end.ogg | Bin 0 -> 39674 bytes sound/machines/computer/computer_mid1.ogg | Bin 0 -> 21080 bytes sound/machines/computer/computer_mid2.ogg | Bin 0 -> 20835 bytes sound/machines/computer/computer_start.ogg | Bin 0 -> 69268 bytes tgstation.dme | 2 + 31 files changed, 302 insertions(+), 125 deletions(-) create mode 100644 code/modules/tgui/states/new_player.dm create mode 100644 code/modules/tgui/tgui_alert.dm create mode 100644 sound/machines/computer/computer_end.ogg create mode 100644 sound/machines/computer/computer_mid1.ogg create mode 100644 sound/machines/computer/computer_mid2.ogg create mode 100644 sound/machines/computer/computer_start.ogg diff --git a/code/modules/tgui/external.dm b/code/modules/tgui/external.dm index 8f47c609b2..565c595473 100644 --- a/code/modules/tgui/external.dm +++ b/code/modules/tgui/external.dm @@ -1,4 +1,4 @@ -/** +/*! * External tgui definitions, such as src_object APIs. * * Copyright (c) 2020 Aleksej Komarov @@ -71,12 +71,13 @@ * required action string The action/button that has been invoked by the user. * required params list A list of parameters attached to the button. * - * return bool If the UI should be updated or not. + * return bool If the user's input has been handled and the UI should update. */ /datum/proc/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state) + // SHOULD_CALL_PARENT(TRUE) // If UI is not interactive or usr calling Topic is not the UI user, bail. if(!ui || ui.status != UI_INTERACTIVE) - return 1 + return TRUE /** * public @@ -157,7 +158,7 @@ // Name the verb, and hide it from the user panel. set name = "uiclose" set hidden = TRUE - var/mob/user = src && src.mob + var/mob/user = src?.mob if(!user) return // Close all tgui datums based on window_id. diff --git a/code/modules/tgui/states.dm b/code/modules/tgui/states.dm index fa88cc1338..cc66e71953 100644 --- a/code/modules/tgui/states.dm +++ b/code/modules/tgui/states.dm @@ -1,4 +1,4 @@ -/** +/*! * Base state and helpers for states. Just does some sanity checks, * implement a proper state for in-depth checks. * @@ -83,27 +83,12 @@ return ..() /mob/living/silicon/robot/shared_ui_interaction(src_object) - // Disable UIs if the Borg is unpowered or locked. - if(!cell || cell.charge <= 0 || locked_down) + // Disable UIs if the object isn't installed in the borg AND the borg is either locked, has a dead cell, or no cell. + var/atom/device = src_object + if((istype(device) && device.loc != src) && (!cell || cell.charge <= 0 || locked_down)) return UI_DISABLED return ..() -/** - * public - * - * Check the distance for a living mob. - * Really only used for checks outside the context of a mob. - * Otherwise, use shared_living_ui_distance(). - * - * required src_object The object which owns the UI. - * required user mob The mob who opened/is using the UI. - * - * return UI_state The state of the UI. - */ -/atom/proc/contents_ui_distance(src_object, mob/living/user) - // Just call this mob's check. - return user.shared_living_ui_distance(src_object) - /** * public * diff --git a/code/modules/tgui/states/admin.dm b/code/modules/tgui/states/admin.dm index 227a294078..4da5061dfc 100644 --- a/code/modules/tgui/states/admin.dm +++ b/code/modules/tgui/states/admin.dm @@ -1,10 +1,12 @@ +/*! + * Copyright (c) 2020 Aleksej Komarov + * SPDX-License-Identifier: MIT + */ + /** * tgui state: admin_state * * Checks that the user is an admin, end-of-story. - * - * Copyright (c) 2020 Aleksej Komarov - * SPDX-License-Identifier: MIT */ GLOBAL_DATUM_INIT(admin_state, /datum/ui_state/admin_state, new) diff --git a/code/modules/tgui/states/always.dm b/code/modules/tgui/states/always.dm index 210f0896a2..2406dbb2b9 100644 --- a/code/modules/tgui/states/always.dm +++ b/code/modules/tgui/states/always.dm @@ -1,10 +1,12 @@ +/*! + * Copyright (c) 2020 Aleksej Komarov + * SPDX-License-Identifier: MIT + */ + /** * tgui state: always_state * * Always grants the user UI_INTERACTIVE. Period. - * - * Copyright (c) 2020 Aleksej Komarov - * SPDX-License-Identifier: MIT */ GLOBAL_DATUM_INIT(always_state, /datum/ui_state/always_state, new) diff --git a/code/modules/tgui/states/conscious.dm b/code/modules/tgui/states/conscious.dm index 670ca7c07e..8e35a97da3 100644 --- a/code/modules/tgui/states/conscious.dm +++ b/code/modules/tgui/states/conscious.dm @@ -1,10 +1,12 @@ +/*! + * Copyright (c) 2020 Aleksej Komarov + * SPDX-License-Identifier: MIT + */ + /** * tgui state: conscious_state * * Only checks if the user is conscious. - * - * Copyright (c) 2020 Aleksej Komarov - * SPDX-License-Identifier: MIT */ GLOBAL_DATUM_INIT(conscious_state, /datum/ui_state/conscious_state, new) diff --git a/code/modules/tgui/states/contained.dm b/code/modules/tgui/states/contained.dm index 1eb8edba25..98187b746e 100644 --- a/code/modules/tgui/states/contained.dm +++ b/code/modules/tgui/states/contained.dm @@ -1,10 +1,12 @@ +/*! + * Copyright (c) 2020 Aleksej Komarov + * SPDX-License-Identifier: MIT + */ + /** * tgui state: contained_state * * Checks that the user is inside the src_object. - * - * Copyright (c) 2020 Aleksej Komarov - * SPDX-License-Identifier: MIT */ GLOBAL_DATUM_INIT(contained_state, /datum/ui_state/contained_state, new) diff --git a/code/modules/tgui/states/deep_inventory.dm b/code/modules/tgui/states/deep_inventory.dm index a2b9276a59..a7351a0d2d 100644 --- a/code/modules/tgui/states/deep_inventory.dm +++ b/code/modules/tgui/states/deep_inventory.dm @@ -1,11 +1,13 @@ +/*! + * Copyright (c) 2020 Aleksej Komarov + * SPDX-License-Identifier: MIT + */ + /** * tgui state: deep_inventory_state * * Checks that the src_object is in the user's deep * (backpack, box, toolbox, etc) inventory. - * - * Copyright (c) 2020 Aleksej Komarov - * SPDX-License-Identifier: MIT */ GLOBAL_DATUM_INIT(deep_inventory_state, /datum/ui_state/deep_inventory_state, new) diff --git a/code/modules/tgui/states/default.dm b/code/modules/tgui/states/default.dm index 367e57beff..56220105a5 100644 --- a/code/modules/tgui/states/default.dm +++ b/code/modules/tgui/states/default.dm @@ -1,11 +1,13 @@ +/*! + * Copyright (c) 2020 Aleksej Komarov + * SPDX-License-Identifier: MIT + */ + /** * tgui state: default_state * * Checks a number of things -- mostly physical distance for humans * and view for robots. - * - * Copyright (c) 2020 Aleksej Komarov - * SPDX-License-Identifier: MIT */ GLOBAL_DATUM_INIT(default_state, /datum/ui_state/default, new) @@ -18,15 +20,10 @@ GLOBAL_DATUM_INIT(default_state, /datum/ui_state/default, new) /mob/living/default_can_use_topic(src_object) . = shared_ui_interaction(src_object) - if(. > UI_CLOSE && loc) - . = min(., loc.contents_ui_distance(src_object, src)) // Check the distance... - if(. == UI_INTERACTIVE) // Non-human living mobs can only look, not touch. - return UI_UPDATE - -/mob/living/carbon/human/default_can_use_topic(src_object) - . = shared_ui_interaction(src_object) - if(. > UI_CLOSE) + if(. > UI_CLOSE && loc) //must not be in nullspace. . = min(., shared_living_ui_distance(src_object)) // Check the distance... + if(. == UI_INTERACTIVE && !IsAdvancedToolUser(src)) // unhandy living mobs can only look, not touch. + return UI_UPDATE /mob/living/silicon/robot/default_can_use_topic(src_object) . = shared_ui_interaction(src_object) @@ -49,14 +46,9 @@ GLOBAL_DATUM_INIT(default_state, /datum/ui_state/default, new) return UI_INTERACTIVE return UI_CLOSE -/mob/living/simple_animal/default_can_use_topic(src_object) - . = shared_ui_interaction(src_object) - if(. > UI_CLOSE) - . = min(., shared_living_ui_distance(src_object)) //simple animals can only use things they're near. - /mob/living/silicon/pai/default_can_use_topic(src_object) // pAIs can only use themselves and the owner's radio. if((src_object == src || src_object == radio) && !stat) return UI_INTERACTIVE else - return ..() + return min(..(), UI_UPDATE) diff --git a/code/modules/tgui/states/hands.dm b/code/modules/tgui/states/hands.dm index 1c885ed414..e8cb844bf7 100644 --- a/code/modules/tgui/states/hands.dm +++ b/code/modules/tgui/states/hands.dm @@ -1,10 +1,12 @@ +/*! + * Copyright (c) 2020 Aleksej Komarov + * SPDX-License-Identifier: MIT + */ + /** * tgui state: hands_state * * Checks that the src_object is in the user's hands. - * - * Copyright (c) 2020 Aleksej Komarov - * SPDX-License-Identifier: MIT */ GLOBAL_DATUM_INIT(hands_state, /datum/ui_state/hands_state, new) diff --git a/code/modules/tgui/states/human_adjacent.dm b/code/modules/tgui/states/human_adjacent.dm index 2ac7c8637b..b9208f96cd 100644 --- a/code/modules/tgui/states/human_adjacent.dm +++ b/code/modules/tgui/states/human_adjacent.dm @@ -1,11 +1,13 @@ +/*! + * Copyright (c) 2020 Aleksej Komarov + * SPDX-License-Identifier: MIT + */ + /** * tgui state: human_adjacent_state * * In addition to default checks, only allows interaction for a * human adjacent user. - * - * Copyright (c) 2020 Aleksej Komarov - * SPDX-License-Identifier: MIT */ GLOBAL_DATUM_INIT(human_adjacent_state, /datum/ui_state/human_adjacent_state, new) diff --git a/code/modules/tgui/states/inventory.dm b/code/modules/tgui/states/inventory.dm index dc5dd0d57e..4bc121b278 100644 --- a/code/modules/tgui/states/inventory.dm +++ b/code/modules/tgui/states/inventory.dm @@ -1,11 +1,13 @@ +/*! + * Copyright (c) 2020 Aleksej Komarov + * SPDX-License-Identifier: MIT + */ + /** * tgui state: inventory_state * * Checks that the src_object is in the user's top-level * (hand, ear, pocket, belt, etc) inventory. - * - * Copyright (c) 2020 Aleksej Komarov - * SPDX-License-Identifier: MIT */ GLOBAL_DATUM_INIT(inventory_state, /datum/ui_state/inventory_state, new) diff --git a/code/modules/tgui/states/language_menu.dm b/code/modules/tgui/states/language_menu.dm index 6389b05cd5..eaaa125786 100644 --- a/code/modules/tgui/states/language_menu.dm +++ b/code/modules/tgui/states/language_menu.dm @@ -1,10 +1,12 @@ -/** - * tgui state: language_menu_state - * +/*! * Copyright (c) 2020 Aleksej Komarov * SPDX-License-Identifier: MIT */ +/** + * tgui state: language_menu_state + */ + GLOBAL_DATUM_INIT(language_menu_state, /datum/ui_state/language_menu, new) /datum/ui_state/language_menu/can_use_topic(src_object, mob/user) diff --git a/code/modules/tgui/states/new_player.dm b/code/modules/tgui/states/new_player.dm new file mode 100644 index 0000000000..cf6f83ed3a --- /dev/null +++ b/code/modules/tgui/states/new_player.dm @@ -0,0 +1,13 @@ +/** + * tgui state: new_player_state + * + * Checks that the user is a new_player, or if user is an admin + */ + +GLOBAL_DATUM_INIT(new_player_state, /datum/ui_state/new_player_state, new) + +/datum/ui_state/new_player_state/can_use_topic(src_object, mob/user) + if(isnewplayer(user) || check_rights_for(user.client, R_ADMIN)) + return UI_INTERACTIVE + return UI_CLOSE + diff --git a/code/modules/tgui/states/not_incapacitated.dm b/code/modules/tgui/states/not_incapacitated.dm index 16dcb7881e..48787c81a7 100644 --- a/code/modules/tgui/states/not_incapacitated.dm +++ b/code/modules/tgui/states/not_incapacitated.dm @@ -1,10 +1,12 @@ +/*! + * Copyright (c) 2020 Aleksej Komarov + * SPDX-License-Identifier: MIT + */ + /** * tgui state: not_incapacitated_state * * Checks that the user isn't incapacitated - * - * Copyright (c) 2020 Aleksej Komarov - * SPDX-License-Identifier: MIT */ GLOBAL_DATUM_INIT(not_incapacitated_state, /datum/ui_state/not_incapacitated_state, new) @@ -25,7 +27,7 @@ GLOBAL_DATUM_INIT(not_incapacitated_turf_state, /datum/ui_state/not_incapacitate turf_check = no_turfs /datum/ui_state/not_incapacitated_state/can_use_topic(src_object, mob/user) - if(user.stat) + if(user.stat != CONSCIOUS) return UI_CLOSE if(user.incapacitated() || (turf_check && !isturf(user.loc))) return UI_DISABLED diff --git a/code/modules/tgui/states/notcontained.dm b/code/modules/tgui/states/notcontained.dm index 1d4e6aec19..018e0fa030 100644 --- a/code/modules/tgui/states/notcontained.dm +++ b/code/modules/tgui/states/notcontained.dm @@ -1,11 +1,13 @@ +/*! + * Copyright (c) 2020 Aleksej Komarov + * SPDX-License-Identifier: MIT + */ + /** * tgui state: notcontained_state * * Checks that the user is not inside src_object, and then makes the * default checks. - * - * Copyright (c) 2020 Aleksej Komarov - * SPDX-License-Identifier: MIT */ GLOBAL_DATUM_INIT(notcontained_state, /datum/ui_state/notcontained_state, new) diff --git a/code/modules/tgui/states/observer.dm b/code/modules/tgui/states/observer.dm index d105de1c0c..b749afa894 100644 --- a/code/modules/tgui/states/observer.dm +++ b/code/modules/tgui/states/observer.dm @@ -1,10 +1,12 @@ +/*! + * Copyright (c) 2020 Aleksej Komarov + * SPDX-License-Identifier: MIT + */ + /** * tgui state: observer_state * * Checks that the user is an observer/ghost. - * - * Copyright (c) 2020 Aleksej Komarov - * SPDX-License-Identifier: MIT */ GLOBAL_DATUM_INIT(observer_state, /datum/ui_state/observer_state, new) diff --git a/code/modules/tgui/states/physical.dm b/code/modules/tgui/states/physical.dm index 3073039d14..b559758f72 100644 --- a/code/modules/tgui/states/physical.dm +++ b/code/modules/tgui/states/physical.dm @@ -1,10 +1,12 @@ +/*! + * Copyright (c) 2020 Aleksej Komarov + * SPDX-License-Identifier: MIT + */ + /** * tgui state: physical_state * * Short-circuits the default state to only check physical distance. - * - * Copyright (c) 2020 Aleksej Komarov - * SPDX-License-Identifier: MIT */ GLOBAL_DATUM_INIT(physical_state, /datum/ui_state/physical, new) diff --git a/code/modules/tgui/states/self.dm b/code/modules/tgui/states/self.dm index 4b6e3b9fd9..f7cef3f600 100644 --- a/code/modules/tgui/states/self.dm +++ b/code/modules/tgui/states/self.dm @@ -1,10 +1,12 @@ +/*! + * Copyright (c) 2020 Aleksej Komarov + * SPDX-License-Identifier: MIT + */ + /** * tgui state: self_state * * Only checks that the user and src_object are the same. - * - * Copyright (c) 2020 Aleksej Komarov - * SPDX-License-Identifier: MIT */ GLOBAL_DATUM_INIT(self_state, /datum/ui_state/self_state, new) diff --git a/code/modules/tgui/states/zlevel.dm b/code/modules/tgui/states/zlevel.dm index 64ea2fa1c0..f1a2282b3c 100644 --- a/code/modules/tgui/states/zlevel.dm +++ b/code/modules/tgui/states/zlevel.dm @@ -1,10 +1,12 @@ +/*! + * Copyright (c) 2020 Aleksej Komarov + * SPDX-License-Identifier: MIT + */ + /** * tgui state: z_state * * Only checks that the Z-level of the user and src_object are the same. - * - * Copyright (c) 2020 Aleksej Komarov - * SPDX-License-Identifier: MIT */ GLOBAL_DATUM_INIT(z_state, /datum/ui_state/z_state, new) diff --git a/code/modules/tgui/tgui.dm b/code/modules/tgui/tgui.dm index 9393b9641f..b99783f67a 100644 --- a/code/modules/tgui/tgui.dm +++ b/code/modules/tgui/tgui.dm @@ -1,4 +1,4 @@ -/** +/*! * Copyright (c) 2020 Aleksej Komarov * SPDX-License-Identifier: MIT */ @@ -50,7 +50,7 @@ */ /datum/tgui/New(mob/user, datum/src_object, interface, title, ui_x, ui_y) log_tgui(user, - "new [interface] fancy [user.client.prefs.tgui_fancy]", + "new [interface] fancy [user?.client?.prefs.tgui_fancy]", src_object = src_object) src.user = user src.src_object = src_object @@ -67,18 +67,20 @@ * public * * Open this UI (and initialize it with data). + * + * return bool - TRUE if a new pooled window is opened, FALSE in all other situations including if a new pooled window didn't open because one already exists. */ /datum/tgui/proc/open() if(!user.client) - return null + return FALSE if(window) - return null + return FALSE process_status() if(status < UI_UPDATE) - return null + return FALSE window = SStgui.request_pooled_window(user) if(!window) - return null + return FALSE opened_at = world.time window.acquire_lock(src) if(!window.is_ready()) @@ -101,6 +103,8 @@ with_static_data = TRUE)) SStgui.on_open(src) + return TRUE + /** * public * @@ -156,7 +160,7 @@ */ /datum/tgui/proc/send_asset(datum/asset/asset) if(!window) - CRASH("send_asset() can only be called after open().") + CRASH("send_asset() was called either without calling open() first or when open() did not return TRUE.") return window.send_asset(asset) /** @@ -237,7 +241,7 @@ * Run an update cycle for this UI. Called internally by SStgui * every second or so. */ -/datum/tgui/process(force = FALSE) +/datum/tgui/process(delta_time, force = FALSE) if(closing) return var/datum/host = src_object.ui_host(user) diff --git a/code/modules/tgui/tgui_alert.dm b/code/modules/tgui/tgui_alert.dm new file mode 100644 index 0000000000..1a86cca705 --- /dev/null +++ b/code/modules/tgui/tgui_alert.dm @@ -0,0 +1,160 @@ +/** + * Creates a TGUI alert window and returns the user's response. + * + * This proc should be used to create alerts that the caller will wait for a response from. + * Arguments: + * * user - The user to show the alert to. + * * message - The content of the alert, shown in the body of the TGUI window. + * * title - The of the alert modal, shown on the top of the TGUI window. + * * buttons - The options that can be chosen by the user, each string is assigned a button on the UI. + * * timeout - The timeout of the alert, after which the modal will close and qdel itself. Set to zero for no timeout. + */ +/proc/tgui_alert(mob/user, message, title, list/buttons, timeout = 60 SECONDS) + if (!user) + user = usr + if (!istype(user)) + if (istype(user, /client)) + var/client/client = user + user = client.mob + else + return + var/datum/tgui_modal/alert = new(user, message, title, buttons, timeout) + alert.ui_interact(user) + alert.wait() + if (alert) + . = alert.choice + qdel(alert) + +/** + * Creates an asynchronous TGUI alert window with an associated callback. + * + * This proc should be used to create alerts that invoke a callback with the user's chosen option. + * Arguments: + * * user - The user to show the alert to. + * * message - The content of the alert, shown in the body of the TGUI window. + * * title - The of the alert modal, shown on the top of the TGUI window. + * * buttons - The options that can be chosen by the user, each string is assigned a button on the UI. + * * callback - The callback to be invoked when a choice is made. + * * timeout - The timeout of the alert, after which the modal will close and qdel itself. Set to zero for no timeout. + */ +/proc/tgui_alert_async(mob/user, message, title, list/buttons, datum/callback/callback, timeout = 60 SECONDS) + if (!user) + user = usr + if (!istype(user)) + if (istype(user, /client)) + var/client/client = user + user = client.mob + else + return + var/datum/tgui_modal/async/alert = new(user, message, title, buttons, callback, timeout) + alert.ui_interact(user) + +/** + * # tgui_modal + * + * Datum used for instantiating and using a TGUI-controlled modal that prompts the user with + * a message and has buttons for responses. + */ +/datum/tgui_modal + /// The title of the TGUI window + var/title + /// The textual body of the TGUI window + var/message + /// The list of buttons (responses) provided on the TGUI window + var/list/buttons + /// The button that the user has pressed, null if no selection has been made + var/choice + /// The time at which the tgui_modal was created, for displaying timeout progress. + var/start_time + /// The lifespan of the tgui_modal, after which the window will close and delete itself. + var/timeout + /// Boolean field describing if the tgui_modal was closed by the user. + var/closed + +/datum/tgui_modal/New(mob/user, message, title, list/buttons, timeout) + src.title = title + src.message = message + src.buttons = buttons.Copy() + if (timeout) + src.timeout = timeout + start_time = world.time + QDEL_IN(src, timeout) + +/datum/tgui_modal/Destroy(force, ...) + SStgui.close_uis(src) + QDEL_NULL(buttons) + . = ..() + +/** + * Waits for a user's response to the tgui_modal's prompt before returning. Returns early if + * the window was closed by the user. + */ +/datum/tgui_modal/proc/wait() + while (!choice && !closed) + stoplag(1) + +/datum/tgui_modal/ui_interact(mob/user, datum/tgui/ui) + ui = SStgui.try_update_ui(user, src, ui) + if(!ui) + ui = new(user, src, "AlertModal") + ui.open() + +/datum/tgui_modal/ui_close(mob/user) + . = ..() + closed = TRUE + +/datum/tgui_modal/ui_state(mob/user) + return GLOB.always_state + +/datum/tgui_modal/ui_data(mob/user) + . = list( + "title" = title, + "message" = message, + "buttons" = buttons + ) + + if(timeout) + .["timeout"] = CLAMP01((timeout - (world.time - start_time) - 1 SECONDS) / (timeout - 1 SECONDS)) + +/datum/tgui_modal/ui_act(action, list/params) + . = ..() + if (.) + return + switch(action) + if("choose") + if (!(params["choice"] in buttons)) + return + choice = params["choice"] + SStgui.close_uis(src) + return TRUE + +/** + * # async tgui_modal + * + * An asynchronous version of tgui_modal to be used with callbacks instead of waiting on user responses. + */ +/datum/tgui_modal/async + /// The callback to be invoked by the tgui_modal upon having a choice made. + var/datum/callback/callback + +/datum/tgui_modal/async/New(mob/user, message, title, list/buttons, callback, timeout) + ..(user, title, message, buttons, timeout) + src.callback = callback + +/datum/tgui_modal/async/Destroy(force, ...) + QDEL_NULL(callback) + . = ..() + +/datum/tgui_modal/async/ui_close(mob/user) + . = ..() + qdel(src) + +/datum/tgui_modal/async/ui_act(action, list/params) + . = ..() + if (!. || choice == null) + return + callback.InvokeAsync(choice) + qdel(src) + +/datum/tgui_modal/async/wait() + return diff --git a/code/modules/tgui/tgui_window.dm b/code/modules/tgui/tgui_window.dm index f24a46e33d..61e4db27e7 100644 --- a/code/modules/tgui/tgui_window.dm +++ b/code/modules/tgui/tgui_window.dm @@ -1,4 +1,4 @@ -/** +/*! * Copyright (c) 2020 Aleksej Komarov * SPDX-License-Identifier: MIT */ diff --git a/code/modules/tgui_panel/audio.dm b/code/modules/tgui_panel/audio.dm index e62c4b5bc1..6806961599 100644 --- a/code/modules/tgui_panel/audio.dm +++ b/code/modules/tgui_panel/audio.dm @@ -1,4 +1,4 @@ -/** +/*! * Copyright (c) 2020 Aleksej Komarov * SPDX-License-Identifier: MIT */ diff --git a/code/modules/tgui_panel/external.dm b/code/modules/tgui_panel/external.dm index 35aa31eca7..89973a925d 100644 --- a/code/modules/tgui_panel/external.dm +++ b/code/modules/tgui_panel/external.dm @@ -1,4 +1,4 @@ -/** +/*! * Copyright (c) 2020 Aleksej Komarov * SPDX-License-Identifier: MIT */ @@ -12,19 +12,21 @@ set name = "Fix chat" set category = "OOC" var/action - log_tgui(src, "Started fixing.", - context = "verb/fix_tgui_panel") - // Not ready - if(!tgui_panel?.is_ready()) - log_tgui(src, "Panel is not ready", - context = "verb/fix_tgui_panel") - tgui_panel.window.send_message("ping", force = TRUE) - action = alert(src, "Method: Pinging the panel.\nWait a bit and tell me if it's fixed", "", "Fixed", "Nope") - if(action == "Fixed") - log_tgui(src, "Fixed by sending a ping", - context = "verb/fix_tgui_panel") - return - // Catch all solution + log_tgui(src, "Started fixing.", context = "verb/fix_tgui_panel") + + nuke_chat() + + // Failed to fix + action = alert(src, "Did that work?", "", "Yes", "No, switch to old ui") + if (action == "No, switch to old ui") + winset(src, "output", "on-show=&is-disabled=0&is-visible=1") + winset(src, "browseroutput", "is-disabled=1;is-visible=0") + log_tgui(src, "Failed to fix.", context = "verb/fix_tgui_panel") + +/client/proc/nuke_chat() + // Catch all solution (kick the whole thing in the pants) + winset(src, "output", "on-show=&is-disabled=0&is-visible=1") + winset(src, "browseroutput", "is-disabled=1;is-visible=0") if(!tgui_panel || !istype(tgui_panel)) log_tgui(src, "tgui_panel datum is missing", context = "verb/fix_tgui_panel") @@ -33,15 +35,3 @@ // Force show the panel to see if there are any errors winset(src, "output", "is-disabled=1&is-visible=0") winset(src, "browseroutput", "is-disabled=0;is-visible=1") - action = alert(src, "Method: Reinitializing the panel.\nWait a bit and tell me if it's fixed", "", "Fixed", "Nope") - if(action == "Fixed") - log_tgui(src, "Fixed by calling 'initialize'", - context = "verb/fix_tgui_panel") - return - // Failed to fix - action = alert(src, "Welp, I'm all out of ideas. Try closing BYOND and reconnecting.\nWe could also disable tgui_panel and re-enable the old UI", "", "Thanks anyways", "Switch to old UI") - if (action == "Switch to old UI") - winset(src, "output", "on-show=&is-disabled=0&is-visible=1") - winset(src, "browseroutput", "is-disabled=1;is-visible=0") - log_tgui(src, "Failed to fix.", - context = "verb/fix_tgui_panel") diff --git a/code/modules/tgui_panel/telemetry.dm b/code/modules/tgui_panel/telemetry.dm index 79087d8500..e1abfb1e12 100644 --- a/code/modules/tgui_panel/telemetry.dm +++ b/code/modules/tgui_panel/telemetry.dm @@ -1,4 +1,4 @@ -/** +/*! * Copyright (c) 2020 Aleksej Komarov * SPDX-License-Identifier: MIT */ diff --git a/code/modules/tgui_panel/tgui_panel.dm b/code/modules/tgui_panel/tgui_panel.dm index b983484046..b2fb120100 100644 --- a/code/modules/tgui_panel/tgui_panel.dm +++ b/code/modules/tgui_panel/tgui_panel.dm @@ -1,4 +1,4 @@ -/** +/*! * Copyright (c) 2020 Aleksej Komarov * SPDX-License-Identifier: MIT */ @@ -55,7 +55,7 @@ */ /datum/tgui_panel/proc/on_initialize_timed_out() // Currently does nothing but sending a message to old chat. - SEND_TEXT(client, "Failed to load fancy chat, reverting to old chat. Certain features won't work.") + SEND_TEXT(client, "Failed to load fancy chat, click HERE to attempt to reload it.") /** * private diff --git a/sound/machines/computer/computer_end.ogg b/sound/machines/computer/computer_end.ogg new file mode 100644 index 0000000000000000000000000000000000000000..cd3f770e0bd6e4b68bf55fa74d91ffef84833888 GIT binary patch literal 39674 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�bq2m24@vrHB|pkTC}AqHb}6et{oR|1XVt!L z({~?@WlL1YY_BG|H9jOXe!Ik9gx#&c%KI;oBIa)WtfGaXuSd#|JC9LE2}3mq%&d!o z!ubnyN&`(=(CS1Gk;cG&AxT(dZ3VlVTe4pSQFi5BLq2?YT)=s7^5SOv-KPddbwYaC zE;6Le`fT-|RxpndXa7vE{cVL_ic6oOEo~mZCcfC?)+wPFt{=hyY$K62qipxB4ki5q zhC5a=9fgU9BDrp?Gw&%yg2JeT9t3i^cC6W#rOPsrmEwzvwjt2yhWm+z<}l{_5ro6X zZ%9iasmPH=0ZYP;LxjfAgUDfafmehBZfW%fe-eLZ1sYpR-;ue^CVyIb%=6=M|KnM^ z-{}^c;9$qH_!m6CecD4ke?YzA%|y^OlJ|w8%Qwrk;8Ik$FTXiU#^^`?w8rfgFdX^^ zQn2xi36p0=R9ZZ9e}Dh=;!Qy|`o?V42xzph!|Ux(BK^~4;1qCInR|Jk5T`!IzQz`w z#J5Bcdo96z{N{yKS;e?+$k z-lf*>wD>Lg>Nl@*Mav0Bkr!?{bBS^hja5!iWF;f3lE(fy5E4=>i^#T;n%4G2uEM&LaGU@2eM6_mFE~<0WH(M9R9g5vg`3$Y59}K4pxfZa0;+-5ndL2nl+1U+Ej8$)xj32`p&VmpXBKe_5t2ulGDOx~!~ne6_fBim+T~ z@vE#210;%NH?X7JNF?U7DJQu9C%X<`go)c@r=S8`la&5?=^i`zfK2(GR@`jM zzC9e8SA>;kw|>`Cd+{sa#N_ik$CaNGTuHurS)BbtGPPeY#8qk>55}dR`abVh+BbHG zeRj{RP_MA~dk2SMrcuM2&P#m!7zudXpyq|o)zvYj7i|-twCV5kv-M}-c@$vH>7g@j zw+2yMP*uiS5BpgZUKJG}dAwcSd*-?id)OheZ?bVuSVND2rXTS->BN`(h5@pE7$xes z7G?x2D8z-&`76;L=RK-~UbOdTM+$x?8PE7R+t^$VkXEp|5gNmchB`x=-_*T;F@J`* z^wB&)EmMvuXuHE(wCE8*ttflc~|ENKUJbG-Gt+{i;7Lz1*L9NtiW#kf|wmW7zB zhOmUbSx|hoDkQM?j!19v?#&%y+kALA?hIq0Vd%eBnYnc4chb!=J=XI#{d&tz52aMv zC{TUn)Q!gvMIKl_&5V11nL!URDaP9L^Qbn^kG#X8f$0dj9rKwE0m1a%TXBktsRdDL$B%HR`ZiHRUfP+_!ju6Off{-1rEy}&=;_FiB Z0_bf+A}aN3*h*CT&VRql|NY4K{{a#{RH^^~ literal 0 HcmV?d00001 diff --git a/sound/machines/computer/computer_mid1.ogg b/sound/machines/computer/computer_mid1.ogg new file mode 100644 index 0000000000000000000000000000000000000000..d183bf5b7afc9e0bb5890ef9de0e9e1999d32038 GIT binary patch literal 21080 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�V}=OTWHiQ`Q7CMbu-(Z`%t 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 Zyl5b9T6pt>Y5#r7UwE6p@IEcPdjRhWDHQ+! literal 0 HcmV?d00001 diff --git a/sound/machines/computer/computer_mid2.ogg b/sound/machines/computer/computer_mid2.ogg new file mode 100644 index 0000000000000000000000000000000000000000..15e53ded8093a7c9cadfa0519f643874f5971275 GIT binary patch literal 20835 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%0D|?AyeU!aSZo)o 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