Common Lisp Package: ESCALATOR

README:

FUNCTION

Public

ENTITY-COMPONENT (ENTITY COMPONENT)

Returns the component instance for entity or nil.

MAKE-ENTITY (PROTOTYPE COMPONENTS &REST INITARGS)

Instantiates an entity from the given prototype (shallow copy) and additionally associated with the specified components. Internal: * Error if any component doesn't exist. * Enforce uniqueness of components by pushing into a new list. * Shallow copy prototype components. * Instantiate new components (overwrite if they already exist). * Copy references to dependencies (error if it doesn't exist).

Undocumented

SETFENTITY-COMPONENT (VALUE ENTITY COMPONENT)

Private

Undocumented

COMPONENT-DATA (COMPONENT)

SETFCOMPONENT-DATA (VALUE COMPONENT)

COMPONENT-META (COMPONENT)

SETFCOMPONENT-META (VALUE COMPONENT)

CONTAINS-CIRCULARITY-P (GRAPH)

DEPENDENCY-INDEX (COMPONENT DEPENDENCY)

FIELD-INDEX (COMPONENT FIELD)

NEXT-UUID

SYSTEM-CODE (COMPONENT)

SETFSYSTEM-CODE (VALUE COMPONENT)

TOTAL-ORDER (GRAPH)

MACRO

Public

DEFCOMPONENT (NAME (&REST DEPENDENCIES) (&REST FIELDS))

Defines a new component with the given dependencies and fields. Internal: * Error if name isn't a non-nil symbol. * Error if dependencies contains a non-symbol or nil. * Error if fields contains a non-symbol or nil. * Error if dependency doesn't exist. * Error if dependencies include self. * Error if dependencies cause cycle in component precendence list. * Warn on redefinition of component. * Warn if field hides a previously defined field for any component. * Adds component entry to *component-meta* (name -> deps * fields * initargs * size). * Defines macros for each field accessor. * Initializes global hash-table for component in *component-data*.

DEFSYSTEM (NAME (ENTITY COMPONENT &REST DEPENDENCIES) &BODY BODY)

Defines a system for the given component. Internal: * Error if name, entity, and component aren't non-nil symbols. * Error if dependencies aren't symbols (nil allowed). * Error if name doesn't refer to a defined component. * Error if number of dependencies doesn't match component. * Warns on redefinition of system. * Stores code to operate on component data.

Undocumented

SYSTEM-LOOP

VARIABLE

Private

Undocumented

*COMPONENT-DATA*

*COMPONENT-META*

*SYSTEM-CODE*