123456789101112131415161718192021222324252627 |
- use super::{Map, Rect, TileType, Position, spawner};
- mod simple_map;
- use simple_map::SimpleMapBuilder;
- mod bsp_dungeon;
- use bsp_dungeon::BspDungeonBuilder;
- mod common;
- use common::*;
- use specs::prelude::*;
- trait MapBuilder {
- fn build(new_depth: i32) -> (Map, Position);
- fn spawn(map : &Map, ecs : &mut World, new_depth: i32);
- }
- pub fn build_random_map(new_depth: i32) -> (Map, Position) {
- let mut rng = rltk::RandomNumberGenerator::new();
- let builder = rng.roll_dice(1, 2);
- println!("Builder roll: {}", builder);
- match builder {
- 2 => BspDungeonBuilder::build(new_depth),
- _ => SimpleMapBuilder::build(new_depth)
- }
- }
- pub fn spawn(map : &Map, ecs : &mut World, new_depth: i32) {
- BspDungeonBuilder::spawn(map, ecs, new_depth);
- }
|