client 
Client datum
A datum that is created whenever a user joins a BYOND world, one will exist for every active connected player
when they first connect, this client object is created and [/client/New] is called
When they disconnect, this client object is deleted and [/client/Del] is called
All client topic calls go through [/client/Topic] first, so a lot of our specialised topic handling starts here
Vars | |
| completed_asset_jobs | List of all completed blocking send jobs awaiting acknowledgement by send_asset |
|---|---|
| externalreplyamount | Internal counter for clients sending external (IRC/Discord) relay messages via ahelp to prevent spamming. Set to a number every time an admin reply is sent, decremented for every client send. |
| holder | Contains admin info. Null if client is not an admin. |
| last_asset_job | Last asset send job id. |
| last_message | Contains the last message sent by this client - used to protect against copy-paste spamming. |
| last_message_count | contins a number of how many times a message identical to last_message was sent. |
| parent_type | This line makes clients parent type be a datum |
| script | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!HEY LISTEN!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! |
| show_verb_panel | Disables default BYOND verb panel in favor of Stat Panel™ |
| tgui_cache_reloaded | global |
| tgui_windows | global |
| tooltips | datum that controls the displaying and hiding of tooltips |
| total_count_reset | Next tick to reset the total message counter |
| total_message_count | How many messages sent in the last 10 seconds |
| verb_tabs | List of Stat Panel tabs |
Procs | |
| Process_Grab | Process_Grab() Called by client/Move() Checks to see if you are grabbing anything and if moving will affect your grab. |
| _Topic | dumb workaround because byond doesnt seem to recognize the PROC_REF(Topic) typepath for /datum/proc/Topic() from the client Topic, so we cant queue it without this |
| asset_cache_confirm_arrival | Process asset cache client topic calls for "asset_cache_confirm_arrival=[INT]" |
| asset_cache_preload_data | Process asset cache client topic calls for "asset_cache_preload_data=[HTML+JSON_STRING]" |
| asset_cache_update_json | Updates the client side stored json file used to keep track of what assets the client has between restarts/reconnects. |
| browse_queue_flush | Blocks until all currently sending browse and browse_rsc assets have been sent. Due to byond limitations, this proc will sleep for 1 client round trip even if the client has no pending asset sends. This proc will return an untrue value if it had to return before confirming the send, such as timeout or the client going away. |
| init_verbs | Compiles a full list of verbs and sends it to the browser |
| nanoclose | Called when a Nano UI window is closed This is how Nano handles closed windows It must be a verb so that it can be called using winset |
| resetnano | A "panic button" verb to close all UIs on current mob. Use it when the bug with UI not opening (because the server still considers it open despite it being closed on client) pops up. Feel free to remove it once the bug is confirmed to be fixed. |
| uiclose | verb |
Var Details
completed_asset_jobs 
List of all completed blocking send jobs awaiting acknowledgement by send_asset
externalreplyamount 
Internal counter for clients sending external (IRC/Discord) relay messages via ahelp to prevent spamming. Set to a number every time an admin reply is sent, decremented for every client send.
holder 
Contains admin info. Null if client is not an admin.
last_asset_job 
Last asset send job id.
last_message 
Contains the last message sent by this client - used to protect against copy-paste spamming.
last_message_count 
contins a number of how many times a message identical to last_message was sent.
parent_type 
This line makes clients parent type be a datum
By default in byond if you define a proc on datums, that proc will exist on nearly every single type from icons to images to atoms to mobs to objs to turfs to areas, it won't however, appear on client
instead by default they act like their own independent type so while you can do isdatum(icon) and have it return true, you can't do isdatum(client), it will always return false.
This makes writing oo code hard, when you have to consider this extra special case
This line prevents that, and has never appeared to cause any ill effects, while saving us an extra pain to think about
This line is widely considered black fucking magic, and the fact it works is a puzzle to everyone involved, including the current engine developer, lummox
If you are a future developer and the engine source is now available and you can explain why this is the way it is, please do update this comment
script 
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!HEY LISTEN!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
show_verb_panel 
Disables default BYOND verb panel in favor of Stat Panel™
tgui_cache_reloaded 
global
TRUE if cache was reloaded by tgui dev server at least once.
tgui_windows 
global
Tracks open windows for a user.
tooltips 
datum that controls the displaying and hiding of tooltips
total_count_reset 
Next tick to reset the total message counter
total_message_count 
How many messages sent in the last 10 seconds
verb_tabs 
List of Stat Panel tabs
Proc Details
Process_Grab
Process_Grab() Called by client/Move() Checks to see if you are grabbing anything and if moving will affect your grab.
_Topic
dumb workaround because byond doesnt seem to recognize the PROC_REF(Topic) typepath for /datum/proc/Topic() from the client Topic, so we cant queue it without this
asset_cache_confirm_arrival
Process asset cache client topic calls for "asset_cache_confirm_arrival=[INT]"
asset_cache_preload_data
Process asset cache client topic calls for "asset_cache_preload_data=[HTML+JSON_STRING]"
asset_cache_update_json
Updates the client side stored json file used to keep track of what assets the client has between restarts/reconnects.
browse_queue_flush
Blocks until all currently sending browse and browse_rsc assets have been sent. Due to byond limitations, this proc will sleep for 1 client round trip even if the client has no pending asset sends. This proc will return an untrue value if it had to return before confirming the send, such as timeout or the client going away.
init_verbs
Compiles a full list of verbs and sends it to the browser
nanoclose
Called when a Nano UI window is closed This is how Nano handles closed windows It must be a verb so that it can be called using winset
@return nothing
resetnano
A "panic button" verb to close all UIs on current mob. Use it when the bug with UI not opening (because the server still considers it open despite it being closed on client) pops up. Feel free to remove it once the bug is confirmed to be fixed.
@return nothing
uiclose
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.