summaryrefslogtreecommitdiff
path: root/src/systems/spawntrigger.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/systems/spawntrigger.rs')
-rw-r--r--src/systems/spawntrigger.rs34
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);
+ }
+ }
+}