entity | something that can have components and relationships | |
component | a struct attached to an entity | Health (Health is a normal Rust type) |
relation | a connection between two entities | Friends(a,b) (Friends is a normal Rust type) |
variable | a standin for an entity in a query | Health(a) <- a is a variable |
component access | | |
mut component access | | |
singleton | something that only exists once in a World | world.singleton::<GameTicks>() |
outvar | entity variable that should be returned by the query | &this |
invar | a value for an entity that is passed into a query | Health(\*me) |
constraint | something that filters out results from a query | this != that |
uncomponent | negative component constraint, filters out results where var has component | !Health |
unrelation | negative relation constraint, filters out results where Relation is present | !ChildOf(this, other) |
create | creates an entity or entityview | let e = world.create() |
destroy | removes an entity and cleans up its relations and components | e.destroy() |
add | adds a component to an entity | e.add(Comp{}) |
remove | removes a component from an entity | e.remove::<Comp>() |
relate | creates a relation between two entities | a.relate<sub>to</sub>::<Friend>(b) |
unrelate | removes a relation between two entities | a.unrelate_to_::<Friend>(b) |
immediate | a change of entities, components or relations is immediately executed | e.add(Comp{}); (with a mutable EntityView) |
deferred | a change is queued up until World::process() is called | e.add(Comp{}); (with a EntityViewDeferred) |
exclusive | Rel(a,b) gets removed when Rel(a,c) is created | |
reflexive | Rel(a,b) also means Rel(b,a) | |
transitive | Rel(a,b) and Rel(b,c) means Rel(a,c) implicitly | |
cascading delete | when a from Rel(a,b) gets destroyed, then b also gets destroyed | |