Expand description
Generators for dungeon type maps.
Generators can bu used directly or they can be combined with
MapGenerator
s and MapModifier
s
- MapGenerators are use to create initial map.
- MapModifiers modify existing map.
Example
use mapgen::{MapFilter, MapBuilder};
use mapgen::filter::{
NoiseGenerator,
CellularAutomata,
starting_point::{AreaStartingPosition, XStart, YStart}
};
use mapgen::geometry::Point;
let map = MapBuilder::new(80, 50)
.with(NoiseGenerator::uniform())
.with(CellularAutomata::new())
.with(AreaStartingPosition::new(XStart::CENTER, YStart::CENTER))
.build();
assert_eq!(map.width, 80);
assert_eq!(map.height, 50);
assert_eq!(map.starting_point.is_some(), true);
Re-exports§
Modules§
- filter
- Generators for dungeon type maps.
- geometry
- Support function for 2D geometry
- map_
buffer - MapInfo structure contains information about elements of the map. Those elements are used by MapFilters to generate map in several steps. E.g. Most MapFilters will only update few MapInfo elements (like which cell is walkable) and some other will depend on provided data (like adding exit point)
- metric
- Different metrics for the map Can be used to meausre the quality of the map or the quality of the generator. To meause the quality of the generator; generate lots of maps, measure them and the provide generator score as an average.
Structs§
- MapBuilder
- Used to chain MapBuilder and MapModifiers to create the final map.
Traits§
- MapFilter
- Trait which should be implemented by map modifier. Modifier takes initiall map and apply changes to it.