examples/systems/
system_custom_phases.rs1use crate::z_ignore_test_common::*;
2
3use flecs_ecs::prelude::*;
4fn sys(mut it: TableIter) {
10 while it.next() {
11 println!("system {}", it.system().name());
12 }
13}
14
15fn main() {
16 let world = World::new();
17
18 let physics = world
22 .entity()
23 .add(flecs::pipeline::Phase)
24 .depends_on(id::<flecs::pipeline::OnUpdate>());
25
26 let collisions = world
27 .entity()
28 .add(id::<flecs::pipeline::Phase>())
29 .depends_on(physics);
30
31 world
33 .system_named::<()>("CollisionSystem")
34 .kind(collisions)
35 .run(sys);
36
37 world
38 .system_named::<()>("PhysicsSystem")
39 .kind(physics)
40 .run(sys);
41
42 world
43 .system_named::<()>("GameSystem")
44 .kind(id::<flecs::pipeline::OnUpdate>())
45 .run(sys);
46
47 world.progress();
49
50 }
55
56#[cfg(feature = "flecs_nightly_tests")]
57#[test]
58fn test() {
59 let output_capture = OutputCapture::capture().unwrap();
60 main();
61 output_capture.test("system_custom_phases".to_string());
62}