datum 
Vars | |
_listening_to | Associative list of observ type -> datums we're listening to; contains no information about callbacks as that's already stored on their event_listeners list. |
---|---|
abstract_type | Used to indicate that this type is abstract and should not itself be instantiated. |
active_timers | Used by the SStimer subsystem |
event_listen_count | Tracks how many event registrations we are listening to. Used in cleanup to prevent dangling references. |
event_listeners | Associative list of observ type -> associative list of listeners -> an instance/list of procs to call on the listener when the event is raised. |
event_source_count | Tracks how many event registrations are listening to us. Used in cleanup to prevent dangling references. |
gc_destroyed | Time when this object was destroyed. |
global_listen_count | Tracks how many global event registrations we are listening to. Used in cleanup to prevent dangling references. |
has_state_machine | Used to avoid unnecessary refstring creation in Destroy(). |
is_processing | Indicates if a processing subsystem is currenting queuing this datum |
open_uis | Lazy associative list of /nanoui UIs opened on this object, according to ui_key. Not to be confused with opened_uis on mob. |
Procs | |
CanClone | Returns whether the object supports being cloned. This is useful for things that should only ever exist once in the world. |
Clone | This proc returns a clone of the src datum. Clone here implies a copy similar in terms of look and contents, but internally may differ a bit. The clone shall not keep references onto instances owned by the original, in most cases. Try to avoid overriding this proc directly and instead override GetCloneArgs() and PopulateClone(). |
GetCloneArgs | Returns a list with the arguments passed to the new() of a cloned instance. Override this, instead of Clone() itself. |
PopulateClone | Used to allow sub-classes to do further processing on the cloned instance returned by Clone(). Override this, instead of Clone() itself. ** Please avoid running update code in here if possible. You could always override Clone() for this kind of things, so we don't end up with 50 calls to update_icon in the chain. ** |
raise_event_non_global | A variant of raise_event for extra-fast processing, for observs that are certain to never have any global registrations. |
ui_data | Data to be sent to the UI. This must be implemented for a UI to work. |
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
_listening_to 
Associative list of observ type -> datums we're listening to; contains no information about callbacks as that's already stored on their event_listeners list.
abstract_type 
Used to indicate that this type is abstract and should not itself be instantiated.
active_timers 
Used by the SStimer subsystem
event_listen_count 
Tracks how many event registrations we are listening to. Used in cleanup to prevent dangling references.
event_listeners 
Associative list of observ type -> associative list of listeners -> an instance/list of procs to call on the listener when the event is raised.
event_source_count 
Tracks how many event registrations are listening to us. Used in cleanup to prevent dangling references.
gc_destroyed 
Time when this object was destroyed.
global_listen_count 
Tracks how many global event registrations we are listening to. Used in cleanup to prevent dangling references.
has_state_machine 
Used to avoid unnecessary refstring creation in Destroy().
is_processing 
Indicates if a processing subsystem is currenting queuing this datum
open_uis 
Lazy associative list of /nanoui UIs opened on this object, according to ui_key. Not to be confused with opened_uis on mob.
Proc Details
CanClone
Returns whether the object supports being cloned. This is useful for things that should only ever exist once in the world.
Clone
This proc returns a clone of the src datum. Clone here implies a copy similar in terms of look and contents, but internally may differ a bit. The clone shall not keep references onto instances owned by the original, in most cases. Try to avoid overriding this proc directly and instead override GetCloneArgs() and PopulateClone().
GetCloneArgs
Returns a list with the arguments passed to the new() of a cloned instance. Override this, instead of Clone() itself.
PopulateClone
Used to allow sub-classes to do further processing on the cloned instance returned by Clone(). Override this, instead of Clone() itself. ** Please avoid running update code in here if possible. You could always override Clone() for this kind of things, so we don't end up with 50 calls to update_icon in the chain. **
raise_event_non_global
A variant of raise_event for extra-fast processing, for observs that are certain to never have any global registrations.
ui_data
Data to be sent to the UI. This must be implemented for a UI to work.
@param user /mob The mob who interacting with the 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")
@return data /list Data to be sent to the UI
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