2 unstable releases
0.3.0 | Jul 21, 2020 |
---|---|
0.1.0 | Jun 19, 2020 |
#2034 in Game dev
15KB
72 lines
Support an Open Source Developer! ♥️
SPECS Declaration
A simple macro to effectively create SPECS systems.
Adding To Your Project
Add the following to your Cargo.toml file:
specs_declaration = "*"
Usage
- system!
- Give the name of the system and, optionally, the generic parameters
- Give the content of your usual SystemData, in the form of a closure
- Write your operations as if you were in the usual run(&self, params..) function of the System
use specs::*;
system!(SystemName, |velocity: WriteStorage<'a, Velocity>| {
for vel in (&velocity,).join() {
println!("velocity: {}, {}, {}", vel.x, vel.y, vel.z);
}
});
With generics:
use specs::*;
system!(SystemName<T: Debug + Send + Sync + 'static>, |my_resource: Read<'a, T>, velocity: WriteStorage<'a, Velocity>| {
println!("My Generic Resource: {:?}", my_resource);
for vel in (&velocity,).join() {
println!("velocity: {}, {}, {}", vel.x, vel.y, vel.z);
}
});
Consider donating on my patreon if you find this useful!