diff options
Diffstat (limited to 'src/systems/spawntrigger.rs')
| -rw-r--r-- | src/systems/spawntrigger.rs | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/src/systems/spawntrigger.rs b/src/systems/spawntrigger.rs new file mode 100644 index 0000000..95e95a8 --- /dev/null +++ b/src/systems/spawntrigger.rs @@ -0,0 +1,34 @@ + + +use specs::{ + WriteStorage, + ReadStorage, + Entities, + System, + Join +}; + +use crate::{ + components::{ + TriggerBox, + OnSpawn, + New + } +}; + + +pub struct SpawnTrigger; +impl <'a> System<'a> for SpawnTrigger { + type SystemData = ( + Entities<'a>, + WriteStorage<'a, TriggerBox>, + ReadStorage<'a, OnSpawn>, + ReadStorage<'a, New> + ); + + fn run(&mut self, (entities, mut triggerboxes, onspawns, news): Self::SystemData) { + for (entity, onspawn, _new) in (&entities, &onspawns, &news).join(){ + TriggerBox::add_message(&mut triggerboxes, entity, onspawn.trigger); + } + } +} |
