Crate kudo

Crate kudo 

Source
Expand description

A simple and predictable Entity Component System.

An entity-component-system (ECS) is a data structure and organizational pattern often used by game-like code.

An ECS is made up of three parts:

  • Entities: IDs associated with various components
  • Components: Individual units of data associated with an entity.
  • Systems: Code that iterates over components
// First we create the world.
let mut world = World::new();

// Let's create a new entity with a name and a health component.
// Components are just plain structs.

// This will be our health component
struct Health(i32);

// Spawn the entity with a String component we'll use for the name and a Health component.
// Within the call to spawn we pass in a tuple that can have multiple components.
world.spawn(("Medusa".to_string(), Health(-2)));

// Query the world for entities that have a String component and a Health component.
// The '&' before each component requests read-only access to the component.
// Using '&mut' would request write/read access for that component.
let mut query = world.query::<(&String, &Health)>().unwrap();

// Iterate over all the components we found and check if their health is less than 0.
for (name, health) in query.iter() {
    if health.0 < 0 {
        println!("{} has perished!", name);
    }
}

Structs§

ComponentAlreadyBorrowed
Entity
A handle to an entity within the world.
EntityMissingComponent
NoSuchEntity
This entity has been despawned so operations can no longer be performed on it.
Query
Query for entities with specific components.
Single
Used to get a single immutable instance of a component from the world. If there are multiple of the component in the world an arbitrary instance is returned.
SingleMut
Used to get a single mutable instance of a component from the world. If there are multiple of the component in the world an arbitrary instance is returned.
World
The world holds all components and associated entities.
Zip3
Zip4
Zip5
Zip6
Zip7
Zip8

Enums§

ComponentError

Traits§

ComponentBundle
A bundle of components Used to spawn new
GetIter
QueryParam
A member of a Query, like &A or &mut A
QueryParams
The parameters passed into a query. Like: (&bool, &String)
System
A function that can be run as system by pulling in queries from the world.
TopLevelQuery
An empty trait used to indicate which queries can be constructed at the top level of a query.