Expand description
Sparsey is a sparse set-based Entity Component System.
use sparsey::prelude::*;
struct Position(f32);
struct Velocity(f32);
fn main() {
let mut world = World::default();
world.register::<Position>();
world.register::<Velocity>();
world.create((Position(0.0),));
world.create((Position(0.0), Velocity(1.0)));
world.create((Position(0.0), Velocity(2.0)));
world.run(|mut positions: CompMut<Position>, velocities: Comp<Velocity>| {
(&mut positions, &velocities).for_each(|(position, velocity)| {
position.0 += velocity.0;
});
});
}
Re-exports
pub use self::systems::run;
pub use self::systems::run_exclusive;
pub use self::systems::run_local;
Modules
- Manages component storages and handles component grouping.
- Helper types for describing the layout of component storages within a
World
. - Re-exports the most commonly used items.
- Query and iterate component views.
- Resource creation and management.
- Sparse set-based storages for entities and components.
- System creation, execution and scheduling.
- Various utilities used by multiple modules.
- Manages entities and their associated components.