atomises rooms and corridors
- room sorter - rounding room corners - dogleg and bsp corridors - room exploder
This commit is contained in:
parent
b7b2061228
commit
2ceb20a822
9 changed files with 411 additions and 59 deletions
|
|
@ -1,4 +1,4 @@
|
|||
use super::{apply_horizontal_tunnel, apply_room_to_map, apply_vertical_tunnel, BuilderMap, InitialMapBuilder, Rect};
|
||||
use super::{apply_room_to_map, apply_vertical_tunnel, BuilderMap, InitialMapBuilder, Rect};
|
||||
use rltk::RandomNumberGenerator;
|
||||
|
||||
pub struct SimpleMapBuilder {}
|
||||
|
|
@ -6,7 +6,7 @@ pub struct SimpleMapBuilder {}
|
|||
impl InitialMapBuilder for SimpleMapBuilder {
|
||||
#[allow(dead_code)]
|
||||
fn build_map(&mut self, rng: &mut rltk::RandomNumberGenerator, build_data: &mut BuilderMap) {
|
||||
self.rooms_and_corridors(rng, build_data);
|
||||
self.build_rooms(rng, build_data);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -16,7 +16,7 @@ impl SimpleMapBuilder {
|
|||
Box::new(SimpleMapBuilder {})
|
||||
}
|
||||
|
||||
fn rooms_and_corridors(&mut self, rng: &mut RandomNumberGenerator, build_data: &mut BuilderMap) {
|
||||
fn build_rooms(&mut self, rng: &mut RandomNumberGenerator, build_data: &mut BuilderMap) {
|
||||
const MAX_ROOMS: i32 = 30;
|
||||
const MIN_SIZE: i32 = 6;
|
||||
const MAX_SIZE: i32 = 10;
|
||||
|
|
@ -38,18 +38,6 @@ impl SimpleMapBuilder {
|
|||
apply_room_to_map(&mut build_data.map, &new_room);
|
||||
build_data.take_snapshot();
|
||||
|
||||
if !rooms.is_empty() {
|
||||
let (new_x, new_y) = new_room.centre();
|
||||
let (prev_x, prev_y) = rooms[rooms.len() - 1].centre();
|
||||
if rng.range(0, 2) == 1 {
|
||||
apply_horizontal_tunnel(&mut build_data.map, prev_x, new_x, prev_y);
|
||||
apply_vertical_tunnel(&mut build_data.map, prev_y, new_y, new_x);
|
||||
} else {
|
||||
apply_vertical_tunnel(&mut build_data.map, prev_y, new_y, prev_x);
|
||||
apply_horizontal_tunnel(&mut build_data.map, prev_x, new_x, new_y);
|
||||
}
|
||||
}
|
||||
|
||||
rooms.push(new_room);
|
||||
build_data.take_snapshot();
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue