diff --git a/azalea-block/src/lib.rs b/azalea-block/src/lib.rs index ef0041f13..f95a4f2f0 100755 --- a/azalea-block/src/lib.rs +++ b/azalea-block/src/lib.rs @@ -53,6 +53,7 @@ impl BlockState { state_id <= Self::max_state() } + #[inline] pub fn is_air(&self) -> bool { self == &Self::AIR } diff --git a/azalea-world/src/chunk_storage.rs b/azalea-world/src/chunk_storage.rs index acf0cf226..e7ff40c5c 100755 --- a/azalea-world/src/chunk_storage.rs +++ b/azalea-world/src/chunk_storage.rs @@ -315,6 +315,7 @@ impl Chunk { /// Get the block state at the given position from a list of sections. Returns /// `None` if the position is out of bounds. +#[inline] pub fn get_block_state_from_sections( sections: &[Section], pos: &ChunkBlockPos, @@ -329,7 +330,6 @@ pub fn get_block_state_from_sections( // y position is out of bounds return None; }; - // TODO: make sure the section exists let section = §ions[section_index]; let chunk_section_pos = ChunkSectionBlockPos::from(pos); Some(section.get(chunk_section_pos)) diff --git a/azalea/src/pathfinder/mod.rs b/azalea/src/pathfinder/mod.rs index 74b4342f9..f4d16ca59 100644 --- a/azalea/src/pathfinder/mod.rs +++ b/azalea/src/pathfinder/mod.rs @@ -194,7 +194,7 @@ fn goto_listener( |n| goal.heuristic(n), successors, |n| goal.success(n), - Duration::from_secs(if attempt_number == 0 { 10 } else { 10 }), + Duration::from_secs(if attempt_number == 0 { 1 } else { 5 }), ); let end_time = std::time::Instant::now(); debug!("partial: {partial:?}"); diff --git a/azalea/src/pathfinder/moves/mod.rs b/azalea/src/pathfinder/moves/mod.rs index 907db4fce..39e5374f1 100644 --- a/azalea/src/pathfinder/moves/mod.rs +++ b/azalea/src/pathfinder/moves/mod.rs @@ -48,6 +48,7 @@ impl<'a> PathfinderCtx<'a> { fn get_block_state(&self, pos: &BlockPos) -> Option { let chunk_pos = ChunkPos::from(pos); + let chunk_block_pos = ChunkBlockPos::from(pos); let mut cached_chunks = self.cached_chunks.borrow_mut(); if let Some(sections) = cached_chunks.iter().find_map(|(pos, sections)| { @@ -59,7 +60,7 @@ impl<'a> PathfinderCtx<'a> { }) { return azalea_world::chunk_storage::get_block_state_from_sections( sections, - &ChunkBlockPos::from(pos), + &chunk_block_pos, self.world.min_y, ); } @@ -69,7 +70,6 @@ impl<'a> PathfinderCtx<'a> { cached_chunks.push((chunk_pos, chunk.sections.clone())); - let chunk_block_pos = ChunkBlockPos::from(pos); azalea_world::chunk_storage::get_block_state_from_sections( &chunk.sections, &chunk_block_pos,