Skip to content

AnneKitsune/specs_declaration

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Support an Open Source Developer! ♥️

Become a patron

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!

About

Macro to easily create SPECS Systems

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages