diff options
Diffstat (limited to 'azalea-block/src')
| -rw-r--r-- | azalea-block/src/generated.rs | 7 | ||||
| -rw-r--r-- | azalea-block/src/lib.rs | 23 |
2 files changed, 29 insertions, 1 deletions
diff --git a/azalea-block/src/generated.rs b/azalea-block/src/generated.rs index c3ef7510..f7ec4e6c 100644 --- a/azalea-block/src/generated.rs +++ b/azalea-block/src/generated.rs @@ -1,8 +1,13 @@ +//! This code is @generated by codegen/genblocks.py. + use std::fmt::Debug; use azalea_block_macros::make_block_states; -use crate::{BlockBehavior, BlockState, BlockStates, BlockTrait, Property}; +use crate::{ + BlockBehavior, BlockState, BlockStates, BlockTrait, Property, + block_state::BlockStateIntegerRepr, +}; make_block_states! { Properties => { 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); + } +} |
