Crate here_be_dragons

Crate here_be_dragons 

Source
Expand description

Generators for dungeon type maps.

Generators can bu used directly or they can be combined with MapGenerators and MapModifiers

  • MapGenerators are use to create initial map.
  • MapModifiers modify existing map.

Example

use here_be_dragons::{MapFilter, MapBuilder, Map, NoData, Tile};
use here_be_dragons::filter::{
    NoiseGenerator,
    CellularAutomata,
    starting_point::{AreaStartingPosition, XStart, YStart}
};
use here_be_dragons::geometry::Point;

let map = MapBuilder::<NoData>::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§

pub use map::Map;
pub use map::NoData;
pub use map::Symmetry;
pub use map::Tile;
pub use filter::*;

Modules§

filter
Generators for dungeon type maps.
geometry
Support function for 2D geometry
map
Map structure contains information about tiles and other elements on the map.
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.