From 74fcc25b8cbc3a05aedf3921af8e9f5a650f8d7f Mon Sep 17 00:00:00 2001 From: Timothy Warren Date: Wed, 15 Dec 2021 13:58:47 -0500 Subject: [PATCH] Make dla and drunken map builders implement MetaMapBuilder trait --- src/map_builders/dla.rs | 17 ++++++++++++++++- src/map_builders/drunkard.rs | 9 ++++++++- 2 files changed, 24 insertions(+), 2 deletions(-) diff --git a/src/map_builders/dla.rs b/src/map_builders/dla.rs index 94c97a5..ecbba47 100644 --- a/src/map_builders/dla.rs +++ b/src/map_builders/dla.rs @@ -2,7 +2,7 @@ use rltk::RandomNumberGenerator; use super::common::{paint, Symmetry}; use crate::components::Position; -use crate::map_builders::{BuilderMap, InitialMapBuilder}; +use crate::map_builders::{BuilderMap, InitialMapBuilder, MetaMapBuilder}; use crate::TileType; #[derive(PartialEq, Copy, Clone)] @@ -25,6 +25,12 @@ impl InitialMapBuilder for DLABuilder { } } +impl MetaMapBuilder for DLABuilder { + fn build_map(&mut self, rng: &mut RandomNumberGenerator, build_data: &mut BuilderMap) { + self.build(rng, build_data); + } +} + impl DLABuilder { pub fn new() -> DLABuilder { DLABuilder { @@ -66,6 +72,15 @@ impl DLABuilder { }) } + pub fn heavy_erosion() -> Box { + Box::new(DLABuilder { + algorithm: DLAAlgorithm::WalkInwards, + brush_size: 2, + floor_percent: 0.25, + ..DLABuilder::new() + }) + } + #[allow(clippy::map_entry)] fn build(&mut self, rng: &mut RandomNumberGenerator, build_data: &mut BuilderMap) { let starting_position = Position { diff --git a/src/map_builders/drunkard.rs b/src/map_builders/drunkard.rs index 69d93cd..fa1b58c 100644 --- a/src/map_builders/drunkard.rs +++ b/src/map_builders/drunkard.rs @@ -2,7 +2,7 @@ use rltk::RandomNumberGenerator; use super::common::{paint, Symmetry}; use crate::components::Position; -use crate::map_builders::{BuilderMap, InitialMapBuilder}; +use crate::map_builders::{BuilderMap, InitialMapBuilder, MetaMapBuilder}; use crate::TileType; #[derive(PartialEq, Copy, Clone)] @@ -29,6 +29,13 @@ impl InitialMapBuilder for DrunkardsWalkBuilder { } } +impl MetaMapBuilder for DrunkardsWalkBuilder { + #[allow(dead_code)] + fn build_map(&mut self, rng: &mut RandomNumberGenerator, build_data: &mut BuilderMap) { + self.build(rng, build_data); + } +} + impl DrunkardsWalkBuilder { pub fn new(settings: DrunkardSettings) -> DrunkardsWalkBuilder { DrunkardsWalkBuilder { settings }