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/gravity/src/gravity.rs | 12 ++++++++++++ plugins/gravity/src/lib.rs | 19 +++++++++++++++++++ 2 files changed, 31 insertions(+) create mode 100644 plugins/gravity/src/gravity.rs create mode 100644 plugins/gravity/src/lib.rs (limited to 'plugins/gravity/src') diff --git a/plugins/gravity/src/gravity.rs b/plugins/gravity/src/gravity.rs new file mode 100644 index 0000000..6d7030c --- /dev/null +++ b/plugins/gravity/src/gravity.rs @@ -0,0 +1,12 @@ +use bevy::{ + ecs::resource::Resource, + math::Vec3, + prelude::{Deref, DerefMut}, +}; + +/// Represents the global gravity +#[derive(Resource, Deref, DerefMut, PartialEq, Default, Clone)] +pub struct Gravity { + #[deref] + pub(crate) gravity: Vec3, +} diff --git a/plugins/gravity/src/lib.rs b/plugins/gravity/src/lib.rs new file mode 100644 index 0000000..4282256 --- /dev/null +++ b/plugins/gravity/src/lib.rs @@ -0,0 +1,19 @@ +//! CH Modules - Gravity +//! +//! CH Gravity provides the basic in-game representation of gravity + +use bevy::{app::Plugin, math::Vec3}; +use ch_macro_rules::import; + +import!(gravity); + +/// Cigarette Hacker gravity plugin +pub struct CHGravityPlugin; + +impl Plugin for CHGravityPlugin { + fn build(&self, app: &mut bevy::app::App) { + app.insert_resource(Gravity { + gravity: Vec3::new(0., 1., 0.) * -9.8, + }); + } +} -- cgit