summaryrefslogtreecommitdiff
path: root/src/systems/spawn.rs
diff options
context:
space:
mode:
authortroido <troido@protonmail.com>2020-04-13 14:36:03 +0200
committertroido <troido@protonmail.com>2020-04-13 14:36:03 +0200
commit2d4cabc768968a215556f7a4ed81a728d3b6e120 (patch)
tree3e2190d9b72320cec4bb889a1bd10f2b43d9751b /src/systems/spawn.rs
parentee200f3003acdfdfde1a746246a7a4669188eb18 (diff)
checking for specific messages is easier because of TriggerBox::has_message
Diffstat (limited to 'src/systems/spawn.rs')
-rw-r--r--src/systems/spawn.rs18
1 files changed, 8 insertions, 10 deletions
diff --git a/src/systems/spawn.rs b/src/systems/spawn.rs
index ad9e8c1..1698ca5 100644
--- a/src/systems/spawn.rs
+++ b/src/systems/spawn.rs
@@ -41,17 +41,15 @@ impl <'a> System<'a> for Spawn {
clan_nums.insert(clan, n+1);
}
for (spawner, position, triggerbox) in (&mut spawners, &positions, &triggerboxes).join() {
- for message in triggerbox.messages.iter() {
- if *message == Trigger::Spawn {
- if *clan_nums.get(&spawner.clan).unwrap_or(&0) < spawner.amount {
- 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);}
+ if triggerbox.has_message(&[Trigger::Spawn]) {
+ if *clan_nums.get(&spawner.clan).unwrap_or(&0) < spawner.amount {
+ 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);}
}
}
}