amethyst_navigation/
systems.rs

1use amethyst_core::{
2    ecs::{Read, ReadStorage, System, WriteStorage},
3    Time,
4};
5pub use nav::system::NavAgentMaintainSystem;
6use nav::{
7    component::{NavAgent, SimpleNavDriverTag},
8    system::SimpleNavDriverSystem as NavSimpleNavDriverSystem,
9};
10
11/// Simple nav driver system. It's used to apply simple movement of agents with `SimpleNavDriverTag`
12/// component tag on their paths.
13pub struct SimpleNavDriverSystem;
14
15impl<'s> System<'s> for SimpleNavDriverSystem {
16    type SystemData = (
17        Read<'s, Time>,
18        WriteStorage<'s, NavAgent>,
19        ReadStorage<'s, SimpleNavDriverTag>,
20    );
21
22    fn run(&mut self, (time, agents, drivers): Self::SystemData) {
23        NavSimpleNavDriverSystem::run_impl(time.delta_seconds() as f64, (agents, drivers));
24    }
25}