1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
// use crate::prelude::*;
// use beet_flow::prelude::*;
use *;
// use std::time::Duration;
// pub fn auto_spawn(
// time: When<Res<Time>>,
// mut query: Query<&mut AutoSpawn>,
// send: Res<BeetMessageSend>,
// ) {
// for mut spawner in query.iter_mut() {
// if spawner.timer.tick(time.delta()).finished() {
// send.send(BeetMessage::Spawn {
// bincode: spawner.scene_bincode.clone(),
// })
// .ok();
// }
// }
// }
// #[cfg(test)]
// mod test {
// use std::time::Duration;
// use crate::prelude::*;
// use beet_flow::prelude::*;
// use beet_core::prelude::*;
// #[test]
// fn serializes() -> Result<()> {
// pretty_env_logger::try_init().ok();
// let mut app = App::new();
// app /*-*/
// .add_plugins(BeetMessagePlugin::<CoreModule>(default()))
// .add_plugins(BeetModulePlugin::<CoreModule>(default()))
// /*-*/;
// let send = app.world_mut().resource::<BeetMessageSend>().clone();
// let scene1 = BeetBuilder::new(Score::Weight(0.1))
// .into_scene::<CoreModule>();
// let auto_spawn = AutoSpawn::new(scene1, Duration::from_secs(1));
// let scene2 = BeetBuilder::new(auto_spawn.clone())
// .into_scene::<CoreModule>();
// let bincode = bincode::serialize(&scene2)?;
// send.send(BeetMessage::Spawn{bincode})?;
// app.world().entities().len().xpect_eq(0)?;
// app.update();
// app.world().entities().len().xpect_eq(1)?;
// let first = app.world().iter_entities().next().unwrap().id();
// Ok(())
// }
// }