aboutsummaryrefslogtreecommitdiff
path: root/azalea-block/src/lib.rs
diff options
context:
space:
mode:
authormat <git@matdoes.dev>2025-08-20 17:40:55 -1100
committermat <git@matdoes.dev>2025-08-20 17:41:06 -1100
commit01e0541b2d8d3acc30999e34992479b3d79fbdbd (patch)
tree89f4297fc011255d66a566a91721e90e5658c724 /azalea-block/src/lib.rs
parent3327f1e243253a7b51e38b79012c17767f47c99e (diff)
downloadazalea-drasl-01e0541b2d8d3acc30999e34992479b3d79fbdbd.tar.xz
generate better code in azalea-block
Diffstat (limited to 'azalea-block/src/lib.rs')
-rw-r--r--azalea-block/src/lib.rs23
1 files changed, 23 insertions, 0 deletions
diff --git a/azalea-block/src/lib.rs b/azalea-block/src/lib.rs
index 4f929cd3..ead63bef 100644
--- a/azalea-block/src/lib.rs
+++ b/azalea-block/src/lib.rs
@@ -38,3 +38,26 @@ pub trait Property {
fn try_from_block_state(state: BlockState) -> Option<Self::Value>;
}
+
+#[cfg(test)]
+mod tests {
+ use crate::BlockTrait;
+
+ #[test]
+ pub fn roundtrip_block_state() {
+ let block = crate::blocks::OakTrapdoor {
+ facing: crate::properties::FacingCardinal::East,
+ half: crate::properties::TopBottom::Bottom,
+ open: true,
+ powered: false,
+ waterlogged: false,
+ };
+ let block_state = block.as_block_state();
+ let block_from_state = Box::<dyn BlockTrait>::from(block_state);
+ let block_from_state = block_from_state
+ .downcast_ref::<crate::blocks::OakTrapdoor>()
+ .unwrap()
+ .clone();
+ assert_eq!(block, block_from_state);
+ }
+}