From 4ac52cfb380a5a33aa90abd2651a1deabec7a674 Mon Sep 17 00:00:00 2001 From: Kristofers Solo Date: Tue, 10 Dec 2024 17:22:04 +0200 Subject: [PATCH] feat(player): add tile movement --- src/player/components.rs | 15 +++++++++++- src/player/systems/movement.rs | 42 ++++++++++++++++++++++------------ src/player/systems/spawn.rs | 2 +- 3 files changed, 43 insertions(+), 16 deletions(-) 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