Crate sparsey

source ·
Expand description

Entity Component System based on sparse sets.

use sparsey::prelude::*;

struct Position(f32);
struct Velocity(f32);

fn main() {
    let mut entities = EntityStorage::default();
    entities.register::<Position>();
    entities.register::<Velocity>();

    entities.create((Position(0.0),));
    entities.create((Position(0.0), Velocity(1.0)));
    entities.create((Position(0.0), Velocity(2.0)));

    entities.run(|mut positions: CompMut<Position>, velocities: Comp<Velocity>| {
        (&mut positions, &velocities).for_each(|(position, velocity)| {
            position.0 += velocity.0;
        });
   });
}

Modules§

  • Manages entities and their associated components.
  • Re-exports the most commonly used items.
  • Handles querying and iterating sets of components.
  • Manages resources.
  • Hadles functions that borrow data from a registry during execution.
  • Various utilities.

Structs§

  • Storage for entities and resources.