diff --git a/src/birdoids/mod.rs b/src/birdoids/mod.rs index 158aff5c..a48bda96 100644 --- a/src/birdoids/mod.rs +++ b/src/birdoids/mod.rs @@ -1,8 +1,12 @@ +pub mod physics; + use bevy::prelude::*; use bevy_spatial::{ kdtree::KDTree2, AutomaticUpdate, SpatialAccess, SpatialStructure, TransformMode, }; +use crate::birdoids::physics::{apply_velocity, Force, Velocity}; + const BACKGROUND_COLOR: Color = Color::srgb(0.4, 0.4, 0.4); const PLAYERBOID_COLOR: Color = Color::srgb(1.0, 0.0, 0.0); const TURN_FACTOR: f32 = 1.0; @@ -47,14 +51,8 @@ pub(crate) struct Boid; #[derive(Component)] struct PlayerBoid; -#[derive(Component, Deref, DerefMut)] -pub(crate) struct Velocity(Vec3); - -#[derive(Component, Default, Deref, DerefMut, PartialEq, Debug)] -pub(crate) struct Force(Vec3); - #[derive(Component)] -pub(crate) struct TrackedByKdTree; +pub struct TrackedByKdTree; #[derive(Bundle)] struct BoidBundle { @@ -136,15 +134,6 @@ fn turn_if_edge( } } -fn apply_velocity(mut query: Query<(&mut Transform, &Velocity, &mut Force)>, time: Res