Civilization 13 - Modules - Types — Var Details - Proc Details - Search

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_lookupComponents attached to this datum
_signal_procsLazy associated list in the structure of target -> list(signal -> proctype) that are run when the datum receives that signal
active_timersActive timers with this datum as the target
cooldownsLazy associative list of currently active cooldowns.
datum_flagsDatum level flags
gc_destroyedTick count time when this object was destroyed.
weak_referenceA weak reference to another datum

Procs

TopicCalled when a href for this datum is clicked
_SendSignalStub for the SEND_SIGNAL macro - never called since nothing registers signals
after_loadPERSISTENCE STUFF
deserialize_jsonDeserializes from JSON. Does not parse type.
deserialize_listAccepts a LIST from deserialize_datum. Should return src or another datum.
serialize_jsonSerializes into JSON. Does not encode type.
serialize_listReturn a LIST for serialize_datum to encode! Not the actual json!
ui_interactThe 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