INNER CODE UNIT · Rust
min
rust-gamedev/rust-game-ports · rusty_roguelike-bevy/src/map_builder/mod.rs:114
for y in min(y1, y2)..=max(y1, y2) {
if let Some(idx) = self.map.try_idx(Point::new(x, y)) {
self.map.tiles[idx as usize] = TileType::Floor;
}
}
}
fn build_corridors(&mut self, rng: &mut RandomNumberGenerator) {
let mut rooms = self.rooms.clone();
rooms.sort_by(|a, b| a.center().x.cmp(&b.center().x));
for (i, room) in rooms.iter().enumerate().skip(1) {
let prev = rooms[i - 1].center();
let new = room.center();
if rng.range(0, 2) == 1 {
self.apply_horizontal_tunnel(prev.x, new.x, prev.y);
self.apply_vertical_tunnel(prev.y, new.y, new.x);