veloren_common_systems/
lib.rs

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