#tile #portal #generator #size #dungeon #minion #dungen

已删除 dungen_minion

一个专注于2D rogue-like的地下城生成器

0.3.2 2021年9月20日
0.3.1 2021年9月20日
0.3.0 2020年10月27日
0.2.3 2020年10月24日
0.1.6 2020年10月10日

#22 in #dungeon

每月下载量26次

自定义许可

65KB
807

用法

高级用法

请参阅文档以获取更多详细信息。

基本用法

// External includes.
use dungen_minion::geometry::*;
use dungen_minion::*;

// Standard includes.

// Internal includes.

fn main() {
    // Create a dungeon generator using RoomHashMap.
    // RoomHashMap is expandable, and has no explicit size restrictions.
    let dungen = DunGen::new(Box::new(RoomHashMap::default()))
        // Expand the room to a width of 40, and a height of 30.
        // TileType::Floor will be placed.
        .gen_with(EmptyRoomDunGen::new(Size::new(40, 30)))
        // Create walls for the room.
        .gen::<WalledRoomDunGen>()
        .build();
   
    // A simple drawing routine.
    for y in 0..dungen.size().height() {
        for x in 0..dungen.size().width() {
            let tile_type = dungen.tile_type_at_local(LocalPosition::new(x, y));
            if tile_type.is_none() {
                continue;
            }
   
            // The selection of tiles is deliberately limited, for now.
            // Theming is included in future plans for dungen_minion.
            let tile_type = tile_type.unwrap();
            let ch = match tile_type {
                TileType::Void => ' ',
                TileType::Floor => '.',
                TileType::Wall => '#',
                TileType::Portal => '+',
            };
   
            print!("{}", ch);
        }
        println!();
    }
}

依赖项

~2.3–3.5MB
~63K SLoC