Expand description
Several kinds of random World maps generator for games
This library provides a world maps generator with following interfaces:
- Rust library as an API
- CLI tool to generate maps in terminal as visual output or as JSON output
- 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 boardboard
:board::Board
struct represents one world map. The struct is JSON serializable withserde_json
draw
: Helper to draw a board to terminal or as JSONgen
: A random world map generator to buildboard::Board
struct. It provides algorithms for 3 kinds of resolutionserror
: 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.