4 releases (breaking)
0.4.0 | Oct 24, 2020 |
---|---|
0.3.0 | Oct 24, 2020 |
0.2.0 | Oct 16, 2020 |
0.1.0 | Oct 15, 2020 |
#1748 in Game dev
48KB
918 lines
👏 kudo
WORK IN PROGRESS
An Entity Component System for Rust. Fast, easy, and predictable.
- No
unsafe
- No dependencies
- Fewer than 1k lines of code (so far)
struct Health(f32);
struct Name(String);
struct CreepySnakeHair(u32);
let mut world = World::new();
// Create entities with components.
world.spawn((Name("Perseus".to_string()), Health(50.)));
world.spawn((
Name("Medusa".to_string()),
Health(100.),
CreepySnakeHair(300),
));
// Find every entity with a `Name` and a `Health` component.
let mut query = world.query::<(&Name, &Health)>().unwrap();
// Iterate through all entities with those components.
for (name, health) in query.iter() {
println!("{}'s health is: {:?}", name.0, health.0);
}
Kudo
was inspired by the library hecs
. If you need a more feature-rich ECS, give hecs
a try!