diff --git a/src/main.rs b/src/main.rs index 4110b9c..98c324e 100644 --- a/src/main.rs +++ b/src/main.rs @@ -15,7 +15,12 @@ fn main() { }), ..Default::default() })) - .add_plugins((camera::Camera, assets::AssetLoader)) + .add_plugins(( + camera::Camera, + assets::AssetLoader, + player::Player, + movement::Movement, + )) .add_systems(Update, keyboard_input_system) .insert_resource(ClearColor(Color::rgb(0.3, 0., 0.5))) .insert_resource(AmbientLight { diff --git a/src/movement.rs b/src/movement.rs index d118869..578b456 100644 --- a/src/movement.rs +++ b/src/movement.rs @@ -1,43 +1,37 @@ use bevy::prelude::*; -pub struct MovementPlugin; - -#[derive(Component, Debug, Default)] +#[derive(Component, Deref, DerefMut, Debug, Default)] pub struct Velocity(pub Vec2); -impl Velocity { - pub fn from_speed_heading(heading: Vec2, speed: f32) -> Self { - Self(heading.normalize_or_zero() * speed) - } -} - -#[derive(Component, Debug, Default)] +#[derive(Component, Deref, DerefMut, Debug, Default)] pub struct Heading(pub Vec2); -#[derive(Component, Debug, Default)] +#[derive(Component, Deref, DerefMut, Debug, Default)] pub struct Speed(pub f32); -impl Heading { - pub fn new(x: f32, y: f32) -> Self { - Self(Vec2::new(x, y)) - } -} - -#[derive(Bundle, Debug, Default)] -pub struct MovementBundle { - pub velocity: Velocity, - pub heading: Heading, - pub speed: Speed, -} - -impl Plugin for MovementPlugin { - fn build(&self, app: &mut App) { - app.add_systems(Update, update_position); - } -} - fn update_position(mut query: Query<(&Velocity, &mut Transform)>, time: Res