datum 
The absolute base class for everything
A datum instantiated has no physical world prescence, use an atom if you want something that actually lives in the world
Be very mindful about adding variables to this class, they are inherited by every single thing in the entire game, and so you can easily cause memory usage to rise a lot with careless use of variables at this level
ATOM ADDITIONS
Vars | |
| _listen_lookup | Components attached to this datum |
|---|---|
| _signal_procs | Lazy associated list in the structure of target -> list(signal -> proctype) that are run when the datum receives that signal |
| active_timers | Active timers with this datum as the target |
| cooldowns | Lazy associative list of currently active cooldowns. |
| datum_flags | Datum level flags |
| gc_destroyed | Tick count time when this object was destroyed. |
| weak_reference | A weak reference to another datum |
Procs | |
| Topic | Called when a href for this datum is clicked |
| _SendSignal | Stub for the SEND_SIGNAL macro - never called since nothing registers signals |
| after_load | PERSISTENCE STUFF |
| deserialize_json | Deserializes from JSON. Does not parse type. |
| deserialize_list | Accepts a LIST from deserialize_datum. Should return src or another datum. |
| serialize_json | Serializes into JSON. Does not encode type. |
| serialize_list | Return a LIST for serialize_datum to encode! Not the actual json! |
| ui_interact | The ui_interact proc is used to open and update Nano UIs If ui_interact is not used then the UI will not update correctly ui_interact is currently defined for /atom/movable |
Var Details
_listen_lookup 
Components attached to this datum
Lazy associated list in the structure of type:component/list of components
Any datum registered to receive signals from this datum is in this list
Lazy associated list in the structure of signal:registree/list of registrees
_signal_procs 
Lazy associated list in the structure of target -> list(signal -> proctype) that are run when the datum receives that signal
active_timers 
Active timers with this datum as the target
cooldowns 
Lazy associative list of currently active cooldowns.
cooldowns [ COOLDOWN_INDEX ] = add_timer() add_timer() returns the truthy value of -1 when not stoppable, and else a truthy numeric index
datum_flags 
Datum level flags
gc_destroyed 
Tick count time when this object was destroyed.
If this is non zero then the object has been garbage collected and is awaiting either a hard del by the GC subsystme, or to be autocollected (if it has no references)
weak_reference 
A weak reference to another datum
Proc Details
Topic
Called when a href for this datum is clicked
Sends a COMSIG_TOPIC signal
_SendSignal
Stub for the SEND_SIGNAL macro - never called since nothing registers signals
after_load
PERSISTENCE STUFF
deserialize_json
Deserializes from JSON. Does not parse type.
deserialize_list
Accepts a LIST from deserialize_datum. Should return src or another datum.
serialize_json
Serializes into JSON. Does not encode type.
serialize_list
Return a LIST for serialize_datum to encode! Not the actual json!
ui_interact
The ui_interact proc is used to open and update Nano UIs If ui_interact is not used then the UI will not update correctly ui_interact is currently defined for /atom/movable
@param user /mob The mob who is interacting with this ui @param ui_key string A string key to use for this ui. Allows for multiple unique uis on one obj/mob (defaut value "main") @param ui /datum/nanoui This parameter is passed by the nanoui process() proc when updating an open ui @param force_open boolean Force the UI to (re)open, even if it's already open
@return nothing