pub struct Chunk {Show 13 fields
pub id: String,
pub name: String,
pub coords: Vec2<i32>,
pub status: ChunkStatus,
pub voxels: Ndarray<u32>,
pub lights: Ndarray<u32>,
pub height_map: Ndarray<u32>,
pub meshes: Option<HashMap<u32, MeshProtocol>>,
pub min: Vec3<i32>,
pub max: Vec3<i32>,
pub options: ChunkOptions,
pub extra_changes: Vec<VoxelUpdate>,
pub updated_levels: HashSet<u32>,
}
Fields§
§id: String
§name: String
§coords: Vec2<i32>
§status: ChunkStatus
§voxels: Ndarray<u32>
§lights: Ndarray<u32>
§height_map: Ndarray<u32>
§meshes: Option<HashMap<u32, MeshProtocol>>
§min: Vec3<i32>
§max: Vec3<i32>
§options: ChunkOptions
§extra_changes: Vec<VoxelUpdate>
§updated_levels: HashSet<u32>
Implementations§
source§impl Chunk
impl Chunk
pub fn new(id: &str, cx: i32, cz: i32, options: &ChunkOptions) -> Self
sourcepub fn calculate_max_height(&mut self, registry: &Registry)
pub fn calculate_max_height(&mut self, registry: &Registry)
Calculate the height map of this chunk.
sourcepub fn to_model(
&self,
mesh: bool,
data: bool,
levels: Range<u32>
) -> ChunkProtocol
pub fn to_model( &self, mesh: bool, data: bool, levels: Range<u32> ) -> ChunkProtocol
Convert chunk to protocol model.
sourcepub fn add_updated_level(&mut self, vy: i32)
pub fn add_updated_level(&mut self, vy: i32)
Flag a level of sub-chunk as dirty, waiting to be remeshed.
Trait Implementations§
source§impl VoxelAccess for Chunk
impl VoxelAccess for Chunk
source§fn get_raw_voxel(&self, vx: i32, vy: i32, vz: i32) -> u32
fn get_raw_voxel(&self, vx: i32, vy: i32, vz: i32) -> u32
Get the raw value of voxel.
Returns 0 if it’s outside of the chunk.
source§fn set_raw_voxel(&mut self, vx: i32, vy: i32, vz: i32, val: u32) -> bool
fn set_raw_voxel(&mut self, vx: i32, vy: i32, vz: i32, val: u32) -> bool
Set the raw value of voxel.
Panics if the coordinates are outside of chunk.
source§fn get_raw_light(&self, vx: i32, vy: i32, vz: i32) -> u32
fn get_raw_light(&self, vx: i32, vy: i32, vz: i32) -> u32
Get the raw light of voxel.
Returns 0 if it’s outside of the chunk.
source§fn set_raw_light(&mut self, vx: i32, vy: i32, vz: i32, level: u32) -> bool
fn set_raw_light(&mut self, vx: i32, vy: i32, vz: i32, level: u32) -> bool
Set the raw light of voxel.
Panics if the coordinates are outside of chunk.
source§fn get_max_height(&self, vx: i32, vz: i32) -> u32
fn get_max_height(&self, vx: i32, vz: i32) -> u32
Get the max height of a voxel column.
Returns max_height
if it’s not within the chunk.
source§fn set_max_height(&mut self, vx: i32, vz: i32, height: u32) -> bool
fn set_max_height(&mut self, vx: i32, vz: i32, height: u32) -> bool
Set the max height of a voxel column.
Panics if it’s not within the chunk.
source§fn contains(&self, vx: i32, vy: i32, vz: i32) -> bool
fn contains(&self, vx: i32, vy: i32, vz: i32) -> bool
Check if chunk contains this voxel coordinate.
source§fn get_lights(&self, _: i32, _: i32) -> Option<&Ndarray<u32>>
fn get_lights(&self, _: i32, _: i32) -> Option<&Ndarray<u32>>
Get a reference of lighting n-dimensional array.
source§fn get_voxels(&self, _: i32, _: i32) -> Option<&Ndarray<u32>>
fn get_voxels(&self, _: i32, _: i32) -> Option<&Ndarray<u32>>
Get a reference of voxel n-dimensional array.
source§fn get_voxel(&self, vx: i32, vy: i32, vz: i32) -> u32
fn get_voxel(&self, vx: i32, vy: i32, vz: i32) -> u32
Get the voxel ID at a voxel coordinate. If chunk not found, 0 is returned.
source§fn set_voxel(&mut self, vx: i32, vy: i32, vz: i32, id: u32) -> bool
fn set_voxel(&mut self, vx: i32, vy: i32, vz: i32, id: u32) -> bool
Set the voxel type at a voxel coordinate. Returns false couldn’t set.
source§fn get_voxel_rotation(&self, vx: i32, vy: i32, vz: i32) -> BlockRotation
fn get_voxel_rotation(&self, vx: i32, vy: i32, vz: i32) -> BlockRotation
Get the voxel rotation at a voxel coordinate. Panics if chunk isn’t found.
source§fn set_voxel_rotation(
&mut self,
vx: i32,
vy: i32,
vz: i32,
rotation: &BlockRotation
) -> bool
fn set_voxel_rotation( &mut self, vx: i32, vy: i32, vz: i32, rotation: &BlockRotation ) -> bool
Set the voxel rotation at a voxel coordinate. Does nothing if chunk isn’t found.
source§fn get_voxel_stage(&self, vx: i32, vy: i32, vz: i32) -> u32
fn get_voxel_stage(&self, vx: i32, vy: i32, vz: i32) -> u32
Get the voxel stage at a voxel coordinate. Panics if chunk isn’t found.
source§fn set_voxel_stage(&mut self, vx: i32, vy: i32, vz: i32, stage: u32) -> bool
fn set_voxel_stage(&mut self, vx: i32, vy: i32, vz: i32, stage: u32) -> bool
Set the voxel stage at a voxel coordinate. Does nothing if chunk isn’t found.
source§fn get_sunlight(&self, vx: i32, vy: i32, vz: i32) -> u32
fn get_sunlight(&self, vx: i32, vy: i32, vz: i32) -> u32
Get the sunlight level at a voxel position. Returns 0 if chunk does not exist.
source§fn set_sunlight(&mut self, vx: i32, vy: i32, vz: i32, level: u32) -> bool
fn set_sunlight(&mut self, vx: i32, vy: i32, vz: i32, level: u32) -> bool
Set the sunlight level at a voxel coordinate. Returns false if could not set.
source§fn get_red_light(&self, vx: i32, vy: i32, vz: i32) -> u32
fn get_red_light(&self, vx: i32, vy: i32, vz: i32) -> u32
Get the red light level at the voxel position. Zero is returned if chunk doesn’t exist.
source§fn set_red_light(&mut self, vx: i32, vy: i32, vz: i32, level: u32) -> bool
fn set_red_light(&mut self, vx: i32, vy: i32, vz: i32, level: u32) -> bool
Set the red light level at the voxel position. Returns false if could not set.
source§fn get_green_light(&self, vx: i32, vy: i32, vz: i32) -> u32
fn get_green_light(&self, vx: i32, vy: i32, vz: i32) -> u32
Get the green light level at the voxel position. Zero is returned if chunk doesn’t exist.
source§fn set_green_light(&mut self, vx: i32, vy: i32, vz: i32, level: u32) -> bool
fn set_green_light(&mut self, vx: i32, vy: i32, vz: i32, level: u32) -> bool
Set the green light level at the voxel position. Returns false if could not set.
source§fn get_blue_light(&self, vx: i32, vy: i32, vz: i32) -> u32
fn get_blue_light(&self, vx: i32, vy: i32, vz: i32) -> u32
Get the blue light level at the voxel position. Zero is returned if chunk doesn’t exist.
source§fn set_blue_light(&mut self, vx: i32, vy: i32, vz: i32, level: u32) -> bool
fn set_blue_light(&mut self, vx: i32, vy: i32, vz: i32, level: u32) -> bool
Set the blue light level at the voxel position. Returns false if could not set.
source§fn get_torch_light(&self, vx: i32, vy: i32, vz: i32, color: &LightColor) -> u32
fn get_torch_light(&self, vx: i32, vy: i32, vz: i32, color: &LightColor) -> u32
Get the torch light level by color at a voxel coordinate. Returns 0 if chunk does not exist.
source§fn set_torch_light(
&mut self,
vx: i32,
vy: i32,
vz: i32,
level: u32,
color: &LightColor
) -> bool
fn set_torch_light( &mut self, vx: i32, vy: i32, vz: i32, level: u32, color: &LightColor ) -> bool
Set the torch light level by color at a voxel coordinate. Returns false if could not set.
Auto Trait Implementations§
impl Freeze for Chunk
impl RefUnwindSafe for Chunk
impl Send for Chunk
impl Sync for Chunk
impl Unpin for Chunk
impl UnwindSafe for Chunk
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
Mutably borrows from an owned value. Read more
source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Convert
Box<dyn Trait>
(where Trait: Downcast
) to Box<dyn Any>
. Box<dyn Any>
can
then be further downcast
into Box<ConcreteType>
where ConcreteType
implements Trait
.source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Convert
Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
. Rc<Any>
can then be
further downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
.source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Convert
&Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &Any
’s vtable from &Trait
’s.source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Convert
&mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s.source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
source§impl<T> Instrument for T
impl<T> Instrument for T
source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
source§impl<T> IntoEither for T
impl<T> IntoEither for T
source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moresource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moresource§impl<T> Pointable for T
impl<T> Pointable for T
source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
The inverse inclusion map: attempts to construct
self
from the equivalent element of its
superset. Read moresource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
Checks if
self
is actually part of its subset T
(and can be converted to it).source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
Use with care! Same as
self.to_subset
but without any property checks. Always succeeds.source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self
to the equivalent element of its superset.source§impl<T> TryDefault for Twhere
T: Default,
impl<T> TryDefault for Twhere
T: Default,
source§fn try_default() -> Result<T, String>
fn try_default() -> Result<T, String>
Tries to create the default.
source§fn unwrap_default() -> Self
fn unwrap_default() -> Self
Calls
try_default
and panics on an error case.