From 01e0541b2d8d3acc30999e34992479b3d79fbdbd Mon Sep 17 00:00:00 2001 From: mat Date: Wed, 20 Aug 2025 17:40:55 -1100 Subject: generate better code in azalea-block --- azalea-block/src/generated.rs | 7 ++++++- azalea-block/src/lib.rs | 23 +++++++++++++++++++++++ 2 files changed, 29 insertions(+), 1 deletion(-) (limited to 'azalea-block/src') 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; } + +#[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::::from(block_state); + let block_from_state = block_from_state + .downcast_ref::() + .unwrap() + .clone(); + assert_eq!(block, block_from_state); + } +} -- cgit v1.2.3