veloren_common_systems/
lib.rs

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