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 +}