summaryrefslogtreecommitdiff
path: root/src/bin/main.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/bin/main.rs')
-rw-r--r--src/bin/main.rs39
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());
+ }
+ }
+}