diff options
author | David Blajda <blajda@hotmail.com> | 2019-08-24 15:47:36 +0000 |
---|---|---|
committer | David Blajda <blajda@hotmail.com> | 2019-08-24 15:47:36 +0000 |
commit | 1e09bbf7e814d20ddbc446206d0855121ad556f2 (patch) | |
tree | 33f46ecbe5bbfc57f5cdd24345984da08aec78f8 /src/bin/main.rs | |
parent | 42e06126fc8ad6b17d3e4c1c082fb7feb36d067f (diff) |
Diffstat (limited to 'src/bin/main.rs')
-rw-r--r-- | src/bin/main.rs | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/src/bin/main.rs b/src/bin/main.rs new file mode 100644 index 0000000..0806dfd --- /dev/null +++ b/src/bin/main.rs @@ -0,0 +1,39 @@ +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<Option<Tile>> = 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()); + } + } +} |