mirror of
https://github.com/kristoferssolo/Qualification-Thesis.git
synced 2025-10-21 20:10:37 +00:00
33 lines
1004 B
Rust
33 lines
1004 B
Rust
#[derive(Default)]
|
|
pub struct MazeBuilder {
|
|
radius: Option<u32>,
|
|
seed: Option<u64>,
|
|
generator_type: GeneratorType,
|
|
start_position: Option<Hex>,
|
|
}
|
|
|
|
#[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<Hex, HexTile>);
|
|
|
|
#[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);
|