mirror of
https://github.com/mat-1/azalea.git
synced 2025-08-02 23:44:38 +00:00
add safety comments and simplify some code
This commit is contained in:
parent
c2fb991595
commit
17734cdcbf
3 changed files with 5 additions and 10 deletions
|
@ -143,10 +143,12 @@ where
|
|||
}
|
||||
}
|
||||
|
||||
#[inline]
|
||||
pub fn index(&self, index: usize) -> bool {
|
||||
(self.data[index / 8] & (1u8 << (index % 8))) != 0
|
||||
}
|
||||
|
||||
#[inline]
|
||||
pub fn set(&mut self, bit_index: usize) {
|
||||
self.data[bit_index / 8] |= 1u8 << (bit_index % 8);
|
||||
}
|
||||
|
|
|
@ -261,7 +261,6 @@ impl ChunkSectionPos {
|
|||
}
|
||||
/// The coordinates of a block inside a chunk.
|
||||
#[derive(Clone, Copy, Debug, Default, PartialEq, Eq)]
|
||||
#[repr(align(8))]
|
||||
pub struct ChunkBlockPos {
|
||||
pub x: u8,
|
||||
pub y: i32,
|
||||
|
@ -300,7 +299,6 @@ impl nohash_hasher::IsEnabled for ChunkBlockPos {}
|
|||
/// The coordinates of a block inside a chunk section. Each coordinate must be
|
||||
/// in the range [0, 15].
|
||||
#[derive(Clone, Copy, Debug, Default, PartialEq, Eq)]
|
||||
#[repr(align(4))]
|
||||
pub struct ChunkSectionBlockPos {
|
||||
pub x: u8,
|
||||
pub y: u8,
|
||||
|
@ -330,14 +328,7 @@ impl Hash for ChunkSectionBlockPos {
|
|||
impl From<ChunkSectionBlockPos> for u16 {
|
||||
#[inline]
|
||||
fn from(pos: ChunkSectionBlockPos) -> Self {
|
||||
let mut val: u16 = 0;
|
||||
// first 4 bits are z
|
||||
val |= pos.z as u16;
|
||||
// next 4 bits are y
|
||||
val |= (pos.y as u16) << 4;
|
||||
// last 4 bits are x
|
||||
val |= (pos.x as u16) << 8;
|
||||
val
|
||||
(pos.z as u16) | ((pos.y as u16) << 4) | ((pos.x as u16) << 8)
|
||||
}
|
||||
}
|
||||
impl nohash_hasher::IsEnabled for ChunkSectionBlockPos {}
|
||||
|
|
|
@ -131,6 +131,7 @@ impl PathfinderCtx {
|
|||
let (section_pos, section_block_pos) =
|
||||
(ChunkSectionPos::from(pos), ChunkSectionBlockPos::from(pos));
|
||||
let index = u16::from(section_block_pos) as usize;
|
||||
// SAFETY: we're only accessing this from one thread
|
||||
let cached_block_passable = unsafe { &mut *self.cached_block_passable.get() };
|
||||
if let Some(cached) = cached_block_passable.iter_mut().find_map(|cached| {
|
||||
if cached.pos == section_pos {
|
||||
|
@ -183,6 +184,7 @@ impl PathfinderCtx {
|
|||
let (section_pos, section_block_pos) =
|
||||
(ChunkSectionPos::from(pos), ChunkSectionBlockPos::from(pos));
|
||||
let index = u16::from(section_block_pos) as usize;
|
||||
// SAFETY: we're only accessing this from one thread
|
||||
let cached_block_solid = unsafe { &mut *self.cached_block_solid.get() };
|
||||
if let Some(cached) = cached_block_solid.iter_mut().find_map(|cached| {
|
||||
if cached.pos == section_pos {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue