mod.rs 583 B

1234567891011121314151617181920
  1. use super::{Map, Rect, TileType, Position, spawner};
  2. mod simple_map;
  3. use simple_map::SimpleMapBuilder;
  4. mod common;
  5. use common::*;
  6. use specs::prelude::*;
  7. pub trait MapBuilder {
  8. fn build_map(&mut self);
  9. fn spawn_entities(&mut self, ecs : &mut World);
  10. fn get_map(&self) -> Map;
  11. fn get_starting_position(&self) -> Position;
  12. fn get_snapshot_history(&self) -> Vec<Map>;
  13. }
  14. pub fn random_builder(new_depth: i32) -> Box<dyn MapBuilder> {
  15. // Note that until we have a second map type, this isn't even slighlty random
  16. Box::new(SimpleMapBuilder::new(new_depth))
  17. }