summaryrefslogtreecommitdiff
path: root/src/systems/growth.rs
diff options
context:
space:
mode:
authortroido <troido@protonmail.com>2020-04-13 13:26:43 +0200
committertroido <troido@protonmail.com>2020-04-13 13:26:43 +0200
commitab67714238c162646af10334715c6de41939c83f (patch)
tree9d45c458299f4aa796a0201c28a914ec214ef7b9 /src/systems/growth.rs
parentdb7b138cb66a2b48492e457fdf0ae8cd65cc73db (diff)
renamed grow to timer
Diffstat (limited to 'src/systems/growth.rs')
-rw-r--r--src/systems/growth.rs55
1 files changed, 0 insertions, 55 deletions
diff --git a/src/systems/growth.rs b/src/systems/growth.rs
deleted file mode 100644
index 7daa3d7..0000000
--- a/src/systems/growth.rs
+++ /dev/null
@@ -1,55 +0,0 @@
-
-use rand;
-
-use specs::{
- WriteStorage,
- Entities,
- System,
- Join,
- Read
-};
-
-use crate::{
- components::{
- Grow,
- TimeOffset,
- TriggerBox
- },
- resources::{Time}
-};
-
-
-pub struct Growth;
-impl <'a> System<'a> for Growth{
- type SystemData = (
- Entities<'a>,
- WriteStorage<'a, Grow>,
- WriteStorage<'a, TriggerBox>,
- Read<'a, Time>,
- WriteStorage<'a, TimeOffset>
- );
-
- fn run(&mut self, (entities, mut grows, mut triggerboxes, time, mut time_offsets): Self::SystemData) {
- for (entity, grow) in (&entities, &mut grows).join(){
- if grow.target_time == None {
- let creation_time = time.time + time_offsets.get(entity).map(|ct| ct.dtime).unwrap_or(0);
- let mut r = 1.0 - rand::random::<f64>() * grow.spread;
- if rand::random() {
- r = 1.0 / r;
- }
- let duration = (grow.delay as f64 * r + 0.4) as i64;
- grow.target_time = Some(creation_time + duration);
- }
- let target_time = grow.target_time.unwrap();
- if target_time <= time.time {
- if target_time < time.time {
- time_offsets.insert(entity, TimeOffset{dtime: target_time.0 - time.time.0}).unwrap();
- } else {
- time_offsets.remove(entity);
- }
- TriggerBox::add_message(&mut triggerboxes, entity, grow.trigger);
- grow.target_time = None;
- }
- }
- }
-}