mirror of
https://github.com/mat-1/azalea.git
synced 2024-09-19 22:52:32 +00:00
fix get_block_collisions panicking when starting in a non existent chunk
This commit is contained in:
parent
b66b5b6b90
commit
8808ecef94
1 changed files with 9 additions and 5 deletions
|
@ -15,8 +15,8 @@ pub fn get_block_collisions(world: &Instance, aabb: AABB) -> Vec<VoxelShape> {
|
||||||
let mut block_collisions = Vec::new();
|
let mut block_collisions = Vec::new();
|
||||||
|
|
||||||
let initial_chunk_pos = ChunkPos::from(state.cursor.origin());
|
let initial_chunk_pos = ChunkPos::from(state.cursor.origin());
|
||||||
let initial_chunk = world.chunks.get(&initial_chunk_pos).unwrap();
|
let initial_chunk = world.chunks.get(&initial_chunk_pos);
|
||||||
let initial_chunk = initial_chunk.read();
|
let initial_chunk = initial_chunk.as_deref().map(RwLock::read);
|
||||||
|
|
||||||
while let Some(item) = state.cursor.next() {
|
while let Some(item) = state.cursor.next() {
|
||||||
if item.iteration_type == CursorIterationType::Corner {
|
if item.iteration_type == CursorIterationType::Corner {
|
||||||
|
@ -25,9 +25,13 @@ pub fn get_block_collisions(world: &Instance, aabb: AABB) -> Vec<VoxelShape> {
|
||||||
|
|
||||||
let item_chunk_pos = ChunkPos::from(item.pos);
|
let item_chunk_pos = ChunkPos::from(item.pos);
|
||||||
let block_state: BlockState = if item_chunk_pos == initial_chunk_pos {
|
let block_state: BlockState = if item_chunk_pos == initial_chunk_pos {
|
||||||
initial_chunk
|
if let Some(initial_chunk) = &initial_chunk {
|
||||||
.get(&ChunkBlockPos::from(item.pos), state.world.chunks.min_y)
|
initial_chunk
|
||||||
.unwrap_or(BlockState::AIR)
|
.get(&ChunkBlockPos::from(item.pos), state.world.chunks.min_y)
|
||||||
|
.unwrap_or(BlockState::AIR)
|
||||||
|
} else {
|
||||||
|
BlockState::AIR
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
state.get_block_state(item.pos)
|
state.get_block_state(item.pos)
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in a new issue