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)) => { });