From 8ff60fdeb0dda7cb6eb7ed91c5084fc107f33365 Mon Sep 17 00:00:00 2001 From: 魏曹先生 <1992414357@qq.com> Date: Sat, 8 Aug 2026 15:49:38 +0800 Subject: feat: add gravity and gravity-movement plugins Add CHGravityPlugin to manage the global gravity resource and CHGravityMovementGluePlugin to apply gravity to movement velocity each fixed update. Update workspace dependencies and include the new crates in the main app. --- plugins/glues/gravity_movement/src/lib.rs | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 plugins/glues/gravity_movement/src/lib.rs (limited to 'plugins/glues/gravity_movement/src') diff --git a/plugins/glues/gravity_movement/src/lib.rs b/plugins/glues/gravity_movement/src/lib.rs new file mode 100644 index 0000000..da31061 --- /dev/null +++ b/plugins/glues/gravity_movement/src/lib.rs @@ -0,0 +1,29 @@ +//! 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; + } +} -- cgit