diff --git a/src/map/block.rs b/src/data_block.rs similarity index 66% rename from src/map/block.rs rename to src/data_block.rs index 0ab3f5f..f9dc2cb 100644 --- a/src/map/block.rs +++ b/src/data_block.rs @@ -1,4 +1,12 @@ -//! Stockage des données des blocks (fonction, enum et struct). +//! Stockage des données des blocks. + +#![deny(clippy::missing_docs_in_private_items)] +#![deny(clippy::unwrap_in_result)] +#![deny(clippy::unwrap_used)] +#![deny(clippy::nursery)] +#![deny(missing_docs)] +#![deny(clippy::all)] +#![deny(warnings)] use bevy::prelude::*; @@ -107,3 +115,64 @@ impl BlockType { } } } + + +#[derive(Component)] +/// Position du block. +pub struct BlockPosition { + /// La position en x. + pub x: u8, + + /// La position en y. + pub y: u8, +} + +impl BlockPosition { + /// Retourne la position en x et y dans la map en foction de la position abstraite. + pub fn to_transform(&self, identity: Identity) -> Transform { + let max_y: u8 = 9; + let max_x = 10.; + let new_y = max_y - 1 - self.y; + let offset_x = new_y % 2; + + let mut new_x = (offset_x as f32).mul_add(0.5, self.x as f32); + if identity == Identity::Joueur2 { + new_x = max_x - new_x; + }; + + Transform::from_xyz(new_x, new_y as f32 * 0.42, self.y as f32) + .with_scale(Vec3::splat(1.0 / 185.0)) + } +} + + +#[derive(Debug, Clone, Copy, PartialEq, Eq, Component)] +/// Permet de donné un idée a un joueur ou un block pour lui donné une identité. +pub struct Id { + /// L'Id du joueur ou du component + id: u32, +} + +impl Id { + /// Permet de verifier l'Id du joueur avec une Id donné + pub fn verifi_id(&self, id_a_verifie: &Id) -> bool { + if self.id == id_a_verifie.id { + true + } else { + false + } + } +} + +#[derive(Debug, Clone, Copy, PartialEq, Eq, Component)] +/// Permet de donné la posetion d'un block au joueur dans le jeu. +pub enum BlockApartenance { + /// Represente le joueur 1. + Joueur1, + + /// Represente le joueur 2. + Joueur2, + + /// Represente les blocks neutres. + Neutre, +} diff --git a/src/map/identity.rs b/src/map/identity.rs deleted file mode 100644 index 5c8d6d6..0000000 --- a/src/map/identity.rs +++ /dev/null @@ -1,34 +0,0 @@ -//! Stockage des données des identity (fonction, enum et struct). - -use bevy::prelude::*; - -#[derive(Debug, Clone, Copy, PartialEq, Eq, Component)] -/// Permet de donné un idée a un joueur ou un block pour lui donné une identité. -pub struct Id { - /// L'Id du joueur ou du component - id: u32, -} - -impl Id { - /// Permet de verifier l'Id du joueur avec une Id donné - pub fn verifi_id(&self, id_a_verifie: &Id) -> bool { - if self.id == id_a_verifie.id { - true - } else { - false - } - } -} - -#[derive(Debug, Clone, Copy, PartialEq, Eq, Component)] -/// Permet de donné la posetion d'un block au joueur dans le jeu. -pub enum BlockApartenance { - /// Represente le joueur 1. - Joueur1, - - /// Represente le joueur 2. - Joueur2, - - /// Represente les blocks neutres. - Neutre, -} diff --git a/src/map/position.rs b/src/map/position.rs deleted file mode 100644 index 87288a2..0000000 --- a/src/map/position.rs +++ /dev/null @@ -1,32 +0,0 @@ -//! Stockage des données des position (fonction, enum et struct). - -use bevy::prelude::*; -use map::identity::*; - -#[derive(Component)] -/// Position du block. -pub struct BlockPosition { - /// La position en x. - pub x: u8, - - /// La position en y. - pub y: u8, -} - -impl BlockPosition { - /// Retourne la position en x et y dans la map en foction de la position abstraite. - pub fn to_transform(&self, identity: Identity) -> Transform { - let max_y: u8 = 9; - let max_x = 10.; - let new_y = max_y - 1 - self.y; - let offset_x = new_y % 2; - - let mut new_x = (offset_x as f32).mul_add(0.5, self.x as f32); - if identity == Identity::Joueur2 { - new_x = max_x - new_x; - }; - - Transform::from_xyz(new_x, new_y as f32 * 0.42, self.y as f32) - .with_scale(Vec3::splat(1.0 / 185.0)) - } -}