Module tiny-ecs
Info:
| tiny._VERSION |
Tiny-ecs Version, a period-separated three number string like "1.2.3" |
Fields
-
tiny._VERSION
-
Tiny-ecs Version, a period-separated three number string like "1.2.3"
Filter functions
A Filter is a function that selects which Entities apply to a System.
-
tiny.requireAll (...)
-
Makes a Filter that filters Entities with specified Components.
An Entity must have all Components to match the filter.
Parameters:
-
tiny.requireOne (...)
-
Makes a Filter that filters Entities with specified Components.
An Entity must have at least one specified Component to match the filter.
Parameters:
System functions
A System a wrapper around function callbacks for manipulating Entities.
-
tiny.processingSystem (filter, entityCallback, onAdd, onRemove)
-
Creates a System that processes Entities every update. Also provides
optional callbacks for when Entities are added or removed from the System.
Parameters:
- filter
Function of one argument, an Entity, that returns a boolean
- entityCallback
Function of two arguments, an Entity and delta time
- onAdd
Optional callback for when Entities are added to the System that
takes one argument, an Entity
- onRemove
Similar to onAdd, but is instead called when an Entity is
removed from the System
-
tiny.system (callback, filter, entityCallback, onAdd, onRemove)
-
Creates a System.
Parameters:
- callback
Function of one argument, delta time, that is called once
per world update
- filter
Function of one argument, an Entity, that returns a boolean
- entityCallback
Function of two arguments, an Entity and delta time
- onAdd
Optional callback for when Enities are added to the System that
takes one argument, an Entity
- onRemove
Similar to onAdd, but is instead called when an Entity is
removed from the System
World functions
A World is a container that manages Entities and Systems. The tiny-ecs module
is set to be the
__index of all World tables, so the often clearer syntax of
World:method can be used for any function in the library. For example,
tiny.add(world, e1, e2, e3) is the same as
world:add(e1, e2, e3).
-
tiny.activate (world, ...)
-
Activates Systems in the World.
Activated Systems will be update whenever tiny.update(world, dt) is called.
Parameters:
- world
- ...
Systems to activate. The Systems must already be added to the
World.
-
tiny.add (world, ...)
-
Adds Entities and Systems to the World.
New objects will enter the World the next time World:update(dt) is called.
Also call this method when an Entity has had its Components changed, such
that it matches different Filters.
Parameters:
- world
- ...
Systems and Entities
-
tiny.clearEntities (world)
-
Removes all Entities from the World.
When World:update(dt) is next called,
all Entities will be removed.
Parameters:
-
tiny.clearSystems (world)
-
Removes all Systems from the World.
When World:update(dt) is next called,
all Systems will be removed.
Parameters:
-
tiny.deactivate (world, ...)
-
Deactivates Systems in the World.
Deactivated Systems must be update manually, and will not update when the
rest of World updates. They will, however, process new Entities added while
the System is deactivated.
Parameters:
- world
- ...
Systems to deactivate. The Systems must already be added to the
World.
-
tiny.getEntityCount (world)
-
Gets count of Entities in World.
Parameters:
-
tiny.getSystemCount (world)
-
Gets count of Systems in World.
Parameters:
-
tiny.manageEntities (world)
-
Adds and removes Entities that have been marked.
The user of this library should seldom if ever call this.
Parameters:
-
tiny.manageSystems (world)
-
Adds and removes Systems that have been marked from the World.
The user of this library should seldom if ever call this.
Parameters:
-
tiny.remove (world, ...)
-
Removes Entities and Systems from the World. Objects will exit the World the
next time World:update(dt) is called.
Parameters:
- world
- ...
Systems and Entities
-
tiny.update (world, dt)
-
Updates the World.
Frees Entities that have been marked for freeing, adds
entities that have been marked for adding, etc.
Parameters:
-
tiny.updateSystem (world, system, dt)
-
Updates a System.
Parameters:
- world
- system
A System in the World to update
- dt
Delta time
-
tiny.world (...)
-
Creates a new World.
Can optionally add default Systems and Entities.
Parameters:
- ...
Systems and Entities to add to the World
Returns:
A new World