#[derive(Default)] pub struct MazeBuilder { radius: Option, seed: Option, generator_type: GeneratorType, start_position: Option, } #[derive(Debug, Clone, Copy, Default)] pub enum GeneratorType { #[default] RecursiveBacktracking, } #[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))] #[derive(Debug, Clone, Default, PartialEq, Eq)] pub struct HexMaze(HashMap); #[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))] #[cfg_attr(feature = "bevy", derive(Reflect, Component))] #[cfg_attr(feature = "bevy", reflect(Component))] #[derive(Debug, Clone, Default, PartialEq, Eq)] pub struct HexTile { pub(crate) pos: Hex, pub(crate) walls: Walls, } #[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))] #[derive(Debug, Clone, Copy, PartialEq, Eq)] #[cfg_attr(feature = "bevy", derive(Reflect, Component))] #[cfg_attr(feature = "bevy", reflect(Component))] pub struct Walls(u8);