pub struct BlockPosition {
pub x: i32,
pub y: i32,
pub z: i32,
}Expand description
A block position using full 32-bit coordinates.
BlockPosition represents a block’s location in the world without the bit
packing constraints of Position. It is used internally for world
logic and converts to/from Position for protocol serialization.
Unlike Position, BlockPosition is not directly serialized on the wire —
it converts through Position for encoding. This type exists to
provide a more ergonomic API for working with block coordinates
without worrying about bit packing limitations.
Fields§
§x: i32§y: i32§z: i32Implementations§
Source§impl BlockPosition
impl BlockPosition
Sourcepub fn chunk_pos(&self) -> ChunkPosition
pub fn chunk_pos(&self) -> ChunkPosition
Returns the chunk position that contains this block.
Chunk coordinates are derived by dividing block coordinates by 16 (arithmetic right shift by 4). This matches the Minecraft convention where each chunk is a 16x16 column of blocks.
Trait Implementations§
Source§impl Clone for BlockPosition
impl Clone for BlockPosition
Source§fn clone(&self) -> BlockPosition
fn clone(&self) -> BlockPosition
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for BlockPosition
impl Debug for BlockPosition
Source§impl From<BlockPosition> for ChunkPosition
Converts a BlockPosition to the ChunkPosition that contains it.
impl From<BlockPosition> for ChunkPosition
Converts a BlockPosition to the ChunkPosition that contains it.
Source§fn from(pos: BlockPosition) -> Self
fn from(pos: BlockPosition) -> Self
Source§impl From<BlockPosition> for Position
Converts a BlockPosition into a Position for wire serialization.
impl From<BlockPosition> for Position
Converts a BlockPosition into a Position for wire serialization.
Coordinates outside the Position range (x/z: 26-bit signed, y: 12-bit signed) will be silently truncated during packing.
Source§fn from(pos: BlockPosition) -> Self
fn from(pos: BlockPosition) -> Self
Source§impl From<Position> for BlockPosition
Converts a Position (packed wire format) into a BlockPosition (full i32 coordinates).
impl From<Position> for BlockPosition
Converts a Position (packed wire format) into a BlockPosition (full i32 coordinates).
Source§impl Hash for BlockPosition
impl Hash for BlockPosition
Source§impl PartialEq for BlockPosition
impl PartialEq for BlockPosition
impl Copy for BlockPosition
impl Eq for BlockPosition
impl StructuralPartialEq for BlockPosition
Auto Trait Implementations§
impl Freeze for BlockPosition
impl RefUnwindSafe for BlockPosition
impl Send for BlockPosition
impl Sync for BlockPosition
impl Unpin for BlockPosition
impl UnsafeUnpin for BlockPosition
impl UnwindSafe for BlockPosition
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.