use darkcloud2_levelgen::{ Tile, Level, TileTemplate, Region, VecRegion, place_template, connect_rooms, create_deadend, tunnel_branches, pretty_print, random_dungeon, create_templates}; use rand::{Rng, SeedableRng}; use rand::rngs::SmallRng; use rand::thread_rng; fn main() { let mut thread_rng = thread_rng(); let mut rng = SmallRng::from_seed([14;16]); let templates = create_templates(); let template = &templates[0]; let mut level: VecRegion> = Region::new_with(15, 11); let mut level = Level::new(Box::new(level)); let res = place_template(&mut level, template, 0, 0); let res = place_template(&mut level, template, 3, 7); let res = place_template(&mut level, template, 5, 2); let res = place_template(&mut level, template, 8, 7); let res = connect_rooms(&mut level, 0, 1, &mut rng); let res = connect_rooms(&mut level, 2, 1, &mut rng); let res = connect_rooms(&mut level, 3, 2, &mut rng); create_deadend(&mut level, &mut rng); tunnel_branches(&mut level, &mut rng); tunnel_branches(&mut level, &mut rng); tunnel_branches(&mut level, &mut rng); println!("{:?}", res); pretty_print(&level); let templates = create_templates(); for _ in 0..10 { let l = random_dungeon(&templates, &mut rng); if l.is_ok() { pretty_print(&l.unwrap()); } } }