fantasy_craft/physics/
plugins.rs1use crate::{core::plugins::Plugin, physics::systems::physics_system, prelude::{ColliderLoader, GameState, RigidBodyLoader, SpeedLoader, Stage, System, TransformLoader, VelocityLoader, movement_system}};
2
3pub struct PhysicsPlugin;
4
5impl Plugin for PhysicsPlugin {
6 fn build(&self, app: &mut crate::prelude::App) {
7 app.scene_loader
8 .register("Transform", Box::new(TransformLoader))
9 .register("RigidBody", Box::new(RigidBodyLoader))
10 .register("Collider", Box::new(ColliderLoader))
11 .register("Velocity", Box::new(VelocityLoader))
12 .register("Speed", Box::new(SpeedLoader));
13
14 app
15 .add_system(Stage::Update, System::new(
16 movement_system,
17 vec![GameState::Playing]
18 ))
19 .add_system(Stage::PostUpdate, System::new(
20 physics_system,
21 vec![GameState::Playing]
22 ));
23 }
24}