tinyecs::register_system! [] [src]

macro_rules! register_system {
    ( ($name:ident aspect $aspect:expr): $entity:ident |$( $varname:ident: $t:ty ), *| with ($( $datavar:ident: $dataaspect:expr ), *) => $code:expr) => { ... };
    ( ($name:ident): |$( $varname:ident: $t:ty ), *| with ($( $datavar:ident: $aspect:expr ), *) => $code:expr) => { ... };
    ( ($name:ident): |$( $varname:ident: $t:ty ), *| => $code:expr) => { ... };
}

Create struct and impl System trait for it

register_system!((MoveSystem): |_pos: Position, _vel: Velocity| => {
});
register_system!((AiSystem): |_bot: Bot, _pos: Position, _vel: Velocity|
                with (_players: aspect_all!(Player, Position),
                      _targets: aspect_all!(SomeTarget, Position)) => {
});
register_system!((BotControlSystem
                  aspect aspect_all!(Position, Bot).except2::<Punch, Jump>()):
                |bot : Bot, pos : Position|
                with (scores: aspect_all!(ScoreTarget, Position),
                      players: aspect_all!(Player, Position),
                      objects: aspect_all!(ScoreObject, RigidBody)) => {
});