pub mod fractal;
pub mod grid;
pub mod map_generator;
pub mod map_parameters;
pub mod nation;
pub mod ruleset;
pub mod tile;
pub mod tile_component;
pub mod tile_map;
use map_generator::{Generator, fractal::Fractal, pangaea::Pangaea};
use map_parameters::{MapParameters, MapType};
use ruleset::Ruleset;
use tile_map::TileMap;
pub fn generate_map(map_parameters: &MapParameters, ruleset: &Ruleset) -> TileMap {
match map_parameters.map_type {
MapType::Fractal => Fractal::generate(map_parameters, ruleset),
MapType::Pangaea => Pangaea::generate(map_parameters, ruleset),
}
}
#[cfg(test)]
mod tests {
use crate::{generate_map, map_parameters::MapParameters, ruleset::Ruleset};
#[test]
fn test_generate_map() {
let map_parameters = MapParameters::default();
let ruleset = Ruleset::default();
for _ in 0..15 {
let map_a = generate_map(&map_parameters, &ruleset);
let map_b = generate_map(&map_parameters, &ruleset);
assert_eq!(map_a, map_b);
}
}
}