veloren_common_systems/
lib.rs

1#![expect(clippy::option_map_unit_fn)]
2
3mod aura;
4mod beam;
5mod buff;
6pub mod character_behavior;
7pub mod controller;
8mod interpolation;
9pub mod melee;
10mod mount;
11pub mod phys;
12mod phys_events;
13pub mod projectile;
14mod shockwave;
15mod stats;
16mod tether;
17
18// External
19use common_ecs::{System, dispatch};
20use specs::DispatcherBuilder;
21
22pub fn add_local_systems(dispatch_builder: &mut DispatcherBuilder) {
23    //TODO: don't run interpolation on server
24    dispatch::<interpolation::Sys>(dispatch_builder, &[]);
25    dispatch::<tether::Sys>(dispatch_builder, &[]);
26    dispatch::<mount::Sys>(dispatch_builder, &[]);
27    dispatch::<controller::Sys>(dispatch_builder, &[&mount::Sys::sys_name()]);
28    dispatch::<character_behavior::Sys>(dispatch_builder, &[&controller::Sys::sys_name()]);
29    dispatch::<buff::Sys>(dispatch_builder, &[]);
30    dispatch::<stats::Sys>(dispatch_builder, &[&buff::Sys::sys_name()]);
31    dispatch::<phys::Sys>(dispatch_builder, &[
32        &interpolation::Sys::sys_name(),
33        &controller::Sys::sys_name(),
34        &mount::Sys::sys_name(),
35        &stats::Sys::sys_name(),
36    ]);
37    dispatch::<phys_events::Sys>(dispatch_builder, &[&phys::Sys::sys_name()]);
38    dispatch::<projectile::Sys>(dispatch_builder, &[&phys::Sys::sys_name()]);
39    dispatch::<shockwave::Sys>(dispatch_builder, &[&phys::Sys::sys_name()]);
40    dispatch::<beam::Sys>(dispatch_builder, &[&phys::Sys::sys_name()]);
41    dispatch::<aura::Sys>(dispatch_builder, &[]);
42}