refactors entity spawning
This commit is contained in:
parent
e72d1bd694
commit
8664a8e066
13 changed files with 286 additions and 83 deletions
|
|
@ -23,17 +23,13 @@ pub struct DLABuilder {
|
|||
brush_size: i32,
|
||||
symmetry: Symmetry,
|
||||
floor_percent: f32,
|
||||
spawn_list: Vec<(usize, String)>,
|
||||
}
|
||||
|
||||
impl MapBuilder for DLABuilder {
|
||||
fn build_map(&mut self, rng: &mut RandomNumberGenerator) {
|
||||
return self.build(rng);
|
||||
}
|
||||
fn spawn_entities(&mut self, ecs: &mut World) {
|
||||
for area in self.noise_areas.iter() {
|
||||
spawner::spawn_region(ecs, area.1, self.depth);
|
||||
}
|
||||
}
|
||||
// Getters
|
||||
fn get_map(&mut self) -> Map {
|
||||
return self.map.clone();
|
||||
|
|
@ -41,6 +37,9 @@ impl MapBuilder for DLABuilder {
|
|||
fn get_starting_pos(&mut self) -> Position {
|
||||
return self.starting_position.clone();
|
||||
}
|
||||
fn get_spawn_list(&self) -> &Vec<(usize, String)> {
|
||||
return &self.spawn_list;
|
||||
}
|
||||
// Mapgen visualisation stuff
|
||||
fn get_snapshot_history(&self) -> Vec<Map> {
|
||||
return self.history.clone();
|
||||
|
|
@ -68,6 +67,7 @@ impl DLABuilder {
|
|||
brush_size: 1,
|
||||
symmetry: Symmetry::None,
|
||||
floor_percent: 0.25,
|
||||
spawn_list: Vec::new(),
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -82,6 +82,7 @@ impl DLABuilder {
|
|||
brush_size: 2,
|
||||
symmetry: Symmetry::None,
|
||||
floor_percent: 0.25,
|
||||
spawn_list: Vec::new(),
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -96,6 +97,7 @@ impl DLABuilder {
|
|||
brush_size: 2,
|
||||
symmetry: Symmetry::None,
|
||||
floor_percent: 0.25,
|
||||
spawn_list: Vec::new(),
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -110,6 +112,7 @@ impl DLABuilder {
|
|||
brush_size: 2,
|
||||
symmetry: Symmetry::Horizontal,
|
||||
floor_percent: 0.25,
|
||||
spawn_list: Vec::new(),
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -236,5 +239,10 @@ impl DLABuilder {
|
|||
|
||||
// Now we build a noise map for use in spawning entities later
|
||||
self.noise_areas = generate_voronoi_spawn_regions(&self.map, rng);
|
||||
|
||||
// Spawn the entities
|
||||
for area in self.noise_areas.iter() {
|
||||
spawner::spawn_region(&self.map, rng, area.1, self.depth, &mut self.spawn_list);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue