INNER CODE UNIT · Rust
build_random_rooms
rust-gamedev/rust-game-ports · rusty_roguelike-bevy/src/map_builder/mod.rs:76
fn build_random_rooms(&mut self, rng: &mut RandomNumberGenerator) {
while self.rooms.len() < NUM_ROOMS {
let room = Rect::with_size(
rng.range(1, SCREEN_WIDTH - 10),
rng.range(1, SCREEN_HEIGHT - 10),
rng.range(2, 10),
rng.range(2, 10),
);
let mut overlap = false;
for r in &self.rooms {
if r.intersect(&room) {
overlap = true;
}
}
if !overlap {
room.for_each(|p| {
if p.x > 0 && p.x < SCREEN_WIDTH && p.y > 0 && p.y < SCREEN_HEIGHT {
let idx = map_idx(p.x, p.y);