diff --git a/src/player/components.rs b/src/player/components.rs index 746f505..060e302 100644 --- a/src/player/components.rs +++ b/src/player/components.rs @@ -1,7 +1,20 @@ use bevy::prelude::*; +use hexx::Hex; -#[derive(Component, Debug, Clone, Copy, PartialEq, Default, Reflect)] +#[derive(Component, Debug, Clone, Copy, PartialEq, Reflect)] #[reflect(Component)] pub struct Player { pub speed: f32, + pub current_hex: Hex, + pub target_hex: Option, +} + +impl Default for Player { + fn default() -> Self { + Self { + speed: 50., + current_hex: Hex::ZERO, + target_hex: None, + } + } } diff --git a/src/player/systems/movement.rs b/src/player/systems/movement.rs index 73bde06..0ff3430 100644 --- a/src/player/systems/movement.rs +++ b/src/player/systems/movement.rs @@ -1,7 +1,6 @@ -use bevy::prelude::*; -use hexx::{EdgeDirection, Hex}; - use crate::{maze::MazeConfig, player::components::Player}; +use bevy::prelude::*; +use hexx::EdgeDirection; const fn create_direction(key: &KeyCode) -> Option { match key { @@ -18,21 +17,36 @@ const fn create_direction(key: &KeyCode) -> Option { pub fn player_movement( time: Res