summaryrefslogtreecommitdiff
path: root/src/systems/spawn.rs
diff options
context:
space:
mode:
authortroido <troido@protonmail.com>2020-04-06 19:28:45 +0200
committertroido <troido@protonmail.com>2020-04-06 19:28:45 +0200
commit7c351a0c7a497d30f4826a19e6c6e92d3e7b5065 (patch)
tree26add4ae11f03b2435c149ef5fe95d66afd60eda /src/systems/spawn.rs
parent66a3d3131f32e7bae2f0f7c4fd0b0c876eb3e8a0 (diff)
improved error handling
Diffstat (limited to 'src/systems/spawn.rs')
-rw-r--r--src/systems/spawn.rs12
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)