aboutsummaryrefslogtreecommitdiff
path: root/azalea-block/block-macros/src
diff options
context:
space:
mode:
Diffstat (limited to 'azalea-block/block-macros/src')
-rw-r--r--azalea-block/block-macros/src/lib.rs12
1 files changed, 12 insertions, 0 deletions
diff --git a/azalea-block/block-macros/src/lib.rs b/azalea-block/block-macros/src/lib.rs
index d38062d4..6206bb65 100644
--- a/azalea-block/block-macros/src/lib.rs
+++ b/azalea-block/block-macros/src/lib.rs
@@ -461,9 +461,12 @@ pub fn make_block_states(input: TokenStream) -> TokenStream {
block_structs.extend(block_struct);
}
+ let last_state_id = (state_id - 1) as u32;
quote! {
#property_enums
+ #[repr(u32)]
+ #[derive(Copy, Clone, PartialEq, Eq, Debug)]
pub enum BlockState {
#block_state_enum_variants
}
@@ -479,6 +482,15 @@ pub fn make_block_states(input: TokenStream) -> TokenStream {
}
}
}
+
+ impl BlockState {
+ /// Returns the highest possible state
+ #[inline]
+ pub fn max_state() -> u32 {
+ #last_state_id
+ }
+ }
+
}
.into()
}