pub struct Chunk {Show 13 fields
pub id: String,
pub name: String,
pub coords: Vec2<i32>,
pub stage: Option<usize>,
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 params: ChunkParams,
pub exceeded_changes: Vec<BlockChange>,
pub updated_levels: HashSet<u32>,
}
Fields
id: String
name: String
coords: Vec2<i32>
stage: Option<usize>
voxels: Ndarray<u32>
lights: Ndarray<u32>
height_map: Ndarray<u32>
meshes: Option<HashMap<u32, MeshProtocol>>
min: Vec3<i32>
max: Vec3<i32>
params: ChunkParams
exceeded_changes: Vec<BlockChange>
updated_levels: HashSet<u32>
Implementations
sourceimpl Chunk
impl Chunk
pub fn new(id: &str, cx: i32, cz: i32, params: &ChunkParams) -> 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
sourceimpl VoxelAccess for Chunk
impl VoxelAccess for Chunk
sourcefn 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.
sourcefn 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.
sourcefn 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.
sourcefn 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.
sourcefn 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.
sourcefn 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.
sourcefn 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.
sourcefn get_lights(&self, cx: i32, cz: i32) -> Option<&Ndarray<u32>>
fn get_lights(&self, cx: i32, cz: i32) -> Option<&Ndarray<u32>>
Get a reference of lighting n-dimensional array.
sourcefn get_voxels(&self, cx: i32, cz: i32) -> Option<&Ndarray<u32>>
fn get_voxels(&self, cx: i32, cz: i32) -> Option<&Ndarray<u32>>
Get a reference of voxel n-dimensional array.
sourcefn 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.
sourcefn 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.
sourcefn 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.
sourcefn 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.
sourcefn 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.
sourcefn 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.
sourcefn 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.
sourcefn 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.
sourcefn 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.
sourcefn 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.
sourcefn 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.
sourcefn 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.
sourcefn 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.
sourcefn 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.
sourcefn 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.
sourcefn 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 RefUnwindSafe for Chunk
impl Send for Chunk
impl Sync for Chunk
impl Unpin for Chunk
impl UnwindSafe for Chunk
Blanket Implementations
impl<T> Any for T where
T: Any,
impl<T> Any for T where
T: Any,
fn get_type_id(&self) -> TypeId
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
impl<T> Downcast for T where
T: Any,
impl<T> Downcast for T where
T: Any,
fn into_any(self: Box<T, Global>) -> Box<dyn Any + 'static, Global>
fn into_any(self: Box<T, Global>) -> Box<dyn Any + 'static, Global>
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
. Read more
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>
Convert Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
. Rc<Any>
can then be
further downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
. Read more
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. Read more
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. Read more
sourceimpl<T> Instrument for T
impl<T> Instrument for T
sourcefn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
sourcefn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
impl<T> Pointable for T
impl<T> Pointable for T
impl<SS, SP> SupersetOf<SS> for SP where
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SP where
SS: SubsetOf<SP>,
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 more
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).
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.
fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts self
to the equivalent element of its superset.
sourceimpl<T> TryDefault for T where
T: Default,
impl<T> TryDefault for T where
T: Default,
sourcefn try_default() -> Result<T, String>
fn try_default() -> Result<T, String>
Tries to create the default.
sourcefn unwrap_default() -> Self
fn unwrap_default() -> Self
Calls try_default
and panics on an error case.
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
fn vzip(self) -> V
sourceimpl<T> WithSubscriber for T
impl<T> WithSubscriber for T
sourcefn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> where
S: Into<Dispatch>,
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> where
S: Into<Dispatch>,
Attaches the provided Subscriber
to this type, returning a
WithDispatch
wrapper. Read more
sourcefn with_current_subscriber(self) -> WithDispatch<Self>
fn with_current_subscriber(self) -> WithDispatch<Self>
Attaches the current default Subscriber
to this type, returning a
WithDispatch
wrapper. Read more