pub struct Registry {
pub blocks_by_name: HashMap<String, Block>,
pub blocks_by_id: HashMap<u32, Block>,
pub textures: HashSet<(u32, usize, bool)>,
/* private fields */
}
Expand description
A collection of blocks to use in a Voxelize server. One server has one registry and one registry only. Once a registry is added to a server, it cannot be changed.
Fields§
§blocks_by_name: HashMap<String, Block>
Block records, name -> Block.
blocks_by_id: HashMap<u32, Block>
Block records, id -> Block.
textures: HashSet<(u32, usize, bool)>
List of textures that this registry has. Textures are then applied onto block sides.
Implementations§
source§impl Registry
impl Registry
sourcepub fn new() -> Self
pub fn new() -> Self
Create a registry instance. By default, the “Air” block is registered at ID of 0.
pub fn register_air_active_fn<F1: Fn(Vec3<i32>, &dyn VoxelAccess, &Registry) -> u64 + 'static + Send + Sync, F2: Fn(Vec3<i32>, &dyn VoxelAccess, &Registry) -> Vec<VoxelUpdate> + 'static + Send + Sync>( &mut self, active_ticker: F1, active_updater: F2 )
sourcepub fn generate(&mut self)
pub fn generate(&mut self)
Generate the UV coordinates of the blocks. Call this before the server starts!
sourcepub fn register_blocks(&mut self, blocks: &[Block])
pub fn register_blocks(&mut self, blocks: &[Block])
Register multiple blocks into this world. The block ID’s are assigned to the length of the blocks at registration.
sourcepub fn register_block(&mut self, block: &Block)
pub fn register_block(&mut self, block: &Block)
Register a block into this world. The block ID is assigned to the length of the blocks registered.
sourcepub fn get_block_by_name(&self, name: &str) -> &Block
pub fn get_block_by_name(&self, name: &str) -> &Block
Get a block reference by block name.
sourcepub fn get_block_by_id(&self, id: u32) -> &Block
pub fn get_block_by_id(&self, id: u32) -> &Block
Get a block reference by block ID.
sourcepub fn get_id_by_name(&self, name: &str) -> u32
pub fn get_id_by_name(&self, name: &str) -> u32
Get a block id by block name.
sourcepub fn get_fluiditiy_by_id(&self, id: u32) -> bool
pub fn get_fluiditiy_by_id(&self, id: u32) -> bool
Get block fluidity by id.
sourcepub fn get_fluiditiy_by_name(&self, name: &str) -> bool
pub fn get_fluiditiy_by_name(&self, name: &str) -> bool
Get block fluidity by name.
sourcepub fn get_opacity_by_id(&self, id: u32) -> bool
pub fn get_opacity_by_id(&self, id: u32) -> bool
Get block opacity by id.
sourcepub fn get_opacity_by_name(&self, name: &str) -> bool
pub fn get_opacity_by_name(&self, name: &str) -> bool
Get block opacity by name.
sourcepub fn get_emptiness_by_id(&self, id: u32) -> bool
pub fn get_emptiness_by_id(&self, id: u32) -> bool
Get block emptiness by id.
sourcepub fn get_emptiness_by_name(&self, name: &str) -> bool
pub fn get_emptiness_by_name(&self, name: &str) -> bool
Get block emptiness by name.
sourcepub fn get_faces_by_id(&self, id: u32) -> &Vec<BlockFace>
pub fn get_faces_by_id(&self, id: u32) -> &Vec<BlockFace>
Get block faces by id.
sourcepub fn get_faces_by_name(&self, name: &str) -> &Vec<BlockFace>
pub fn get_faces_by_name(&self, name: &str) -> &Vec<BlockFace>
Get block faces by name.
sourcepub fn get_type_map(&self, blocks: &[&str]) -> HashMap<String, u32>
pub fn get_type_map(&self, blocks: &[&str]) -> HashMap<String, u32>
Get type map of all blocks.
sourcepub fn check_height(&self, id: u32) -> bool
pub fn check_height(&self, id: u32) -> bool
Logic for checking max height, returning true if id counts as valid max height.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for Registry
impl !RefUnwindSafe for Registry
impl Send for Registry
impl Sync for Registry
impl Unpin for Registry
impl !UnwindSafe for Registry
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> 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>
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>
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)
&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)
&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>
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>
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>
self
from the equivalent element of its
superset. Read moresource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
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
self.to_subset
but without any property checks. Always succeeds.source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
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>
source§fn unwrap_default() -> Self
fn unwrap_default() -> Self
try_default
and panics on an error case.