From b8e02e550ee787cc62cbaf75d35b315f194f72a6 Mon Sep 17 00:00:00 2001 From: "Timothy J. Warren" Date: Fri, 28 Jan 2022 14:08:22 -0500 Subject: [PATCH] Add new mushroom-based level --- src/map_builders.rs | 1 + src/map_builders/mushroom_forest.rs | 19 +++++++++++++++++++ 2 files changed, 20 insertions(+) diff --git a/src/map_builders.rs b/src/map_builders.rs index 35dede0..2b1b8bf 100644 --- a/src/map_builders.rs +++ b/src/map_builders.rs @@ -360,6 +360,7 @@ pub fn level_builder( 5 => limestone_transition_builder(new_depth, rng, width, height), 6 => dwarf_fort_builder(new_depth, rng, width, height), 7 => mushroom_entrance(new_depth, rng, width, height), + 8 => mushroom_builder(new_depth, rng, width, height), _ => random_builder(new_depth, rng, width, height), } } diff --git a/src/map_builders/mushroom_forest.rs b/src/map_builders/mushroom_forest.rs index a169c7b..51a8b08 100644 --- a/src/map_builders/mushroom_forest.rs +++ b/src/map_builders/mushroom_forest.rs @@ -24,3 +24,22 @@ pub fn mushroom_entrance( chain } + +pub fn mushroom_builder( + new_depth: i32, + _rng: &mut ::rltk::RandomNumberGenerator, + width: i32, + height: i32, +) -> BuilderChain { + let mut chain = BuilderChain::new(new_depth, width, height, "Into the Mushroom Grove"); + chain + .start_with(CellularAutomataBuilder::new()) + .with(WaveformCollapseBuilder::new()) + .with(AreaStartingPosition::new(XStart::Center, YStart::Center)) + .with(CullUnreachable::new()) + .with(AreaStartingPosition::new(XStart::Right, YStart::Center)) + .with(AreaEndingPosition::new(XEnd::Left, YEnd::Center)) + .with(VoronoiSpawning::new()); + + chain +}