diff options
| author | troido <troido@protonmail.com> | 2020-04-06 19:28:45 +0200 |
|---|---|---|
| committer | troido <troido@protonmail.com> | 2020-04-06 19:28:45 +0200 |
| commit | 7c351a0c7a497d30f4826a19e6c6e92d3e7b5065 (patch) | |
| tree | 26add4ae11f03b2435c149ef5fe95d66afd60eda /src/systems | |
| parent | 66a3d3131f32e7bae2f0f7c4fd0b0c876eb3e8a0 (diff) | |
improved error handling
Diffstat (limited to 'src/systems')
| -rw-r--r-- | src/systems/spawn.rs | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/src/systems/spawn.rs b/src/systems/spawn.rs index 33dbc95..903b9b2 100644 --- a/src/systems/spawn.rs +++ b/src/systems/spawn.rs @@ -44,10 +44,14 @@ impl <'a> System<'a> for Spawn { if let Some(last_spawn) = spawner.last_spawn { if time.time > last_spawn + spawner.delay { spawner.last_spawn = None; - let mut preent = new.encyclopedia.construct(&spawner.template).expect("unable to spawn entity from spawner"); - preent.push(ComponentWrapper::Clan(spawner.clan.clone())); - preent.push(ComponentWrapper::Home(Home{home: position.pos})); - new.to_build.push((position.pos, preent)); + match new.encyclopedia.construct(&spawner.template) { + Ok(mut preent) => { + preent.push(ComponentWrapper::Clan(spawner.clan.clone())); + preent.push(ComponentWrapper::Home(Home{home: position.pos})); + new.to_build.push((position.pos, preent)); + } + Err(err) => {println!("Error: can not spawn entity from spawner: {}", err);} + } } } else { spawner.last_spawn = Some(time.time) |
