diff --git a/src/resource/mod.rs b/src/resource/mod.rs index 7f3a499..3d1dc96 100644 --- a/src/resource/mod.rs +++ b/src/resource/mod.rs @@ -53,11 +53,20 @@ impl BlockType { } } -pub type BlockTypeMap = HashMap; +pub struct BlockTypeMap(HashMap); + +impl BlockTypeMap { + #[inline] + pub fn get(&self, id: &str) -> Option { + self.0.get(id).copied() + } +} pub fn block_types() -> BlockTypeMap { - block_types::BLOCK_TYPES - .iter() - .map(|(k, v)| (String::from(*k), *v)) - .collect() + BlockTypeMap( + block_types::BLOCK_TYPES + .iter() + .map(|(k, v)| (String::from(*k), *v)) + .collect(), + ) } diff --git a/src/world/layer.rs b/src/world/layer.rs index f8a7302..2232af8 100644 --- a/src/world/layer.rs +++ b/src/world/layer.rs @@ -110,7 +110,7 @@ pub fn top_layer(chunk: &Chunk, block_types: &BlockTypeMap) -> Result