mirror of
https://github.com/yogstation13/Yogstation.git
synced 2025-02-26 09:04:50 +00:00
MrDoomBringer admin: Admins can now spawn things in ICly (as well as do a bunch of other cool new stuff) using the Config/Launch Supplypod verb! code: also supplypods have been refactored
99 lines
2.5 KiB
Plaintext
99 lines
2.5 KiB
Plaintext
/**
|
|
* tgui external
|
|
*
|
|
* Contains all external tgui declarations.
|
|
**/
|
|
|
|
/**
|
|
* public
|
|
*
|
|
* Used to open and update UIs.
|
|
* If this proc is not implemented properly, the UI will not update correctly.
|
|
*
|
|
* required user mob The mob who opened/is using the UI.
|
|
* optional ui_key string The ui_key of the UI.
|
|
* optional ui datum/tgui The UI to be updated, if it exists.
|
|
* optional force_open bool If the UI should be re-opened instead of updated.
|
|
* optional master_ui datum/tgui The parent UI.
|
|
* optional state datum/ui_state The state used to determine status.
|
|
**/
|
|
/datum/proc/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = FALSE, datum/tgui/master_ui = null, datum/ui_state/state = GLOB.default_state)
|
|
return FALSE // Not implemented.
|
|
|
|
/**
|
|
* public
|
|
*
|
|
* Data to be sent to the UI.
|
|
* This must be implemented for a UI to work.
|
|
*
|
|
* required user mob The mob interacting with the UI.
|
|
*
|
|
* return list Data to be sent to the UI.
|
|
**/
|
|
/datum/proc/ui_data(mob/user)
|
|
return list() // Not implemented.
|
|
|
|
|
|
/**
|
|
* public
|
|
*
|
|
* Called on a UI when the UI receieves a href.
|
|
* Think of this as Topic().
|
|
*
|
|
* 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.
|
|
**/
|
|
/datum/proc/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state)
|
|
if(!ui || ui.status != UI_INTERACTIVE)
|
|
return 1 // If UI is not interactive or usr calling Topic is not the UI user, bail.
|
|
|
|
|
|
/**
|
|
* private
|
|
*
|
|
* The UI's host object (usually src_object).
|
|
* This allows modules/datums to have the UI attached to them,
|
|
* and be a part of another object.
|
|
**/
|
|
/datum/proc/ui_host(mob/user)
|
|
return src // Default src.
|
|
|
|
/**
|
|
* global
|
|
*
|
|
* Used to track UIs for a mob.
|
|
**/
|
|
/mob/var/list/open_uis = list()
|
|
/**
|
|
* public
|
|
*
|
|
* Called on a UI's object when the UI is closed, not to be confused with client/verb/uiclose(), which closes the ui window
|
|
*
|
|
*
|
|
**/
|
|
/datum/proc/ui_close()
|
|
|
|
/**
|
|
* verb
|
|
*
|
|
* Called by UIs when they are closed.
|
|
* Must be a verb so winset() can call it.
|
|
*
|
|
* required uiref ref The UI that was closed.
|
|
**/
|
|
/client/verb/uiclose(ref as text)
|
|
// Name the verb, and hide it from the user panel.
|
|
set name = "uiclose"
|
|
set hidden = 1
|
|
|
|
// Get the UI based on the ref.
|
|
var/datum/tgui/ui = locate(ref)
|
|
|
|
// If we found the UI, close it.
|
|
if(istype(ui))
|
|
ui.close()
|
|
// Unset machine just to be sure.
|
|
if(src && src.mob)
|
|
src.mob.unset_machine() |