pub struct Registry {
pub ranges: HashMap<String, UV>,
pub blocks_by_name: HashMap<String, Block>,
pub blocks_by_id: HashMap<u32, Block>,
pub textures: HashSet<String>,
/* 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
ranges: HashMap<String, UV>
A map of the UV’s to the block faces on the texture atlas.
blocks_by_name: HashMap<String, Block>
Block records, name -> Block.
blocks_by_id: HashMap<u32, Block>
Block records, id -> Block.
textures: HashSet<String>
List of textures that this registry has. Textures are then applied onto block sides.
Implementations
sourceimpl 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.
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_transparency_by_id(&self, id: u32) -> bool
pub fn get_transparency_by_id(&self, id: u32) -> bool
Get block transparency by id.
sourcepub fn get_transparency_by_name(&self, name: &str) -> bool
pub fn get_transparency_by_name(&self, name: &str) -> bool
Get block transparency by 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_solidity_by_id(&self, id: u32) -> bool
pub fn get_solidity_by_id(&self, id: u32) -> bool
Get block solidity by id.
sourcepub fn get_solidity_by_name(&self, name: &str) -> bool
pub fn get_solidity_by_name(&self, name: &str) -> bool
Get block solidity 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>ⓘNotable traits for Vec<u8, A>impl<A> Write for Vec<u8, A> where
A: Allocator,
pub fn get_faces_by_id(&self, id: u32) -> &Vec<BlockFace>ⓘNotable traits for Vec<u8, A>impl<A> Write for Vec<u8, A> where
A: Allocator,
A: Allocator,
Get block faces by id.
sourcepub fn get_faces_by_name(&self, name: &str) -> &Vec<BlockFace>ⓘNotable traits for Vec<u8, A>impl<A> Write for Vec<u8, A> where
A: Allocator,
pub fn get_faces_by_name(&self, name: &str) -> &Vec<BlockFace>ⓘNotable traits for Vec<u8, A>impl<A> Write for Vec<u8, A> where
A: Allocator,
A: Allocator,
Get block faces by name.
sourcepub fn is_plantable(&self, id: u32, above: u32) -> bool
pub fn is_plantable(&self, id: u32, above: u32) -> bool
Check if block is plantable by id.
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 get_passable_solids(&self) -> Vec<u32>ⓘNotable traits for Vec<u8, A>impl<A> Write for Vec<u8, A> where
A: Allocator,
pub fn get_passable_solids(&self) -> Vec<u32>ⓘNotable traits for Vec<u8, A>impl<A> Write for Vec<u8, A> where
A: Allocator,
A: Allocator,
Get solids that can be treated as empty’s.
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 RefUnwindSafe for Registry
impl Send for Registry
impl Sync for Registry
impl Unpin for Registry
impl UnwindSafe for Registry
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