mirror of
https://gitlab.com/veloren/veloren.git
synced 2024-08-30 18:12:32 +00:00
failed attempt at making dungeons avoid caves
This commit is contained in:
parent
0f2db68498
commit
14141ecc80
@ -22,6 +22,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|||||||
- Recipe for a new leather pack
|
- Recipe for a new leather pack
|
||||||
- Keybinds for zooming the camera (Defaults: ']' for zooming in and '[' for zooming out)
|
- Keybinds for zooming the camera (Defaults: ']' for zooming in and '[' for zooming out)
|
||||||
- Added the ability to make pets sit, they wont follow nor defend you in this state
|
- Added the ability to make pets sit, they wont follow nor defend you in this state
|
||||||
|
- Portals that spawn in place of the last staircase at old style dungeons to prevent stair cheesing
|
||||||
|
|
||||||
### Changed
|
### Changed
|
||||||
|
|
||||||
@ -53,6 +54,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|||||||
|
|
||||||
### Fixed
|
### Fixed
|
||||||
- Fixed wild roaming cyclop loot table to not drop the quarry key
|
- Fixed wild roaming cyclop loot table to not drop the quarry key
|
||||||
|
- Dungeons now have an outer wall, preventing them from intersecting with caves or leaving holes in sides of mountains.
|
||||||
|
|
||||||
## [0.15.0] - 2023-07-01
|
## [0.15.0] - 2023-07-01
|
||||||
|
|
||||||
|
@ -1884,14 +1884,23 @@ impl SiteKind {
|
|||||||
on_land() && {
|
on_land() && {
|
||||||
let land = Land::from_sim(sim);
|
let land = Land::from_sim(sim);
|
||||||
let loc = loc.map(|v| TerrainChunkSize::RECT_SIZE.y as i32 * v);
|
let loc = loc.map(|v| TerrainChunkSize::RECT_SIZE.y as i32 * v);
|
||||||
|
let dungeon_aabr = Aabr {
|
||||||
|
min: loc - Vec2::broadcast(200),
|
||||||
|
max: loc + Vec2::broadcast(200),
|
||||||
|
};
|
||||||
|
|
||||||
// Get shallow caves under the dungeon
|
// Get shallow caves under the dungeon
|
||||||
let mut tunnels =
|
let mut tunnels = cave::tunnels_at(loc, 1, &land)
|
||||||
cave::tunnels_at(loc /* very surely wrong */, 1, &land)
|
.chain(cave::tunnels_at(loc, 2, &land))
|
||||||
.chain(cave::tunnels_at(loc, 2, &land));
|
.filter(|tunnel| {
|
||||||
|
dungeon_aabr.collides_with_aabr(Aabr {
|
||||||
|
min: tunnel.a.wpos,
|
||||||
|
max: tunnel.b.wpos,
|
||||||
|
})
|
||||||
|
});
|
||||||
|
|
||||||
// Make sure there are no shallow caves near the dungeon
|
// Make sure there are no shallow caves near the dungeon
|
||||||
tunnels.next().is_none() || true
|
tunnels.next().is_none()
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
SiteKind::Refactor | SiteKind::Settlement => suitable_for_town(),
|
SiteKind::Refactor | SiteKind::Settlement => suitable_for_town(),
|
||||||
|
@ -76,8 +76,8 @@ pub fn surface_entrances<'a>(land: &'a Land) -> impl Iterator<Item = Vec2<i32>>
|
|||||||
}
|
}
|
||||||
|
|
||||||
pub struct Tunnel {
|
pub struct Tunnel {
|
||||||
a: Node,
|
pub a: Node,
|
||||||
b: Node,
|
pub b: Node,
|
||||||
curve: f32,
|
curve: f32,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user