//! CH Glue - Gravity & Movement //! //! This module provides the glue layer for the Gravity and Movement modules. #![deny(missing_docs)] use bevy::{ app::{FixedUpdate, Plugin}, ecs::system::{Query, Res}, }; use ch_gravity::Gravity; use ch_movement::{Movement, Velocity}; /// Cigarette Hacker gravity movement glue pub struct CHGravityMovementGluePlugin; impl Plugin for CHGravityMovementGluePlugin { fn build(&self, app: &mut bevy::app::App) { app.add_systems(FixedUpdate, apply_gravity_to_movement); } } fn apply_gravity_to_movement(mut query: Query<(&mut Velocity, &Movement)>, gravity: Res) { for (mut velocity, _movement) in query.iter_mut() { velocity.x += gravity.x; velocity.y += gravity.y; velocity.z += gravity.z; } }