Add ChunkPos::CHUNK_SIZE

main
copygirl 5 days ago
parent 8d3e16e9c8
commit 0096a84139
  1. 9
      src/bloxel/math/chunk_pos.rs
  2. 4
      src/bloxel/math/size.rs

@ -1,4 +1,7 @@
use std::ops::{self, Index, IndexMut}; use std::{
num::NonZeroU32,
ops::{self, Index, IndexMut},
};
use bevy::{ use bevy::{
ecs::component::Component, ecs::component::Component,
@ -8,11 +11,15 @@ use bevy::{
use overload::overload; use overload::overload;
use super::{BlockPos, BlockRegion, ChunkRegion}; use super::{BlockPos, BlockRegion, ChunkRegion};
use crate::bloxel::math::USize3;
pub const CHUNK_SHIFT: i32 = 4; pub const CHUNK_SHIFT: i32 = 4;
pub const CHUNK_MASK: i32 = !(!0 << CHUNK_SHIFT); // = 0b1111 pub const CHUNK_MASK: i32 = !(!0 << CHUNK_SHIFT); // = 0b1111
pub const CHUNK_LENGTH: usize = 1 << CHUNK_SHIFT; // = 16 pub const CHUNK_LENGTH: usize = 1 << CHUNK_SHIFT; // = 16
pub const CHUNK_SIZE: USize3 =
USize3::splat(unsafe { NonZeroU32::new_unchecked(CHUNK_LENGTH as u32) });
pub const CHUNK_MAX: IVec3 = IVec3::splat((CHUNK_LENGTH - 1) as i32); pub const CHUNK_MAX: IVec3 = IVec3::splat((CHUNK_LENGTH - 1) as i32);
#[derive(Component, Clone, Copy, PartialEq, Eq, Hash, Debug)] #[derive(Component, Clone, Copy, PartialEq, Eq, Hash, Debug)]

@ -10,7 +10,7 @@ pub struct USize3 {
} }
impl USize3 { impl USize3 {
pub fn new(width: NonZeroU32, height: NonZeroU32, depth: NonZeroU32) -> Self { pub const fn new(width: NonZeroU32, height: NonZeroU32, depth: NonZeroU32) -> Self {
Self { Self {
width, width,
height, height,
@ -18,7 +18,7 @@ impl USize3 {
} }
} }
pub fn splat(length: NonZeroU32) -> Self { pub const fn splat(length: NonZeroU32) -> Self {
Self::new(length, length, length) Self::new(length, length, length)
} }

Loading…
Cancel
Save