[][src]Crate world_map_gen

Several kinds of random World maps generator for games

This library provides a world maps generator with following interfaces:

  1. Rust library as an API
  2. CLI tool to generate maps in terminal as visual output or as JSON output
  3. WebAssembly npm package for Web

Please read README.md of repository hosted on GitHub.

https://github.com/rhysd/world-map-gen

This document explains 1., as an API library for Rust.

This library provides some modules to handle a world map as one board filled up with cells.

  • land: land::Land struct represents each cell in a board
  • board: board::Board struct represents one world map. The struct is JSON serializable with serde_json
  • draw: Helper to draw a board to terminal or as JSON
  • gen: A random world map generator to build board::Board struct. It provides algorithms for 3 kinds of resolutions
  • error: Error type which may be returned from a map generator
use world_map_gen::RandomBoardGen;

// Create generator instance with default random number generator
let mut generator = RandomBoardGen::default();

// Generate 40x40 random world map. Map resolution (low, middle, high) is automatically
// determined by its width and height here.
//   - Low: width and height are less than 15
//   - Middle: width and height are less than 120
//   - High: Otherwise
let board = generator.gen_auto(40, 40);

// Iterate each cells per row
for (i, row) in board.rows().enumerate() {
    println!("Row: {}", i);
    for cell in row {
        // cell is a world_map_gen::land::Land instance

        // Lands are categorized with kind (e.g. Sea, Plain, Forest, Mountain, ...)
        println!("Kind: {:?}", cell.kind);

        // Each cell as its altitude. For example, sea's altitude is lower and mountain's is
        // higher
        println!("Altitude: {}", cell.altitude);
    }
}

Re-exports

pub use crate::board::Board;
pub use crate::error::Result;
pub use crate::gen::RandomBoardGen;
pub use crate::land::LandKind;

Modules

board

This module provides a board struct representing world map.

draw

Helper to draw a generated map to terminal screen or as JSON.

error

Provides error type to represent all kinds of errors which may occur while world map generations.

gen

This module provides random world map generator

land

This module provides representation of cells in a board. And also provides constants for default cells.