aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormat <git@matdoes.dev>2023-12-09 18:32:13 -0600
committermat <git@matdoes.dev>2023-12-09 18:32:13 -0600
commit31206701b946524e0caacef19abb067470c2c2bc (patch)
tree8d281244c29e5e341888c82da900f171bae21990
parentc9a18bc6a1ae1fb99d7e6320e82c6b7de772ba43 (diff)
downloadazalea-drasl-31206701b946524e0caacef19abb067470c2c2bc.tar.xz
add unit structs for every bool property
-rw-r--r--azalea-block/.gitignore3
-rwxr-xr-xazalea-block/azalea-block-macros/src/lib.rs108
-rwxr-xr-xazalea-block/src/generated.rs1800
-rwxr-xr-xcodegen/lib/code/blocks.py10
4 files changed, 985 insertions, 936 deletions
diff --git a/azalea-block/.gitignore b/azalea-block/.gitignore
new file mode 100644
index 00000000..390f6fd5
--- /dev/null
+++ b/azalea-block/.gitignore
@@ -0,0 +1,3 @@
+# cargo expand generated -p azalea-block > azalea-block/out.rs
+/out.rs
+
diff --git a/azalea-block/azalea-block-macros/src/lib.rs b/azalea-block/azalea-block-macros/src/lib.rs
index 11510a0a..245b605e 100755
--- a/azalea-block/azalea-block-macros/src/lib.rs
+++ b/azalea-block/azalea-block-macros/src/lib.rs
@@ -10,35 +10,36 @@ use std::fmt::Write;
use syn::{
self, braced,
ext::IdentExt,
+ parenthesized,
parse::{Parse, ParseStream, Result},
parse_macro_input,
punctuated::Punctuated,
- Expr, Ident, LitStr, Token,
+ token, Expr, Ident, LitStr, Token,
};
use utils::{combinations_of, to_pascal_case};
enum PropertyType {
/// `Axis { X, Y, Z }`
Enum {
- type_name: Ident,
+ enum_name: Ident,
variants: Punctuated<Ident, Token![,]>,
},
- /// `bool`
- Boolean,
+ /// `Snowy(bool)`
+ Boolean { struct_name: Ident },
}
-/// `"snowy" => bool`
+/// `"snowy" => Snowy(bool)`
struct PropertyDefinition {
name: LitStr,
property_type: PropertyType,
}
-/// Comma separated PropertyDefinitions (`"snowy" => bool,`)
+/// Comma separated PropertyDefinitions (`"snowy" => Snowy(bool),`)
struct PropertyDefinitions {
properties: Vec<PropertyDefinition>,
}
-/// `snowy: false` or `axis: properties::Axis::Y`
+/// `snowy: Snowy(false)` or `axis: properties::Axis::Y`
#[derive(Debug)]
struct PropertyWithNameAndDefault {
name: Ident,
@@ -64,21 +65,32 @@ impl Parse for PropertyWithNameAndDefault {
input.parse::<Token![:]>()?;
let first_ident = input.call(Ident::parse_any)?;
- let first_ident_string = first_ident.to_string();
let mut property_default = quote! { #first_ident };
let property_type: Ident;
let mut is_enum = false;
if input.parse::<Token![::]>().is_ok() {
+ // enum
is_enum = true;
property_type = first_ident;
let variant = input.parse::<Ident>()?;
property_default = quote! { properties::#property_default::#variant };
- } else if first_ident_string == "true" || first_ident_string == "false" {
- property_type = Ident::new("bool", first_ident.span());
} else {
- return Err(input.error("Expected a boolean or an enum variant"));
+ // must be a unit struct if it's not an enum
+ let content;
+ let _paren_token: token::Paren = parenthesized!(content in input);
+ // we use this instead of .parse so it works with rust keywords like true and
+ // false
+ let unit_struct_inner = content.call(Ident::parse_any)?;
+ let unit_struct_inner_string = unit_struct_inner.to_string();
+
+ if matches!(unit_struct_inner_string.as_str(), "true" | "false") {
+ property_type = Ident::new("bool", first_ident.span());
+ property_default = quote! { #unit_struct_inner };
+ } else {
+ return Err(input.error("Expected a boolean or an enum variant"));
+ }
};
Ok(PropertyWithNameAndDefault {
@@ -100,20 +112,40 @@ struct MakeBlockStates {
impl Parse for PropertyType {
fn parse(input: ParseStream) -> Result<Self> {
- // like `Axis { X, Y, Z }` or `bool`
+ // like `Axis { X, Y, Z }` or `Waterlogged(bool)`
let keyword = Ident::parse(input)?;
- let keyword_string = keyword.to_string();
- if keyword_string == "bool" {
- Ok(Self::Boolean)
- } else {
+
+ fn parse_braced(input: ParseStream) -> Result<Punctuated<Ident, Token![,]>> {
let content;
braced!(content in input);
let variants = content.parse_terminated(Ident::parse, Token![,])?;
+ Ok(variants)
+ }
+
+ fn parse_paren(input: ParseStream) -> Result<Ident> {
+ let content;
+ parenthesized!(content in input);
+ let inner = content.parse::<Ident>()?;
+ Ok(inner)
+ }
+
+ if let Ok(variants) = parse_braced(input) {
Ok(Self::Enum {
- type_name: keyword,
+ enum_name: keyword,
variants,
})
+ } else if let Ok(inner) = parse_paren(input) {
+ assert_eq!(
+ inner.to_string(),
+ "bool",
+ "Currently only bool unit structs are supported"
+ );
+ Ok(Self::Boolean {
+ struct_name: keyword,
+ })
+ } else {
+ Err(input.error("Expected a unit struct or an enum"))
}
}
}
@@ -238,21 +270,24 @@ pub fn make_block_states(input: TokenStream) -> TokenStream {
let mut state_id: u32 = 0;
for property in &input.property_definitions.properties {
- let property_type_name: Ident;
+ let property_struct_name: Ident;
+ // this is usually the same as property_struct_name except for bool
+ let property_value_name: Ident;
let mut property_variant_types = Vec::new();
match &property.property_type {
PropertyType::Enum {
- type_name,
+ enum_name,
variants,
} => {
let mut property_enum_variants = quote! {};
let mut property_from_number_variants = quote! {};
- property_type_name = type_name.clone();
+ property_value_name = enum_name.clone();
+ property_struct_name = enum_name.clone();
property_struct_names_to_names.insert(
- property_type_name.to_string(),
+ property_struct_name.to_string(),
property.name.clone().value(),
);
@@ -271,7 +306,7 @@ pub fn make_block_states(input: TokenStream) -> TokenStream {
// i_lit is used here instead of i because otherwise it says 0size
// in the expansion and that looks uglier
property_from_number_variants.extend(quote! {
- #i_lit => #property_type_name::#variant,
+ #i_lit => #property_struct_name::#variant,
});
property_variant_types.push(variant.to_string());
@@ -279,11 +314,11 @@ pub fn make_block_states(input: TokenStream) -> TokenStream {
property_enums.extend(quote! {
#[derive(Debug, Clone, Copy)]
- pub enum #property_type_name {
+ pub enum #property_struct_name {
#property_enum_variants
}
- impl From<u32> for #property_type_name {
+ impl From<u32> for #property_struct_name {
fn from(value: u32) -> Self {
match value {
#property_from_number_variants
@@ -293,15 +328,28 @@ pub fn make_block_states(input: TokenStream) -> TokenStream {
}
});
}
- PropertyType::Boolean => {
- property_type_name = Ident::new("bool", proc_macro2::Span::call_site());
- // property_type_name =
- // Ident::new(&property.name.value(), proc_macro2::Span::call_site());
+ PropertyType::Boolean { struct_name } => {
+ property_value_name = Ident::new("bool", proc_macro2::Span::call_site());
+ property_struct_name = struct_name.clone();
property_variant_types = vec!["true".to_string(), "false".to_string()];
+
+ property_enums.extend(quote! {
+ #[derive(Debug, Clone, Copy)]
+ pub struct #property_struct_name(pub bool);
+
+ impl From<u32> for #property_struct_name {
+ fn from(value: u32) -> Self {
+ match value {
+ 0 => Self(false),
+ 1 => Self(true),
+ _ => panic!("Invalid property value: {}", value),
+ }
+ }
+ }
+ });
}
}
- properties_map.insert(property_type_name.to_string(), property_variant_types);
- // properties_map.insert(property.name.value(), property_variant_types);
+ properties_map.insert(property_value_name.to_string(), property_variant_types);
}
let mut block_state_enum_variants = quote! {};
diff --git a/azalea-block/src/generated.rs b/azalea-block/src/generated.rs
index 5a700d78..3a903b8d 100755
--- a/azalea-block/src/generated.rs
+++ b/azalea-block/src/generated.rs
@@ -4,7 +4,7 @@ use std::fmt::Debug;
make_block_states! {
Properties => {
- "snowy" => bool,
+ "snowy" => Snowy(bool),
"stage" => OakSaplingStage {
_0,
_1,
@@ -40,12 +40,12 @@ make_block_states! {
_3,
_4,
},
- "hanging" => bool,
+ "hanging" => Hanging(bool),
"stage" => MangrovePropaguleStage {
_0,
_1,
},
- "waterlogged" => bool,
+ "waterlogged" => Waterlogged(bool),
"level" => WaterLevel {
_0,
_1,
@@ -108,7 +108,7 @@ make_block_states! {
_6,
_7,
},
- "persistent" => bool,
+ "persistent" => Persistent(bool),
"distance" => SpruceLeavesDistance {
_1,
_2,
@@ -198,7 +198,7 @@ make_block_states! {
Up,
Down,
},
- "triggered" => bool,
+ "triggered" => Triggered(bool),
"instrument" => Sound {
Harp,
Basedrum,
@@ -251,14 +251,14 @@ make_block_states! {
_23,
_24,
},
- "powered" => bool,
+ "powered" => Powered(bool),
"facing" => FacingCardinal {
North,
South,
West,
East,
},
- "occupied" => bool,
+ "occupied" => Occupied(bool),
"part" => Part {
Head,
Foot,
@@ -271,7 +271,7 @@ make_block_states! {
AscendingNorth,
AscendingSouth,
},
- "extended" => bool,
+ "extended" => Extended(bool),
"half" => Half {
Upper,
Lower,
@@ -280,9 +280,9 @@ make_block_states! {
Normal,
Sticky,
},
- "short" => bool,
- "unstable" => bool,
- "slot_5_occupied" => bool,
+ "short" => Short(bool),
+ "unstable" => Unstable(bool),
+ "slot_5_occupied" => TrueFalse(bool),
"age" => FireAge {
_0,
_1,
@@ -301,11 +301,11 @@ make_block_states! {
_14,
_15,
},
- "east" => bool,
- "north" => bool,
- "south" => bool,
- "up" => bool,
- "west" => bool,
+ "east" => East(bool),
+ "north" => North(bool),
+ "south" => South(bool),
+ "up" => Up(bool),
+ "west" => West(bool),
"half" => TopBottom {
Top,
Bottom,
@@ -380,7 +380,7 @@ make_block_states! {
_6,
_7,
},
- "lit" => bool,
+ "lit" => Lit(bool),
"rotation" => OakSignRotation {
_0,
_1,
@@ -547,7 +547,7 @@ make_block_states! {
Left,
Right,
},
- "open" => bool,
+ "open" => Open(bool),
"shape" => Shape {
NorthSouth,
EastWest,
@@ -560,7 +560,7 @@ make_block_states! {
NorthWest,
NorthEast,
},
- "attached" => bool,
+ "attached" => Attached(bool),
"rotation" => OakHangingSignRotation {
_0,
_1,
@@ -810,7 +810,7 @@ make_block_states! {
_14,
_15,
},
- "has_record" => bool,
+ "has_record" => HasRecord(bool),
"axis" => AxisXZ {
X,
Z,
@@ -830,8 +830,8 @@ make_block_states! {
_3,
_4,
},
- "locked" => bool,
- "down" => bool,
+ "locked" => Locked(bool),
+ "down" => Down(bool),
"age" => PumpkinStemAge {
_0,
_1,
@@ -852,19 +852,16 @@ make_block_states! {
_6,
_7,
},
- "down" => bool,
- "north" => bool,
- "south" => bool,
- "up" => bool,
- "west" => bool,
- "in_wall" => bool,
+ "in_wall" => InWall(bool),
"age" => NetherWartAge {
_0,
_1,
_2,
_3,
},
- "has_bottle" => bool,
+ "has_bottle" => HasBottle0(bool),
+ "has_bottle" => HasBottle1(bool),
+ "has_bottle" => HasBottle2(bool),
"level" => WaterCauldronLevel {
_1,
_2,
@@ -875,14 +872,14 @@ make_block_states! {
_2,
_3,
},
- "eye" => bool,
+ "eye" => Eye(bool),
"age" => CocoaAge {
_0,
_1,
_2,
},
- "disarmed" => bool,
- "conditional" => bool,
+ "disarmed" => Disarmed(bool),
+ "conditional" => Conditional(bool),
"east" => EastWall {
None,
Low,
@@ -1089,7 +1086,7 @@ make_block_states! {
Compare,
Subtract,
},
- "inverted" => bool,
+ "inverted" => Inverted(bool),
"power" => DaylightDetectorPower {
_0,
_1,
@@ -1108,7 +1105,7 @@ make_block_states! {
_14,
_15,
},
- "enabled" => bool,
+ "enabled" => Enabled(bool),
"facing" => Facing {
Down,
North,
@@ -1525,8 +1522,8 @@ make_block_states! {
_0,
_1,
},
- "drag" => bool,
- "bottom" => bool,
+ "drag" => Drag(bool),
+ "bottom" => Bottom(bool),
"distance" => ScaffoldingDistance {
_0,
_1,
@@ -1537,14 +1534,14 @@ make_block_states! {
_6,
_7,
},
- "has_book" => bool,
+ "has_book" => HasBook(bool),
"attachment" => Attachment {
Floor,
Ceiling,
SingleWall,
DoubleWall,
},
- "signal_fire" => bool,
+ "signal_fire" => SignalFire(bool),
"age" => SweetBerryBushAge {
_0,
_1,
@@ -1858,12 +1855,9 @@ make_block_states! {
_14,
_15,
},
- "east" => bool,
- "up" => bool,
- "west" => bool,
- "bloom" => bool,
- "can_summon" => bool,
- "shrieking" => bool,
+ "bloom" => Bloom(bool),
+ "can_summon" => CanSummon(bool),
+ "shrieking" => Shrieking(bool),
"thickness" => Thickness {
TipMerge,
Tip,
@@ -1903,7 +1897,7 @@ make_block_states! {
_24,
_25,
},
- "berries" => bool,
+ "berries" => Berries(bool),
"flower_amount" => PinkPetalsAmount {
_1,
_2,
@@ -1921,8 +1915,8 @@ make_block_states! {
Y,
Z,
},
- "cracked" => bool,
- "crafting" => bool,
+ "cracked" => Cracked(bool),
+ "crafting" => Crafting(bool),
"trial_spawner_state" => State {
Inactive,
WaitingForPlayers,
@@ -1942,12 +1936,12 @@ make_block_states! {
andesite => BlockBehavior::new().requires_correct_tool_for_drops().strength(1.5, 6.0), {},
polished_andesite => BlockBehavior::new().requires_correct_tool_for_drops().strength(1.5, 6.0), {},
grass_block => BlockBehavior::new().strength(0.6, 0.6), {
- snowy: false,
+ snowy: Snowy(false),
},
dirt => BlockBehavior::new().strength(0.5, 0.5), {},
coarse_dirt => BlockBehavior::new().strength(0.5, 0.5), {},
podzol => BlockBehavior::new().strength(0.5, 0.5), {
- snowy: false,
+ snowy: Snowy(false),
},
cobblestone => BlockBehavior::new().requires_correct_tool_for_drops().strength(2.0, 6.0), {},
oak_planks => BlockBehavior::new().strength(2.0, 3.0), {},
@@ -1983,9 +1977,9 @@ make_block_states! {
},
mangrove_propagule => BlockBehavior::new(), {
age: MangrovePropaguleAge::_0,
- hanging: false,
+ hanging: Hanging(false),
stage: MangrovePropaguleStage::_0,
- waterlogged: false,
+ waterlogged: Waterlogged(false),
},
bedrock => BlockBehavior::new().strength(-1.0, 3600000.0), {},
water => BlockBehavior::new().strength(100.0, 100.0), {
@@ -2035,7 +2029,7 @@ make_block_states! {
axis: Axis::Y,
},
mangrove_roots => BlockBehavior::new().strength(0.7, 0.7), {
- waterlogged: false,
+ waterlogged: Waterlogged(false),
},
muddy_mangrove_roots => BlockBehavior::new().strength(0.7, 0.7), {
axis: Axis::Y,
@@ -2120,53 +2114,53 @@ make_block_states! {
},
oak_leaves => BlockBehavior::new().strength(0.2, 0.2), {
distance: OakLeavesDistance::_7,
- persistent: false,
- waterlogged: false,
+ persistent: Persistent(false),
+ waterlogged: Waterlogged(false),
},
spruce_leaves => BlockBehavior::new().strength(0.2, 0.2), {
distance: SpruceLeavesDistance::_7,
- persistent: false,
- waterlogged: false,
+ persistent: Persistent(false),
+ waterlogged: Waterlogged(false),
},
birch_leaves => BlockBehavior::new().strength(0.2, 0.2), {
distance: BirchLeavesDistance::_7,
- persistent: false,
- waterlogged: false,
+ persistent: Persistent(false),
+ waterlogged: Waterlogged(false),
},
jungle_leaves => BlockBehavior::new().strength(0.2, 0.2), {
distance: JungleLeavesDistance::_7,
- persistent: false,
- waterlogged: false,
+ persistent: Persistent(false),
+ waterlogged: Waterlogged(false),
},
acacia_leaves => BlockBehavior::new().strength(0.2, 0.2), {
distance: AcaciaLeavesDistance::_7,
- persistent: false,
- waterlogged: false,
+ persistent: Persistent(false),
+ waterlogged: Waterlogged(false),
},
cherry_leaves => BlockBehavior::new().strength(0.2, 0.2), {
distance: CherryLeavesDistance::_7,
- persistent: false,
- waterlogged: false,
+ persistent: Persistent(false),
+ waterlogged: Waterlogged(false),
},
dark_oak_leaves => BlockBehavior::new().strength(0.2, 0.2), {
distance: DarkOakLeavesDistance::_7,
- persistent: false,
- waterlogged: false,
+ persistent: Persistent(false),
+ waterlogged: Waterlogged(false),
},
mangrove_leaves => BlockBehavior::new().strength(0.2, 0.2), {
distance: MangroveLeavesDistance::_7,
- persistent: false,
- waterlogged: false,
+ persistent: Persistent(false),
+ waterlogged: Waterlogged(false),
},
azalea_leaves => BlockBehavior::new().strength(0.2, 0.2), {
distance: AzaleaLeavesDistance::_7,
- persistent: false,
- waterlogged: false,
+ persistent: Persistent(false),
+ waterlogged: Waterlogged(false),
},
flowering_azalea_leaves => BlockBehavior::new().strength(0.2, 0.2), {
distance: FloweringAzaleaLeavesDistance::_7,
- persistent: false,
- waterlogged: false,
+ persistent: Persistent(false),
+ waterlogged: Waterlogged(false),
},
sponge => BlockBehavior::new().strength(0.6, 0.6), {},
wet_sponge => BlockBehavior::new().strength(0.6, 0.6), {},
@@ -2176,7 +2170,7 @@ make_block_states! {
lapis_block => BlockBehavior::new().requires_correct_tool_for_drops().strength(3.0, 3.0), {},
dispenser => BlockBehavior::new().requires_correct_tool_for_drops().strength(3.5, 3.5), {
facing: FacingCubic::North,
- triggered: false,
+ triggered: Triggered(false),
},
sandstone => BlockBehavior::new().requires_correct_tool_for_drops().strength(0.8, 0.8), {},
chiseled_sandstone => BlockBehavior::new().requires_correct_tool_for_drops().strength(0.8, 0.8), {},
@@ -2184,100 +2178,100 @@ make_block_states! {
note_block => BlockBehavior::new().strength(0.8, 0.8), {
instrument: Sound::Harp,
note: NoteBlockNote::_0,
- powered: false,
+ powered: Powered(false),
},
white_bed => BlockBehavior::new().strength(0.2, 0.2), {
facing: FacingCardinal::North,
- occupied: false,
+ occupied: Occupied(false),
part: Part::Foot,
},
orange_bed => BlockBehavior::new().strength(0.2, 0.2), {
facing: FacingCardinal::North,
- occupied: false,
+ occupied: Occupied(false),
part: Part::Foot,
},
magenta_bed => BlockBehavior::new().strength(0.2, 0.2), {
facing: FacingCardinal::North,
- occupied: false,
+ occupied: Occupied(false),
part: Part::Foot,
},
light_blue_bed => BlockBehavior::new().strength(0.2, 0.2), {
facing: FacingCardinal::North,
- occupied: false,
+ occupied: Occupied(false),
part: Part::Foot,
},
yellow_bed => BlockBehavior::new().strength(0.2, 0.2), {
facing: FacingCardinal::North,
- occupied: false,
+ occupied: Occupied(false),
part: Part::Foot,
},
lime_bed => BlockBehavior::new().strength(0.2, 0.2), {
facing: FacingCardinal::North,
- occupied: false,
+ occupied: Occupied(false),
part: Part::Foot,
},
pink_bed => BlockBehavior::new().strength(0.2, 0.2), {
facing: FacingCardinal::North,
- occupied: false,
+ occupied: Occupied(false),
part: Part::Foot,
},
gray_bed => BlockBehavior::new().strength(0.2, 0.2), {
facing: FacingCardinal::North,
- occupied: false,
+ occupied: Occupied(false),
part: Part::Foot,
},
light_gray_bed => BlockBehavior::new().strength(0.2, 0.2), {
facing: FacingCardinal::North,
- occupied: false,
+ occupied: Occupied(false),
part: Part::Foot,
},
cyan_bed => BlockBehavior::new().strength(0.2, 0.2), {
facing: FacingCardinal::North,
- occupied: false,
+ occupied: Occupied(false),
part: Part::Foot,
},
purple_bed => BlockBehavior::new().strength(0.2, 0.2), {
facing: FacingCardinal::North,
- occupied: false,
+ occupied: Occupied(false),
part: Part::Foot,
},
blue_bed => BlockBehavior::new().strength(0.2, 0.2), {
facing: FacingCardinal::North,
- occupied: false,
+ occupied: Occupied(false),
part: Part::Foot,
},
brown_bed => BlockBehavior::new().strength(0.2, 0.2), {
facing: FacingCardinal::North,
- occupied: false,
+ occupied: Occupied(false),
part: Part::Foot,
},
green_bed => BlockBehavior::new().strength(0.2, 0.2), {
facing: FacingCardinal::North,
- occupied: false,
+ occupied: Occupied(false),
part: Part::Foot,
},
red_bed => BlockBehavior::new().strength(0.2, 0.2), {
facing: FacingCardinal::North,
- occupied: false,
+ occupied: Occupied(false),
part: Part::Foot,
},
black_bed => BlockBehavior::new().strength(0.2, 0.2), {
facing: FacingCardinal::North,
- occupied: false,
+ occupied: Occupied(false),
part: Part::Foot,
},
powered_rail => BlockBehavior::new().strength(0.7, 0.7), {
- powered: false,
+ powered: Powered(false),
shape: RailShape::NorthSouth,
- waterlogged: false,
+ waterlogged: Waterlogged(false),
},
detector_rail => BlockBehavior::new().strength(0.7, 0.7), {
- powered: false,
+ powered: Powered(false),
shape: RailShape::NorthSouth,
- waterlogged: false,
+ waterlogged: Waterlogged(false),
},
sticky_piston => BlockBehavior::new().strength(1.5, 1.5), {
- extended: false,
+ extended: Extended(false),
facing: FacingCubic::North,
},
cobweb => BlockBehavior::new().requires_correct_tool_for_drops().strength(4.0, 4.0), {},
@@ -2289,13 +2283,13 @@ make_block_states! {
half: Half::Lower,
},
piston => BlockBehavior::new().strength(1.5, 1.5), {
- extended: false,
+ extended: Extended(false),
facing: FacingCubic::North,
},
piston_head => BlockBehavior::new().strength(1.5, 1.5), {
kind: PistonType::Normal,
facing: FacingCubic::North,
- short: false,
+ short: Short(false),
},
white_wool => BlockBehavior::new().strength(0.8, 0.8), {},
orange_wool => BlockBehavior::new().strength(0.8, 0.8), {},
@@ -2337,17 +2331,17 @@ make_block_states! {
iron_block => BlockBehavior::new().requires_correct_tool_for_drops().strength(5.0, 6.0), {},
bricks => BlockBehavior::new().requires_correct_tool_for_drops().strength(2.0, 6.0), {},
tnt => BlockBehavior::new(), {
- unstable: false,
+ unstable: Unstable(false),
},
bookshelf => BlockBehavior::new().strength(1.5, 1.5), {},
chiseled_bookshelf => BlockBehavior::new().strength(1.5, 1.5), {
facing: FacingCardinal::North,
- slot_0_occupied: false,
- slot_1_occupied: false,
- slot_2_occupied: false,
- slot_3_occupied: false,
- slot_4_occupied: false,
- slot_5_occupied: false,
+ slot_0_occupied: TrueFalse(false),
+ slot_1_occupied: TrueFalse(false),
+ slot_2_occupied: TrueFalse(false),
+ slot_3_occupied: TrueFalse(false),
+ slot_4_occupied: TrueFalse(false),
+ slot_5_occupied: TrueFalse(false),
},
mossy_cobblestone => BlockBehavior::new().requires_correct_tool_for_drops().strength(2.0, 6.0), {},
obsidian => BlockBehavior::new().requires_correct_tool_for_drops().strength(50.0, 1200.0), {},
@@ -2357,11 +2351,11 @@ make_block_states! {
},
fire => BlockBehavior::new(), {
age: FireAge::_0,
- east: false,
- north: false,
- south: false,
- up: false,
- west: false,
+ east: East(false),
+ north: North(false),
+ south: South(false),
+ up: Up(false),
+ west: West(false),
},
soul_fire => BlockBehavior::new(), {},
spawner => BlockBehavior::new().requires_correct_tool_for_drops().strength(5.0, 5.0), {},
@@ -2369,12 +2363,12 @@ make_block_states! {
facing: FacingCardinal::North,
half: TopBottom::Bottom,
shape: StairShape::Straight,
- waterlogged: false,
+ waterlogged: Waterlogged(false),
},
chest => BlockBehavior::new().strength(2.5, 2.5), {
kind: ChestType::Single,
facing: FacingCardinal::North,
- waterlogged: false,
+ waterlogged: Waterlogged(false),
},
redstone_wire => BlockBehavior::new(), {
east: WireEast::None,
@@ -2395,259 +2389,259 @@ make_block_states! {
},
furnace => BlockBehavior::new().requires_correct_tool_for_drops().strength(3.5, 3.5), {
facing: FacingCardinal::North,
- lit: false,
+ lit: Lit(false),
},
oak_sign => BlockBehavior::new().strength(1.0, 1.0), {
rotation: OakSignRotation::_0,
- waterlogged: false,
+ waterlogged: Waterlogged(false),
},
spruce_sign => BlockBehavior::new().strength(1.0, 1.0), {
rotation: SpruceSignRotation::_0,
- waterlogged: false,
+ waterlogged: Waterlogged(false),
},
birch_sign => BlockBehavior::new().strength(1.0, 1.0), {
rotation: BirchSignRotation::_0,
- waterlogged: false,
+ waterlogged: Waterlogged(false),
},
acacia_sign => BlockBehavior::new().strength(1.0, 1.0), {
rotation: AcaciaSignRotation::_0,
- waterlogged: false,
+ waterlogged: Waterlogged(false),
},
cherry_sign => BlockBehavior::new().strength(1.0, 1.0), {
rotation: CherrySignRotation::_0,
- waterlogged: false,
+ waterlogged: Waterlogged(false),
},
jungle_sign => BlockBehavior::new().strength(1.0, 1.0), {
rotation: JungleSignRotation::_0,
- waterlogged: false,
+ waterlogged: Waterlogged(false),
},
dark_oak_sign => BlockBehavior::new().strength(1.0, 1.0), {
rotation: DarkOakSignRotation::_0,
- waterlogged: false,
+ waterlogged: Waterlogged(false),
},
mangrove_sign => BlockBehavior::new().strength(1.0, 1.0), {
rotation: MangroveSignRotation::_0,
- waterlogged: false,
+ waterlogged: Waterlogged(false),
},
bamboo_sign => BlockBehavior::new().strength(1.0, 1.0), {
rotation: BambooSignRotation::_0,
- waterlogged: false,
+ waterlogged: Waterlogged(false),
},
oak_door => BlockBehavior::new().strength(3.0, 3.0), {
facing: FacingCardinal::North,
half: Half::Lower,
hinge: Hinge::Left,
- open: false,
- powered: false,
+ open: Open(false),
+ powered: Powered(false),
},
ladder => BlockBehavior::new().strength(0.4, 0.4), {
facing: FacingCardinal::North,
- waterlogged: false,
+ waterlogged: Waterlogged(false),
},
rail => BlockBehavior::new().strength(0.7, 0.7), {
shape: Shape::NorthSouth,
- waterlogged: false,
+ waterlogged: Waterlogged(false),
},
cobblestone_stairs => BlockBehavior::new().requires_correct_tool_for_drops().strength(2.0, 6.0), {
facing: FacingCardinal::North,
half: TopBottom::Bottom,
shape: StairShape::Straight,
- waterlogged: false,
+ waterlogged: Waterlogged(false),
},
oak_wall_sign => BlockBehavior::new().strength(1.0, 1.0), {
facing: FacingCardinal::North,
- waterlogged: false,
+ waterlogged: Waterlogged(false),
},
spruce_wall_sign => BlockBehavior::new().strength(1.0, 1.0), {
facing: FacingCardinal::North,
- waterlogged: false,
+ waterlogged: Waterlogged(false),
},
birch_wall_sign => BlockBehavior::new().strength(1.0, 1.0), {
facing: FacingCardinal::North,
- waterlogged: false,
+ waterlogged: Waterlogged(false),
},
acacia_wall_sign => BlockBehavior::new().strength(1.0, 1.0), {
facing: FacingCardinal::North,
- waterlogged: false,
+ waterlogged: Waterlogged(false),
},
cherry_wall_sign => BlockBehavior::new().strength(1.0, 1.0), {
facing: FacingCardinal::North,
- waterlogged: false,
+ waterlogged: Waterlogged(false),
},
jungle_wall_sign => BlockBehavior::new().strength(1.0, 1.0), {
facing: FacingCardinal::North,
- waterlogged: false,
+ waterlogged: Waterlogged(false),
},
dark_oak_wall_sign => BlockBehavior::new().strength(1.0, 1.0), {
facing: FacingCardinal::North,
- waterlogged: false,
+ waterlogged: Waterlogged(false),
},
mangrove_wall_sign => BlockBehavior::new().strength(1.0, 1.0), {
facing: FacingCardinal::North,
- waterlogged: false,
+ waterlogged: Waterlogged(false),
},
bamboo_wall_sign => BlockBehavior::new().strength(1.0, 1.0), {
facing: FacingCardinal::North,
- waterlogged: false,
+ waterlogged: Waterlogged(false),
},
oak_hanging_sign => BlockBehavior::new().strength(1.0, 1.0), {
- attached: false,
+ attached: Attached(false),
rotation: OakHangingSignRotation::_0,
- waterlogged: false,
+ waterlogged: Waterlogged(false),
},
spruce_hanging_sign => BlockBehavior::new().strength(1.0, 1.0), {
- attached: false,
+ attached: Attached(false),
rotation: SpruceHangingSignRotation::_0,
- waterlogged: false,
+ waterlogged: Waterlogged(false),
},
birch_hanging_sign => BlockBehavior::new().strength(1.0, 1.0), {
- attached: false,
+ attached: Attached(false),
rotation: BirchHangingSignRotation::_0,
- waterlogged: false,
+ waterlogged: Waterlogged(false),
},
acacia_hanging_sign => BlockBehavior::new().strength(1.0, 1.0), {
- attached: false,
+ attached: Attached(false),
rotation: AcaciaHangingSignRotation::_0,
- waterlogged: false,
+ waterlogged: Waterlogged(false),
},
cherry_hanging_sign => BlockBehavior::new().strength(1.0, 1.0), {
- attached: false,
+ attached: Attached(false),
rotation: CherryHangingSignRotation::_0,
- waterlogged: false,
+ waterlogged: Waterlogged(false),
},
jungle_hanging_sign => BlockBehavior::new().strength(1.0, 1.0), {
- attached: false,
+ attached: Attached(false),
rotation: JungleHangingSignRotation::_0,
- waterlogged: false,
+ waterlogged: Waterlogged(false),
},
dark_oak_hanging_sign => BlockBehavior::new().strength(1.0, 1.0), {
- attached: false,
+ attached: Attached(false),
rotation: DarkOakHangingSignRotation::_0,
- waterlogged: false,
+ waterlogged: Waterlogged(false),
},
crimson_hanging_sign => BlockBehavior::new().strength(1.0, 1.0), {
- attached: false,
+ attached: Attached(false),
rotation: CrimsonHangingSignRotation::_0,
- waterlogged: false,
+ waterlogged: Waterlogged(false),
},
warped_hanging_sign => BlockBehavior::new().strength(1.0, 1.0), {
- attached: false,
+ attached: Attached(false),
rotation: WarpedHangingSignRotation::_0,
- waterlogged: false,
+ waterlogged: Waterlogged(false),
},
mangrove_hanging_sign => BlockBehavior::new().strength(1.0, 1.0), {
- attached: false,
+ attached: Attached(false),
rotation: MangroveHangingSignRotation::_0,
- waterlogged: false,
+ waterlogged: Waterlogged(false),
},
bamboo_hanging_sign => BlockBehavior::new().strength(1.0, 1.0), {
- attached: false,
+ attached: Attached(false),
rotation: BambooHangingSignRotation::_0,
- waterlogged: false,
+ waterlogged: Waterlogged(false),
},
oak_wall_hanging_sign => BlockBehavior::new().strength(1.0, 1.0), {
facing: FacingCardinal::North,
- waterlogged: false,
+ waterlogged: Waterlogged(false),
},
spruce_wall_hanging_sign => BlockBehavior::new().strength(1.0, 1.0), {
facing: FacingCardinal::North,
- waterlogged: false,
+ waterlogged: Waterlogged(false),
},
birch_wall_hanging_sign => BlockBehavior::new().strength(1.0, 1.0), {
facing: FacingCardinal::North,
- waterlogged: false,
+ waterlogged: Waterlogged(false),
},
acacia_wall_hanging_sign => BlockBehavior::new().strength(1.0, 1.0), {
facing: FacingCardinal::North,
- waterlogged: false,
+ waterlogged: Waterlogged(false),
},
cherry_wall_hanging_sign => BlockBehavior::new().strength(1.0, 1.0), {
facing: FacingCardinal::North,
- waterlogged: false,
+ waterlogged: Waterlogged(false),
},
jungle_wall_hanging_sign => BlockBehavior::new().strength(1.0, 1.0), {
facing: FacingCardinal::North,
- waterlogged: false,
+ waterlogged: Waterlogged(false),
},
dark_oak_wall_hanging_sign => BlockBehavior::new().strength(1.0, 1.0), {
facing: FacingCardinal::North,
- waterlogged: false,
+ waterlogged: Waterlogged(false),
},
mangrove_wall_hanging_sign => BlockBehavior::new().strength(1.0, 1.0), {
facing: FacingCardinal::North,
- waterlogged: false,
+ waterlogged: Waterlogged(false),
},
crimson_wall_hanging_sign => BlockBehavior::new().strength(1.0, 1.0), {
facing: FacingCardinal::North,
- waterlogged: false,
+ waterlogged: Waterlogged(false),
},
warped_wall_hanging_sign => BlockBehavior::new().strength(1.0, 1.0), {
facing: FacingCardinal::North,
- waterlogged: false,
+ waterlogged: Waterlogged(false),
},
bamboo_wall_hanging_sign => BlockBehavior::new().strength(1.0, 1.0), {
facing: FacingCardinal::North,
- waterlogged: false,
+ waterlogged: Waterlogged(false),
},
lever => BlockBehavior::new().strength(0.5, 0.5), {
face: Face::Wall,
facing: FacingCardinal::North,
- powered: false,
+ powered: Powered(false),
},
stone_pressure_plate => BlockBehavior::new().requires_correct_tool_for_drops().strength(0.5, 0.5), {
- powered: false,
+ powered: Powered(false),
},
iron_door => BlockBehavior::new().requires_correct_tool_for_drops().strength(5.0, 5.0), {
facing: FacingCardinal::North,
half: Half::Lower,
hinge: Hinge::Left,
- open: false,
- powered: false,
+ open: Open(false),
+ powered: Powered(false),
},
oak_pressure_plate => BlockBehavior::new().strength(0.5, 0.5), {
- powered: false,
+ powered: Powered(false),
},
spruce_pressure_plate => BlockBehavior::new().strength(0.5, 0.5), {
- powered: false,
+ powered: Powered(false),
},
birch_pressure_plate => BlockBehavior::new().strength(0.5, 0.5), {
- powered: false,
+ powered: Powered(false),
},
jungle_pressure_plate => BlockBehavior::new().strength(0.5, 0.5), {
- powered: false,
+ powered: Powered(false),
},
acacia_pressure_plate => BlockBehavior::new().strength(0.5, 0.5), {
- powered: false,
+ powered: Powered(false),
},
cherry_pressure_plate => BlockBehavior::new().strength(0.5, 0.5), {
- powered: false,
+ powered: Powered(false),
},
dark_oak_pressure_plate => BlockBehavior::new().strength(0.5, 0.5), {
- powered: false,
+ powered: Powered(false),
},
mangrove_pressure_plate => BlockBehavior::new().strength(0.5, 0.5), {
- powered: false,
+ powered: Powered(false),
},
bamboo_pressure_plate => BlockBehavior::new().strength(0.5, 0.5), {
- powered: false,
+ powered: Powered(false),
},
redstone_ore => BlockBehavior::new().requires_correct_tool_for_drops().strength(3.0, 3.0), {
- lit: false,
+ lit: Lit(false),
},
deepslate_redstone_ore => BlockBehavior::new().requires_correct_tool_for_drops().strength(4.5, 3.0), {
- lit: false,
+ lit: Lit(false),
},
redstone_torch => BlockBehavior::new(), {
- lit: true,
+ lit: Lit(true),
},
redstone_wall_torch => BlockBehavior::new(), {
facing: FacingCardinal::North,
- lit: true,
+ lit: Lit(true),
},
stone_button => BlockBehavior::new().strength(0.5, 0.5), {
face: Face::Wall,
facing: FacingCardinal::North,
- powered: false,
+ powered: Powered(false),
},
snow => BlockBehavior::new().requires_correct_tool_for_drops().strength(0.1, 0.1), {
layers: SnowLayers::_1,
@@ -2662,14 +2656,14 @@ make_block_states! {
age: SugarCaneAge::_0,
},
jukebox => BlockBehavior::new().strength(2.0, 6.0), {
- has_record: false,
+ has_record: HasRecord(false),
},
oak_fence => BlockBehavior::new().strength(2.0, 3.0), {
- east: false,
- north: false,
- south: false,
- waterlogged: false,
- west: false,
+ east: East(false),
+ north: North(false),
+ south: South(false),
+ waterlogged: Waterlogged(false),
+ west: West(false),
},
netherrack => BlockBehavior::new().requires_correct_tool_for_drops().strength(0.4, 0.4), {},
soul_sand => BlockBehavior::new().strength(0.5, 0.5), {},
@@ -2700,8 +2694,8 @@ make_block_states! {
repeater => BlockBehavior::new(), {
delay: RepeaterDelay::_1,
facing: FacingCardinal::North,
- locked: false,
- powered: false,
+ locked: Locked(false),
+ powered: Powered(false),
},
white_stained_glass => BlockBehavior::new().strength(0.3, 0.3), {},
orange_stained_glass => BlockBehavior::new().strength(0.3, 0.3), {},
@@ -2722,65 +2716,65 @@ make_block_states! {
oak_trapdoor => BlockBehavior::new().strength(3.0, 3.0), {
facing: FacingCardinal::North,
half: TopBottom::Bottom,
- open: false,
- powered: false,
- waterlogged: false,
+ open: Open(false),
+ powered: Powered(false),
+ waterlogged: Waterlogged(false),
},
spruce_trapdoor => BlockBehavior::new().strength(3.0, 3.0), {
facing: FacingCardinal::North,
half: TopBottom::Bottom,
- open: false,
- powered: false,
- waterlogged: false,
+ open: Open(false),
+ powered: Powered(false),
+ waterlogged: Waterlogged(false),
},
birch_trapdoor => BlockBehavior::new().strength(3.0, 3.0), {
facing: FacingCardinal::North,
half: TopBottom::Bottom,
- open: false,
- powered: false,
- waterlogged: false,
+ open: Open(false),
+ powered: Powered(false),
+ waterlogged: Waterlogged(false),
},
jungle_trapdoor => BlockBehavior::new().strength(3.0, 3.0), {
facing: FacingCardinal::North,
half: TopBottom::Bottom,
- open: false,
- powered: false,
- waterlogged: false,
+ open: Open(false),
+ powered: Powered(false),
+ waterlogged: Waterlogged(false),
},
acacia_trapdoor => BlockBehavior::new().strength(3.0, 3.0), {
facing: FacingCardinal::North,
half: TopBottom::Bottom,
- open: false,
- powered: false,
- waterlogged: false,
+ open: Open(false),
+ powered: Powered(false),
+ waterlogged: Waterlogged(false),
},
cherry_trapdoor => BlockBehavior::new().strength(3.0, 3.0), {
facing: FacingCardinal::North,
half: TopBottom::Bottom,
- open: false,
- powered: false,
- waterlogged: false,
+ open: Open(false),
+ powered: Powered(false),
+ waterlogged: Waterlogged(false),
},
dark_oak_trapdoor => BlockBehavior::new().strength(3.0, 3.0), {
facing: FacingCardinal::North,
half: TopBottom::Bottom,
- open: false,
- powered: false,
- waterlogged: false,
+ open: Open(false),
+ powered: Powered(false),
+ waterlogged: Waterlogged(false),
},
mangrove_trapdoor => BlockBehavior::new().strength(3.0, 3.0), {
facing: FacingCardinal::North,
half: TopBottom::Bottom,
- open: false,
- powered: false,
- waterlogged: false,
+ open: Open(false),
+ powered: Powered(false),
+ waterlogged: Waterlogged(false),
},
bamboo_trapdoor => BlockBehavior::new().strength(3.0, 3.0), {
facing: FacingCardinal::North,
half: TopBottom::Bottom,
- open: false,
- powered: false,
- waterlogged: false,
+ open: Open(false),
+ powered: Powered(false),
+ waterlogged: Waterlogged(false),
},
stone_bricks => BlockBehavior::new().requires_correct_tool_for_drops().strength(1.5, 6.0), {},
mossy_stone_bricks => BlockBehavior::new().requires_correct_tool_for_drops().strength(1.5, 6.0), {},
@@ -2795,46 +2789,46 @@ make_block_states! {
infested_cracked_stone_bricks => BlockBehavior::new().strength(0.75, 0.75), {},
infested_chiseled_stone_bricks => BlockBehavior::new().strength(0.75, 0.75), {},
brown_mushroom_block => BlockBehavior::new().strength(0.2, 0.2), {
- down: true,
- east: true,
- north: true,
- south: true,
- up: true,
- west: true,
+ down: Down(true),
+ east: East(true),
+ north: North(true),
+ south: South(true),
+ up: Up(true),
+ west: West(true),
},
red_mushroom_block => BlockBehavior::new().strength(0.2, 0.2), {
- down: true,
- east: true,
- north: true,
- south: true,
- up: true,
- west: true,
+ down: Down(true),
+ east: East(true),
+ north: North(true),
+ south: South(true),
+ up: Up(true),
+ west: West(true),
},
mushroom_stem => BlockBehavior::new().strength(0.2, 0.2), {
- down: true,
- east: true,
- north: true,
- south: true,
- up: true,
- west: true,
+ down: Down(true),
+ east: East(true),
+ north: North(true),
+ south: South(true),
+ up: Up(true),
+ west: West(true),
},
iron_bars => BlockBehavior::new().requires_correct_tool_for_drops().strength(5.0, 6.0), {
- east: false,
- north: false,
- south: false,
- waterlogged: false,
- west: false,
+ east: East(false),
+ north: North(false),
+ south: South(false),
+ waterlogged: Waterlogged(false),
+ west: West(false),
},
chain => BlockBehavior::new().requires_correct_tool_for_drops().strength(5.0, 6.0), {
axis: Axis::Y,
- waterlogged: false,
+ waterlogged: Waterlogged(false),
},
glass_pane => BlockBehavior::new().strength(0.3, 0.3), {
- east: false,
- north: false,
- south: false,
- waterlogged: false,
- west: false,
+ east: East(false),
+ north: North(false),
+ south: South(false),
+ waterlogged: Waterlogged(false),
+ west: West(false),
},
pumpkin => BlockBehavior::new().strength(1.0, 1.0), {},
melon => BlockBehavior::new().strength(1.0, 1.0), {},
@@ -2851,71 +2845,71 @@ make_block_states! {
age: MelonStemAge::_0,
},
vine => BlockBehavior::new().strength(0.2, 0.2), {
- east: false,
- north: false,
- south: false,
- up: false,
- west: false,
+ east: East(false),
+ north: North(false),
+ south: South(false),
+ up: Up(false),
+ west: West(false),
},
glow_lichen => BlockBehavior::new().strength(0.2, 0.2), {
- down: false,
- east: false,
- north: false,
- south: false,
- up: false,
- waterlogged: false,
- west: false,
+ down: Down(false),
+ east: East(false),
+ north: North(false),
+ south: South(false),
+ up: Up(false),
+ waterlogged: Waterlogged(false),
+ west: West(false),
},
oak_fence_gate => BlockBehavior::new().strength(2.0, 3.0), {
facing: FacingCardinal::North,
- in_wall: false,
- open: false,
- powered: false,
+ in_wall: InWall(false),
+ open: Open(false),
+ powered: Powered(false),
},
brick_stairs => BlockBehavior::new().requires_correct_tool_for_drops().strength(2.0, 6.0), {
facing: FacingCardinal::North,
half: TopBottom::Bottom,
shape: StairShape::Straight,
- waterlogged: false,
+ waterlogged: Waterlogged(false),
},
stone_brick_stairs => BlockBehavior::new().requires_correct_tool_for_drops().strength(1.5, 6.0), {
facing: FacingCardinal::North,
half: TopBottom::Bottom,
shape: StairShape::Straight,
- waterlogged: false,
+ waterlogged: Waterlogged(false),
},
mud_brick_stairs => BlockBehavior::new().requires_correct_tool_for_drops().strength(1.5, 3.0), {
facing: FacingCardinal::North,
half: TopBottom::Bottom,
shape: StairShape::Straight,
- waterlogged: false,
+ waterlogged: Waterlogged(false),
},
mycelium => BlockBehavior::new().strength(0.6, 0.6), {
- snowy: false,
+ snowy: Snowy(false),
},
lily_pad => BlockBehavior::new(), {},
nether_bricks => BlockBehavior::new().requires_correct_tool_for_drops().strength(2.0, 6.0), {},
nether_brick_fence => BlockBehavior::new().requires_correct_tool_for_drops().strength(2.0, 6.0), {
- east: false,
- north: false,
- south: false,
- waterlogged: false,
- west: false,
+ east: East(false),
+ north: North(false),
+ south: South(false),
+ waterlogged: Waterlogged(false),
+ west: West(false),
},
nether_brick_stairs => BlockBehavior::new().requires_correct_tool_for_drops().strength(2.0, 6.0), {
facing: FacingCardinal::North,
half: TopBottom::Bottom,
shape: StairShape::Straight,
- waterlogged: false,
+ waterlogged: Waterlogged(false),
},
nether_wart => BlockBehavior::new(), {
age: NetherWartAge::_0,
},
enchanting_table => BlockBehavior::new().requires_correct_tool_for_drops().strength(5.0, 1200.0), {},
brewing_stand => BlockBehavior::new().requires_correct_tool_for_drops().strength(0.5, 0.5), {
- has_bottle: false,
- has_bottle: false,
- has_bottle: false,
+ has_bottle: HasBottle0(false),
+ has_bottle: HasBottle1(false),
+ has_bottle: HasBottle2(false),
},
cauldron => BlockBehavior::new().requires_correct_tool_for_drops().strength(2.0, 2.0), {},
water_cauldron => BlockBehavior::new().requires_correct_tool_for_drops().strength(2.0, 2.0), {
@@ -2927,13 +2921,13 @@ make_block_states! {
},
end_portal => BlockBehavior::new().strength(-1.0, 3600000.0), {},
end_portal_frame => BlockBehavior::new().strength(-1.0, 3600000.0), {
- eye: false,
+ eye: Eye(false),
facing: FacingCardinal::North,
},
end_stone => BlockBehavior::new().requires_correct_tool_for_drops().strength(3.0, 9.0), {},
dragon_egg => BlockBehavior::new().strength(3.0, 9.0), {},
redstone_lamp => BlockBehavior::new().strength(0.3, 0.3), {
- lit: false,
+ lit: Lit(false),
},
cocoa => BlockBehavior::new().strength(0.2, 3.0), {
age: CocoaAge::_0,
@@ -2943,49 +2937,49 @@ make_block_states! {
facing: FacingCardinal::North,
half: TopBottom::Bottom,
shape: StairShape::Straight,
- waterlogged: false,
+ waterlogged: Waterlogged(false),
},
emerald_ore => BlockBehavior::new().requires_correct_tool_for_drops().strength(3.0, 3.0), {},
deepslate_emerald_ore => BlockBehavior::new().requires_correct_tool_for_drops().strength(4.5, 3.0), {},
ender_chest => BlockBehavior::new().requires_correct_tool_for_drops().strength(22.5, 600.0), {
facing: FacingCardinal::North,
- waterlogged: false,
+ waterlogged: Waterlogged(false),
},
tripwire_hook => BlockBehavior::new(), {
- attached: false,
+ attached: Attached(false),
facing: FacingCardinal::North,
- powered: false,
+ powered: Powered(false),
},
tripwire => BlockBehavior::new(), {
- attached: false,
- disarmed: false,
- east: false,
- north: false,
- powered: false,
- south: false,
- west: false,
+ attached: Attached(false),
+ disarmed: Disarmed(false),
+ east: East(false),
+ north: North(false),
+ powered: Powered(false),
+ south: South(false),
+ west: West(false),
},
emerald_block => BlockBehavior::new().requires_correct_tool_for_drops().strength(5.0, 6.0), {},
spruce_stairs => BlockBehavior::new().strength(2.0, 3.0), {
facing: FacingCardinal::North,
half: TopBottom::Bottom,
shape: StairShape::Straight,
- waterlogged: false,
+ waterlogged: Waterlogged(false),
},
birch_stairs => BlockBehavior::new().strength(2.0, 3.0), {
facing: FacingCardinal::North,
half: TopBottom::Bottom,
shape: StairShape::Straight,
- waterlogged: false,
+ waterlogged: Waterlogged(false),
},
jungle_stairs => BlockBehavior::new().strength(2.0, 3.0), {
facing: FacingCardinal::North,
half: TopBottom::Bottom,
shape: StairShape::Straight,
- waterlogged: false,
+ waterlogged: Waterlogged(false),
},
command_block => BlockBehavior::new().requires_correct_tool_for_drops().strength(-1.0, 3600000.0), {
- conditional: false,
+ conditional: Conditional(false),
facing: FacingCubic::North,
},
beacon => BlockBehavior::new().strength(3.0, 3.0), {},
@@ -2993,16 +2987,16 @@ make_block_states! {
east: EastWall::None,
north: NorthWall::None,
south: SouthWall::None,
- up: true,
- waterlogged: false,
+ up: Up(true),
+ waterlogged: Waterlogged(false),
west: WestWall::None,
},
mossy_cobblestone_wall => BlockBehavior::new().requires_correct_tool_for_drops().strength(2.0, 6.0), {
east: EastWall::None,
north: NorthWall::None,
south: SouthWall::None,
- up: true,
- waterlogged: false,
+ up: Up(true),
+ waterlogged: Waterlogged(false),
west: WestWall::None,
},
flower_pot => BlockBehavior::new(), {},
@@ -3042,103 +3036,103 @@ make_block_states! {
oak_button => BlockBehavior::new().strength(0.5, 0.5), {
face: Face::Wall,
facing: FacingCardinal::North,
- powered: false,
+ powered: Powered(false),
},
spruce_button => BlockBehavior::new().strength(0.5, 0.5), {
face: Face::Wall,
facing: FacingCardinal::North,
- powered: false,
+ powered: Powered(false),
},
birch_button => BlockBehavior::new().strength(0.5, 0.5), {
face: Face::Wall,
facing: FacingCardinal::North,
- powered: false,
+ powered: Powered(false),
},
jungle_button => BlockBehavior::new().strength(0.5, 0.5), {
face: Face::Wall,
facing: FacingCardinal::North,
- powered: false,
+ powered: Powered(false),
},
acacia_button => BlockBehavior::new().strength(0.5, 0.5), {
face: Face::Wall,
facing: FacingCardinal::North,
- powered: false,
+ powered: Powered(false),
},
cherry_button => BlockBehavior::new().strength(0.5, 0.5), {
face: Face::Wall,
facing: FacingCardinal::North,
- powered: false,
+ powered: Powered(false),
},
dark_oak_button => BlockBehavior::new().strength(0.5, 0.5), {
face: Face::Wall,
facing: FacingCardinal::North,
- powered: false,
+ powered: Powered(false),
},
mangrove_button => BlockBehavior::new().strength(0.5, 0.5), {
face: Face::Wall,
facing: FacingCardinal::North,
- powered: false,
+ powered: Powered(false),
},
bamboo_button => BlockBehavior::new().strength(0.5, 0.5), {
face: Face::Wall,
facing: FacingCardinal::North,
- powered: false,
+ powered: Powered(false),
},
skeleton_skull => BlockBehavior::new().strength(1.0, 1.0), {
- powered: false,
+ powered: Powered(false),
rotation: SkeletonSkullRotation::_0,
},
skeleton_wall_skull => BlockBehavior::new().strength(1.0, 1.0), {
facing: FacingCardinal::North,
- powered: false,
+ powered: Powered(false),
},
wither_skeleton_skull => BlockBehavior::new().strength(1.0, 1.0), {
- powered: false,
+ powered: Powered(false),
rotation: WitherSkeletonSkullRotation::_0,
},
wither_skeleton_wall_skull => BlockBehavior::new().strength(1.0, 1.0), {
facing: FacingCardinal::North,
- powered: false,
+ powered: Powered(false),
},
zombie_head => BlockBehavior::new().strength(1.0, 1.0), {
- powered: false,
+ powered: Powered(false),
rotation: ZombieHeadRotation::_0,
},
zombie_wall_head => BlockBehavior::new().strength(1.0, 1.0), {
facing: FacingCardinal::North,
- powered: false,
+ powered: Powered(false),
},
player_head => BlockBehavior::new().strength(1.0, 1.0), {
- powered: false,
+ powered: Powered(false),
rotation: PlayerHeadRotation::_0,
},
player_wall_head => BlockBehavior::new().strength(1.0, 1.0), {
facing: FacingCardinal::North,
- powered: false,
+ powered: Powered(false),
},
creeper_head => BlockBehavior::new().strength(1.0, 1.0), {
- powered: false,
+ powered: Powered(false),
rotation: CreeperHeadRotation::_0,
},
creeper_wall_head => BlockBehavior::new().strength(1.0, 1.0), {
facing: FacingCardinal::North,
- powered: false,
+ powered: Powered(false),
},
dragon_head => BlockBehavior::new().strength(1.0, 1.0), {
- powered: false,
+ powered: Powered(false),
rotation: DragonHeadRotation::_0,
},
dragon_wall_head => BlockBehavior::new().strength(1.0, 1.0), {
facing: FacingCardinal::North,
- powered: false,
+ powered: Powered(false),
},
piglin_head => BlockBehavior::new().strength(1.0, 1.0), {
- powered: false,
+ powered: Powered(false),
rotation: PiglinHeadRotation::_0,
},
piglin_wall_head => BlockBehavior::new().strength(1.0, 1.0), {
facing: FacingCardinal::North,
- powered: false,
+ powered: Powered(false),
},
anvil => BlockBehavior::new().requires_correct_tool_for_drops().strength(5.0, 1200.0), {
facing: FacingCardinal::North,
@@ -3152,7 +3146,7 @@ make_block_states! {
trapped_chest => BlockBehavior::new().strength(2.5, 2.5), {
kind: ChestType::Single,
facing: FacingCardinal::North,
- waterlogged: false,
+ waterlogged: Waterlogged(false),
},
light_weighted_pressure_plate => BlockBehavior::new().requires_correct_tool_for_drops().strength(0.5, 0.5), {
power: LightWeightedPressurePlatePower::_0,
@@ -3163,16 +3157,16 @@ make_block_states! {
comparator => BlockBehavior::new(), {
facing: FacingCardinal::North,
mode: ComparatorType::Compare,
- powered: false,
+ powered: Powered(false),
},
daylight_detector => BlockBehavior::new().strength(0.2, 0.2), {
- inverted: false,
+ inverted: Inverted(false),
power: DaylightDetectorPower::_0,
},
redstone_block => BlockBehavior::new().requires_correct_tool_for_drops().strength(5.0, 6.0), {},
nether_quartz_ore => BlockBehavior::new().requires_correct_tool_for_drops().strength(3.0, 3.0), {},
hopper => BlockBehavior::new().requires_correct_tool_for_drops().strength(3.0, 4.8), {
- enabled: true,
+ enabled: Enabled(true),
facing: Facing::Down,
},
quartz_block => BlockBehavior::new().requires_correct_tool_for_drops().strength(0.8, 0.8), {},
@@ -3184,16 +3178,16 @@ make_block_states! {
facing: FacingCardinal::North,
half: TopBottom::Bottom,
shape: StairShape::Straight,
- waterlogged: false,
+ waterlogged: Waterlogged(false),
},
activator_rail => BlockBehavior::new().strength(0.7, 0.7), {
- powered: false,
+ powered: Powered(false),
shape: RailShape::NorthSouth,
- waterlogged: false,
+ waterlogged: Waterlogged(false),
},
dropper => BlockBehavior::new().requires_correct_tool_for_drops().strength(3.5, 3.5), {
facing: FacingCubic::North,
- triggered: false,
+ triggered: Triggered(false),
},
white_terracotta => BlockBehavior::new().requires_correct_tool_for_drops().strength(1.25, 4.2), {},
orange_terracotta => BlockBehavior::new().requires_correct_tool_for_drops().strength(1.25, 4.2), {},
@@ -3212,167 +3206,167 @@ make_block_states! {
red_terracotta => BlockBehavior::new().requires_correct_tool_for_drops().strength(1.25, 4.2), {},
black_terracotta => BlockBehavior::new().requires_correct_tool_for_drops().strength(1.25, 4.2), {},
white_stained_glass_pane => BlockBehavior::new().strength(0.3, 0.3), {
- east: false,
- north: false,
- south: false,
- waterlogged: false,
- west: false,
+ east: East(false),
+ north: North(false),
+ south: South(false),
+ waterlogged: Waterlogged(false),
+ west: West(false),
},
orange_stained_glass_pane => BlockBehavior::new().strength(0.3, 0.3), {
- east: false,
- north: false,
- south: false,
- waterlogged: false,
- west: false,
+ east: East(false),
+ north: North(false),
+ south: South(false),
+ waterlogged: Waterlogged(false),
+ west: West(false),
},
magenta_stained_glass_pane => BlockBehavior::new().strength(0.3, 0.3), {
- east: false,
- north: false,
- south: false,
- waterlogged: false,
- west: false,
+ east: East(false),
+ north: North(false),
+ south: South(false),
+ waterlogged: Waterlogged(false),
+ west: West(false),
},
light_blue_stained_glass_pane => BlockBehavior::new().strength(0.3, 0.3), {
- east: false,
- north: false,
- south: false,
- waterlogged: false,
- west: false,
+ east: East(false),
+ north: North(false),
+ south: South(false),
+ waterlogged: Waterlogged(false),
+ west: West(false),
},
yellow_stained_glass_pane => BlockBehavior::new().strength(0.3, 0.3), {
- east: false,
- north: false,
- south: false,
- waterlogged: false,
- west: false,
+ east: East(false),
+ north: North(false),
+ south: South(false),
+ waterlogged: Waterlogged(false),
+ west: West(false),
},
lime_stained_glass_pane => BlockBehavior::new().strength(0.3, 0.3), {
- east: false,
- north: false,
- south: false,
- waterlogged: false,
- west: false,
+ east: East(false),
+ north: North(false),
+ south: South(false),
+ waterlogged: Waterlogged(false),
+ west: West(false),
},
pink_stained_glass_pane => BlockBehavior::new().strength(0.3, 0.3), {
- east: false,
- north: false,
- south: false,
- waterlogged: false,
- west: false,
+ east: East(false),
+ north: North(false),
+ south: South(false),
+ waterlogged: Waterlogged(false),
+ west: West(false),
},
gray_stained_glass_pane => BlockBehavior::new().strength(0.3, 0.3), {
- east: false,
- north: false,
- south: false,
- waterlogged: false,
- west: false,
+ east: East(false),
+ north: North(false),
+ south: South(false),
+ waterlogged: Waterlogged(false),
+ west: West(false),
},
light_gray_stained_glass_pane => BlockBehavior::new().strength(0.3, 0.3), {
- east: false,
- north: false,
- south: false,
- waterlogged: false,
- west: false,
+ east: East(false),
+ north: North(false),
+ south: South(false),
+ waterlogged: Waterlogged(false),
+ west: West(false),
},
cyan_stained_glass_pane => BlockBehavior::new().strength(0.3, 0.3), {
- east: false,
- north: false,
- south: false,
- waterlogged: false,
- west: false,
+ east: East(false),
+ north: North(false),
+ south: South(false),
+ waterlogged: Waterlogged(false),
+ west: West(false),
},
purple_stained_glass_pane => BlockBehavior::new().strength(0.3, 0.3), {
- east: false,
- north: false,
- south: false,
- waterlogged: false,
- west: false,
+ east: East(false),
+ north: North(false),
+ south: South(false),
+ waterlogged: Waterlogged(false),
+ west: West(false),
},
blue_stained_glass_pane => BlockBehavior::new().strength(0.3, 0.3), {
- east: false,
- north: false,
- south: false,
- waterlogged: false,
- west: false,
+ east: East(false),
+ north: North(false),
+ south: South(false),
+ waterlogged: Waterlogged(false),
+ west: West(false),
},
brown_stained_glass_pane => BlockBehavior::new().strength(0.3, 0.3), {
- east: false,
- north: false,
- south: false,
- waterlogged: false,
- west: false,
+ east: East(false),
+ north: North(false),
+ south: South(false),
+ waterlogged: Waterlogged(false),
+ west: West(false),
},
green_stained_glass_pane => BlockBehavior::new().strength(0.3, 0.3), {
- east: false,
- north: false,
- south: false,
- waterlogged: false,
- west: false,
+ east: East(false),
+ north: North(false),
+ south: South(false),
+ waterlogged: Waterlogged(false),
+ west: West(false),
},
red_stained_glass_pane => BlockBehavior::new().strength(0.3, 0.3), {
- east: false,
- north: false,
- south: false,
- waterlogged: false,
- west: false,
+ east: East(false),
+ north: North(false),
+ south: South(false),
+ waterlogged: Waterlogged(false),
+ west: West(false),
},
black_stained_glass_pane => BlockBehavior::new().strength(0.3, 0.3), {
- east: false,
- north: false,
- south: false,
- waterlogged: false,
- west: false,
+ east: East(false),
+ north: North(false),
+ south: South(false),
+ waterlogged: Waterlogged(false),
+ west: West(false),
},
acacia_stairs => BlockBehavior::new().strength(2.0, 3.0), {
facing: FacingCardinal::North,
half: TopBottom::Bottom,
shape: StairShape::Straight,
- waterlogged: false,
+ waterlogged: Waterlogged(false),
},
cherry_stairs => BlockBehavior::new().strength(2.0, 3.0), {
facing: FacingCardinal::North,
half: TopBottom::Bottom,
shape: StairShape::Straight,
- waterlogged: false,
+ waterlogged: Waterlogged(false),
},
dark_oak_stairs => BlockBehavior::new().strength(2.0, 3.0), {
facing: FacingCardinal::North,
half: TopBottom::Bottom,
shape: StairShape::Straight,
- waterlogged: false,
+ waterlogged: Waterlogged(false),
},
mangrove_stairs => BlockBehavior::new().strength(2.0, 3.0), {
facing: FacingCardinal::North,
half: TopBottom::Bottom,
shape: StairShape::Straight,
- waterlogged: false,
+ waterlogged: Waterlogged(false),
},
bamboo_stairs => BlockBehavior::new().strength(2.0, 3.0), {
facing: FacingCardinal::North,
half: TopBottom::Bottom,
shape: StairShape::Straight,
- waterlogged: false,
+ waterlogged: Waterlogged(false),
},
bamboo_mosaic_stairs => BlockBehavior::new().strength(2.0, 3.0), {
facing: FacingCardinal::North,
half: TopBottom::Bottom,
shape: StairShape::Straight,
- waterlogged: false,
+ waterlogged: Waterlogged(false),
},
slime_block => BlockBehavior::new().friction(0.8), {},
barrier => BlockBehavior::new().strength(-1.0, 3600000.8), {
- waterlogged: false,
+ waterlogged: Waterlogged(false),
},
light => BlockBehavior::new().strength(-1.0, 3600000.8), {
level: LightLevel::_15,
- waterlogged: false,
+ waterlogged: Waterlogged(false),
},
iron_trapdoor => BlockBehavior::new().requires_correct_tool_for_drops().strength(5.0, 5.0), {
facing: FacingCardinal::North,
half: TopBottom::Bottom,
- open: false,
- powered: false,
- waterlogged: false,
+ open: Open(false),
+ powered: Powered(false),
+ waterlogged: Waterlogged(false),
},
prismarine => BlockBehavior::new().requires_correct_tool_for_drops().strength(1.5, 6.0), {},
prismarine_bricks => BlockBehavior::new().requires_correct_tool_for_drops().strength(1.5, 6.0), {},
@@ -3381,31 +3375,31 @@ make_block_states! {
facing: FacingCardinal::North,
half: TopBottom::Bottom,
shape: StairShape::Straight,
- waterlogged: false,
+ waterlogged: Waterlogged(false),
},
prismarine_brick_stairs => BlockBehavior::new().requires_correct_tool_for_drops().strength(1.5, 6.0), {
facing: FacingCardinal::North,
half: TopBottom::Bottom,
shape: StairShape::Straight,
- waterlogged: false,
+ waterlogged: Waterlogged(false),
},
dark_prismarine_stairs => BlockBehavior::new().requires_correct_tool_for_drops().strength(1.5, 6.0), {
facing: FacingCardinal::North,
half: TopBottom::Bottom,
shape: StairShape::Straight,
- waterlogged: false,
+ waterlogged: Waterlogged(false),
},
prismarine_slab => BlockBehavior::new().requires_correct_tool_for_drops().strength(1.5, 6.0), {
kind: Type::Bottom,
- waterlogged: false,
+ waterlogged: Waterlogged(false),
},
prismarine_brick_slab => BlockBehavior::new().requires_correct_tool_for_drops().strength(1.5, 6.0), {
kind: Type::Bottom,
- waterlogged: false,
+ waterlogged: Waterlogged(false),
},
dark_prismarine_slab => BlockBehavior::new().requires_correct_tool_for_drops().strength(1.5, 6.0), {
kind: Type::Bottom,
- waterlogged: false,
+ waterlogged: Waterlogged(false),
},
sea_lantern => BlockBehavior::new().strength(0.3, 0.3), {},
hay_block => BlockBehavior::new().strength(0.5, 0.5), {
@@ -3551,103 +3545,103 @@ make_block_states! {
facing: FacingCardinal::North,
half: TopBottom::Bottom,
shape: StairShape::Straight,
- waterlogged: false,
+ waterlogged: Waterlogged(false),
},
oak_slab => BlockBehavior::new().strength(2.0, 3.0), {
kind: Type::Bottom,
- waterlogged: false,
+ waterlogged: Waterlogged(false),
},
spruce_slab => BlockBehavior::new().strength(2.0, 3.0), {
kind: Type::Bottom,
- waterlogged: false,
+ waterlogged: Waterlogged(false),
},
birch_slab => BlockBehavior::new().strength(2.0, 3.0), {
kind: Type::Bottom,
- waterlogged: false,
+ waterlogged: Waterlogged(false),
},
jungle_slab => BlockBehavior::new().strength(2.0, 3.0), {
kind: Type::Bottom,
- waterlogged: false,
+ waterlogged: Waterlogged(false),
},
acacia_slab => BlockBehavior::new().strength(2.0, 3.0), {
kind: Type::Bottom,
- waterlogged: false,
+ waterlogged: Waterlogged(false),
},
cherry_slab => BlockBehavior::new().strength(2.0, 3.0), {
kind: Type::Bottom,
- waterlogged: false,
+ waterlogged: Waterlogged(false),
},
dark_oak_slab => BlockBehavior::new().strength(2.0, 3.0), {
kind: Type::Bottom,
- waterlogged: false,
+ waterlogged: Waterlogged(false),
},
mangrove_slab => BlockBehavior::new().strength(2.0, 3.0), {
kind: Type::Bottom,
- waterlogged: false,
+ waterlogged: Waterlogged(false),
},
bamboo_slab => BlockBehavior::new().strength(2.0, 3.0), {
kind: Type::Bottom,
- waterlogged: false,
+ waterlogged: Waterlogged(false),
},
bamboo_mosaic_slab => BlockBehavior::new().strength(2.0, 3.0), {
kind: Type::Bottom,
- waterlogged: false,
+ waterlogged: Waterlogged(false),
},
stone_slab => BlockBehavior::new().requires_correct_tool_for_drops().strength(2.0, 6.0), {
kind: Type::Bottom,
- waterlogged: false,
+ waterlogged: Waterlogged(false),
},
smooth_stone_slab => BlockBehavior::new().requires_correct_tool_for_drops().strength(2.0, 6.0), {
kind: Type::Bottom,
- waterlogged: false,
+ waterlogged: Waterlogged(false),
},
sandstone_slab => BlockBehavior::new().requires_correct_tool_for_drops().strength(2.0, 6.0), {
kind: Type::Bottom,
- waterlogged: false,
+ waterlogged: Waterlogged(false),
},
cut_sandstone_slab => BlockBehavior::new().requires_correct_tool_for_drops().strength(2.0, 6.0), {
kind: Type::Bottom,
- waterlogged: false,
+ waterlogged: Waterlogged(false),
},
petrified_oak_slab => BlockBehavior::new().requires_correct_tool_for_drops().strength(2.0, 6.0), {
kind: Type::Bottom,
- waterlogged: false,
+ waterlogged: Waterlogged(false),
},
cobblestone_slab => BlockBehavior::new().requires_correct_tool_for_drops().strength(2.0, 6.0), {
kind: Type::Bottom,
- waterlogged: false,
+ waterlogged: Waterlogged(false),
},
brick_slab => BlockBehavior::new().requires_correct_tool_for_drops().strength(2.0, 6.0), {
kind: Type::Bottom,
- waterlogged: false,
+ waterlogged: Waterlogged(false),
},
stone_brick_slab => BlockBehavior::new().requires_correct_tool_for_drops().strength(2.0, 6.0), {
kind: Type::Bottom,
- waterlogged: false,
+ waterlogged: Waterlogged(false),
},
mud_brick_slab => BlockBehavior::new().requires_correct_tool_for_drops().strength(1.5, 3.0), {
kind: Type::Bottom,
- waterlogged: false,
+ waterlogged: Waterlogged(false),
},
nether_brick_slab => BlockBehavior::new().requires_correct_tool_for_drops().strength(2.0, 6.0), {
kind: Type::Bottom,
- waterlogged: false,
+ waterlogged: Waterlogged(false),
},
quartz_slab => BlockBehavior::new().requires_correct_tool_for_drops().strength(2.0, 6.0), {
kind: Type::Bottom,
- waterlogged: false,
+ waterlogged: Waterlogged(false),
},
red_sandstone_slab => BlockBehavior::new().requires_correct_tool_for_drops().strength(2.0, 6.0), {
kind: Type::Bottom,
- waterlogged: false,
+ waterlogged: Waterlogged(false),
},
cut_red_sandstone_slab => BlockBehavior::new().requires_correct_tool_for_drops().strength(2.0, 6.0), {
kind: Type::Bottom,
- waterlogged: false,
+ waterlogged: Waterlogged(false),
},
purpur_slab => BlockBehavior::new().requires_correct_tool_for_drops().strength(2.0, 6.0), {
kind: Type::Bottom,
- waterlogged: false,
+ waterlogged: Waterlogged(false),
},
smooth_stone => BlockBehavior::new().requires_correct_tool_for_drops().strength(2.0, 6.0), {},
smooth_sandstone => BlockBehavior::new().requires_correct_tool_for_drops().strength(2.0, 6.0), {},
@@ -3655,174 +3649,174 @@ make_block_states! {
smooth_red_sandstone => BlockBehavior::new().requires_correct_tool_for_drops().strength(2.0, 6.0), {},
spruce_fence_gate => BlockBehavior::new().strength(2.0, 3.0), {
facing: FacingCardinal::North,
- in_wall: false,
- open: false,
- powered: false,
+ in_wall: InWall(false),
+ open: Open(false),
+ powered: Powered(false),
},
birch_fence_gate => BlockBehavior::new().strength(2.0, 3.0), {
facing: FacingCardinal::North,
- in_wall: false,
- open: false,
- powered: false,
+ in_wall: InWall(false),
+ open: Open(false),
+ powered: Powered(false),
},
jungle_fence_gate => BlockBehavior::new().strength(2.0, 3.0), {
facing: FacingCardinal::North,
- in_wall: false,
- open: false,
- powered: false,
+ in_wall: InWall(false),
+ open: Open(false),
+ powered: Powered(false),
},
acacia_fence_gate => BlockBehavior::new().strength(2.0, 3.0), {
facing: FacingCardinal::North,
- in_wall: false,
- open: false,
- powered: false,
+ in_wall: InWall(false),
+ open: Open(false),
+ powered: Powered(false),
},
cherry_fence_gate => BlockBehavior::new().strength(2.0, 3.0), {
facing: FacingCardinal::North,
- in_wall: false,
- open: false,
- powered: false,
+ in_wall: InWall(false),
+ open: Open(false),
+ powered: Powered(false),
},
dark_oak_fence_gate => BlockBehavior::new().strength(2.0, 3.0), {
facing: FacingCardinal::North,
- in_wall: false,
- open: false,
- powered: false,
+ in_wall: InWall(false),
+ open: Open(false),
+ powered: Powered(false),
},
mangrove_fence_gate => BlockBehavior::new().strength(2.0, 3.0), {
facing: FacingCardinal::North,
- in_wall: false,
- open: false,
- powered: false,
+ in_wall: InWall(false),
+ open: Open(false),
+ powered: Powered(false),
},
bamboo_fence_gate => BlockBehavior::new().strength(2.0, 3.0), {
facing: FacingCardinal::North,
- in_wall: false,
- open: false,
- powered: false,
+ in_wall: InWall(false),
+ open: Open(false),
+ powered: Powered(false),
},
spruce_fence => BlockBehavior::new().strength(2.0, 3.0), {
- east: false,
- north: false,
- south: false,
- waterlogged: false,
- west: false,
+ east: East(false),
+ north: North(false),
+ south: South(false),
+ waterlogged: Waterlogged(false),
+ west: West(false),
},
birch_fence => BlockBehavior::new().strength(2.0, 3.0), {
- east: false,
- north: false,
- south: false,
- waterlogged: false,
- west: false,
+ east: East(false),
+ north: North(false),
+ south: South(false),
+ waterlogged: Waterlogged(false),
+ west: West(false),
},
jungle_fence => BlockBehavior::new().strength(2.0, 3.0), {
- east: false,
- north: false,
- south: false,
- waterlogged: false,
- west: false,
+ east: East(false),
+ north: North(false),
+ south: South(false),
+ waterlogged: Waterlogged(false),
+ west: West(false),
},
acacia_fence => BlockBehavior::new().strength(2.0, 3.0), {
- east: false,
- north: false,
- south: false,
- waterlogged: false,
- west: false,
+ east: East(false),
+ north: North(false),
+ south: South(false),
+ waterlogged: Waterlogged(false),
+ west: West(false),
},
cherry_fence => BlockBehavior::new().strength(2.0, 3.0), {
- east: false,
- north: false,
- south: false,
- waterlogged: false,
- west: false,
+ east: East(false),
+ north: North(false),
+ south: South(false),
+ waterlogged: Waterlogged(false),
+ west: West(false),
},
dark_oak_fence => BlockBehavior::new().strength(2.0, 3.0), {
- east: false,
- north: false,
- south: false,
- waterlogged: false,
- west: false,
+ east: East(false),
+ north: North(false),
+ south: South(false),
+ waterlogged: Waterlogged(false),
+ west: West(false),
},
mangrove_fence => BlockBehavior::new().strength(2.0, 3.0), {
- east: false,
- north: false,
- south: false,
- waterlogged: false,
- west: false,
+ east: East(false),
+ north: North(false),
+ south: South(false),
+ waterlogged: Waterlogged(false),
+ west: West(false),
},
bamboo_fence => BlockBehavior::new().strength(2.0, 3.0), {
- east: false,
- north: false,
- south: false,
- waterlogged: false,
- west: false,
+ east: East(false),
+ north: North(false),
+ south: South(false),
+ waterlogged: Waterlogged(false),
+ west: West(false),
},
spruce_door => BlockBehavior::new().strength(3.0, 3.0), {
facing: FacingCardinal::North,
half: Half::Lower,
hinge: Hinge::Left,
- open: false,
- powered: false,
+ open: Open(false),
+ powered: Powered(false),
},
birch_door => BlockBehavior::new().strength(3.0, 3.0), {
facing: FacingCardinal::North,
half: Half::Lower,
hinge: Hinge::Left,
- open: false,
- powered: false,
+ open: Open(false),
+ powered: Powered(false),
},
jungle_door => BlockBehavior::new().strength(3.0, 3.0), {
facing: FacingCardinal::North,
half: Half::Lower,
hinge: Hinge::Left,
- open: false,
- powered: false,
+ open: Open(false),
+ powered: Powered(false),
},
acacia_door => BlockBehavior::new().strength(3.0, 3.0), {
facing: FacingCardinal::North,
half: Half::Lower,
hinge: Hinge::Left,
- open: false,
- powered: false,
+ open: Open(false),
+ powered: Powered(false),
},
cherry_door => BlockBehavior::new().strength(3.0, 3.0), {
facing: FacingCardinal::North,
half: Half::Lower,
hinge: Hinge::Left,
- open: false,
- powered: false,
+ open: Open(false),
+ powered: Powered(false),
},
dark_oak_door => BlockBehavior::new().strength(3.0, 3.0), {
facing: FacingCardinal::North,
half: Half::Lower,
hinge: Hinge::Left,
- open: false,
- powered: false,
+ open: Open(false),
+ powered: Powered(false),
},
mangrove_door => BlockBehavior::new().strength(3.0, 3.0), {
facing: FacingCardinal::North,
half: Half::Lower,
hinge: Hinge::Left,
- open: false,
- powered: false,
+ open: Open(false),
+ powered: Powered(false),
},
bamboo_door => BlockBehavior::new().strength(3.0, 3.0), {
facing: FacingCardinal::North,
half: Half::Lower,
hinge: Hinge::Left,
- open: false,
- powered: false,
+ open: Open(false),
+ powered: Powered(false),
},
end_rod => BlockBehavior::new(), {
facing: FacingCubic::Up,
},
chorus_plant => BlockBehavior::new().strength(0.4, 0.4), {
- down: false,
- east: false,
- north: false,
- south: false,
- up: false,
- west: false,
+ down: Down(false),
+ east: East(false),
+ north: North(false),
+ south: South(false),
+ up: Up(false),
+ west: West(false),
},
chorus_flower => BlockBehavior::new().strength(0.4, 0.4), {
age: ChorusFlowerAge::_0,
@@ -3835,7 +3829,7 @@ make_block_states! {
facing: FacingCardinal::North,
half: TopBottom::Bottom,
shape: StairShape::Straight,
- waterlogged: false,
+ waterlogged: Waterlogged(false),
},
end_stone_bricks => BlockBehavior::new().requires_correct_tool_for_drops().strength(3.0, 9.0), {},
torchflower_crop => BlockBehavior::new(), {
@@ -3854,11 +3848,11 @@ make_block_states! {
dirt_path => BlockBehavior::new().strength(0.65, 0.65), {},
end_gateway => BlockBehavior::new().strength(-1.0, 3600000.0), {},
repeating_command_block => BlockBehavior::new().requires_correct_tool_for_drops().strength(-1.0, 3600000.0), {
- conditional: false,
+ conditional: Conditional(false),
facing: FacingCubic::North,
},
chain_command_block => BlockBehavior::new().requires_correct_tool_for_drops().strength(-1.0, 3600000.0), {
- conditional: false,
+ conditional: Conditional(false),
facing: FacingCubic::North,
},
frosted_ice => BlockBehavior::new().strength(0.5, 0.5).friction(0.98), {
@@ -3873,7 +3867,7 @@ make_block_states! {
structure_void => BlockBehavior::new(), {},
observer => BlockBehavior::new().requires_correct_tool_for_drops().strength(3.0, 3.0), {
facing: FacingCubic::South,
- powered: false,
+ powered: Powered(false),
},
shulker_box => BlockBehavior::new().strength(2.0, 2.0), {
facing: FacingCubic::Up,
@@ -4029,112 +4023,112 @@ make_block_states! {
fire_coral_block => BlockBehavior::new().requires_correct_tool_for_drops().strength(1.5, 6.0), {},
horn_coral_block => BlockBehavior::new().requires_correct_tool_for_drops().strength(1.5, 6.0), {},
dead_tube_coral => BlockBehavior::new().requires_correct_tool_for_drops(), {
- waterlogged: true,
+ waterlogged: Waterlogged(true),
},
dead_brain_coral => BlockBehavior::new().requires_correct_tool_for_drops(), {
- waterlogged: true,
+ waterlogged: Waterlogged(true),
},
dead_bubble_coral => BlockBehavior::new().requires_correct_tool_for_drops(), {
- waterlogged: true,
+ waterlogged: Waterlogged(true),
},
dead_fire_coral => BlockBehavior::new().requires_correct_tool_for_drops(), {
- waterlogged: true,
+ waterlogged: Waterlogged(true),
},
dead_horn_coral => BlockBehavior::new().requires_correct_tool_for_drops(), {
- waterlogged: true,
+ waterlogged: Waterlogged(true),
},
tube_coral => BlockBehavior::new(), {
- waterlogged: true,
+ waterlogged: Waterlogged(true),
},
brain_coral => BlockBehavior::new(), {
- waterlogged: true,
+ waterlogged: Waterlogged(true),
},
bubble_coral => BlockBehavior::new(), {
- waterlogged: true,
+ waterlogged: Waterlogged(true),
},
fire_coral => BlockBehavior::new(), {
- waterlogged: true,
+ waterlogged: Waterlogged(true),
},
horn_coral => BlockBehavior::new(), {
- waterlogged: true,
+ waterlogged: Waterlogged(true),
},
dead_tube_coral_fan => BlockBehavior::new().requires_correct_tool_for_drops(), {
- waterlogged: true,
+ waterlogged: Waterlogged(true),
},
dead_brain_coral_fan => BlockBehavior::new().requires_correct_tool_for_drops(), {
- waterlogged: true,
+ waterlogged: Waterlogged(true),
},
dead_bubble_coral_fan => BlockBehavior::new().requires_correct_tool_for_drops(), {
- waterlogged: true,
+ waterlogged: Waterlogged(true),
},
dead_fire_coral_fan => BlockBehavior::new().requires_correct_tool_for_drops(), {
- waterlogged: true,
+ waterlogged: Waterlogged(true),
},
dead_horn_coral_fan => BlockBehavior::new().requires_correct_tool_for_drops(), {
- waterlogged: true,
+ waterlogged: Waterlogged(true),
},
tube_coral_fan => BlockBehavior::new(), {
- waterlogged: true,
+ waterlogged: Waterlogged(true),
},
brain_coral_fan => BlockBehavior::new(), {
- waterlogged: true,
+ waterlogged: Waterlogged(true),
},
bubble_coral_fan => BlockBehavior::new(), {
- waterlogged: true,
+ waterlogged: Waterlogged(true),
},
fire_coral_fan => BlockBehavior::new(), {
- waterlogged: true,
+ waterlogged: Waterlogged(true),
},
horn_coral_fan => BlockBehavior::new(), {
- waterlogged: true,
+ waterlogged: Waterlogged(true),
},
dead_tube_coral_wall_fan => BlockBehavior::new().requires_correct_tool_for_drops(), {
facing: FacingCardinal::North,
- waterlogged: true,
+ waterlogged: Waterlogged(true),
},
dead_brain_coral_wall_fan => BlockBehavior::new().requires_correct_tool_for_drops(), {
facing: FacingCardinal::North,
- waterlogged: true,
+ waterlogged: Waterlogged(true),
},
dead_bubble_coral_wall_fan => BlockBehavior::new().requires_correct_tool_for_drops(), {
facing: FacingCardinal::North,
- waterlogged: true,
+ waterlogged: Waterlogged(true),
},
dead_fire_coral_wall_fan => BlockBehavior::new().requires_correct_tool_for_drops(), {
facing: FacingCardinal::North,
- waterlogged: true,
+ waterlogged: Waterlogged(true),
},
dead_horn_coral_wall_fan => BlockBehavior::new().requires_correct_tool_for_drops(), {
facing: FacingCardinal::North,
- waterlogged: true,
+ waterlogged: Waterlogged(true),
},
tube_coral_wall_fan => BlockBehavior::new(), {
facing: FacingCardinal::North,
- waterlogged: true,
+ waterlogged: Waterlogged(true),
},
brain_coral_wall_fan => BlockBehavior::new(), {
facing: FacingCardinal::North,
- waterlogged: true,
+ waterlogged: Waterlogged(true),
},
bubble_coral_wall_fan => BlockBehavior::new(), {
facing: FacingCardinal::North,
- waterlogged: true,
+ waterlogged: Waterlogged(true),
},
fire_coral_wall_fan => BlockBehavior::new(), {
facing: FacingCardinal::North,
- waterlogged: true,
+ waterlogged: Waterlogged(true),
},
horn_coral_wall_fan => BlockBehavior::new(), {
facing: FacingCardinal::North,
- waterlogged: true,
+ waterlogged: Waterlogged(true),
},
sea_pickle => BlockBehavior::new(), {
pickles: SeaPicklePickles::_1,
- waterlogged: true,
+ waterlogged: Waterlogged(true),
},
blue_ice => BlockBehavior::new().strength(2.8, 2.8).friction(0.989), {},
conduit => BlockBehavior::new().strength(3.0, 3.0), {
- waterlogged: true,
+ waterlogged: Waterlogged(true),
},
bamboo_sapling => BlockBehavior::new().strength(1.0, 1.0), {},
bamboo => BlockBehavior::new().strength(1.0, 1.0), {
@@ -4146,267 +4140,267 @@ make_block_states! {
void_air => BlockBehavior::new(), {},
cave_air => BlockBehavior::new(), {},
bubble_column => BlockBehavior::new(), {
- drag: true,
+ drag: Drag(true),
},
polished_granite_stairs => BlockBehavior::new().requires_correct_tool_for_drops().strength(1.5, 6.0), {
facing: FacingCardinal::North,
half: TopBottom::Bottom,
shape: StairShape::Straight,
- waterlogged: false,
+ waterlogged: Waterlogged(false),
},
smooth_red_sandstone_stairs => BlockBehavior::new().requires_correct_tool_for_drops().strength(2.0, 6.0), {
facing: FacingCardinal::North,
half: TopBottom::Bottom,
shape: StairShape::Straight,
- waterlogged: false,
+ waterlogged: Waterlogged(false),
},
mossy_stone_brick_stairs => BlockBehavior::new().requires_correct_tool_for_drops().strength(1.5, 6.0), {
facing: FacingCardinal::North,
half: TopBottom::Bottom,
shape: StairShape::Straight,
- waterlogged: false,
+ waterlogged: Waterlogged(false),
},
polished_diorite_stairs => BlockBehavior::new().requires_correct_tool_for_drops().strength(1.5, 6.0), {
facing: FacingCardinal::North,
half: TopBottom::Bottom,
shape: StairShape::Straight,
- waterlogged: false,
+ waterlogged: Waterlogged(false),
},
mossy_cobblestone_stairs => BlockBehavior::new().requires_correct_tool_for_drops().strength(2.0, 6.0), {
facing: FacingCardinal::North,
half: TopBottom::Bottom,
shape: StairShape::Straight,
- waterlogged: false,
+ waterlogged: Waterlogged(false),
},
end_stone_brick_stairs => BlockBehavior::new().requires_correct_tool_for_drops().strength(3.0, 9.0), {
facing: FacingCardinal::North,
half: TopBottom::Bottom,
shape: StairShape::Straight,
- waterlogged: false,
+ waterlogged: Waterlogged(false),
},
stone_stairs => BlockBehavior::new().requires_correct_tool_for_drops().strength(1.5, 6.0), {
facing: FacingCardinal::North,
half: TopBottom::Bottom,
shape: StairShape::Straight,
- waterlogged: false,
+ waterlogged: Waterlogged(false),
},
smooth_sandstone_stairs => BlockBehavior::new().requires_correct_tool_for_drops().strength(2.0, 6.0), {
facing: FacingCardinal::North,
half: TopBottom::Bottom,
shape: StairShape::Straight,
- waterlogged: false,
+ waterlogged: Waterlogged(false),
},
smooth_quartz_stairs => BlockBehavior::new().requires_correct_tool_for_drops().strength(2.0, 6.0), {
facing: FacingCardinal::North,
half: TopBottom::Bottom,
shape: StairShape::Straight,
- waterlogged: false,
+ waterlogged: Waterlogged(false),
},
granite_stairs => BlockBehavior::new().requires_correct_tool_for_drops().strength(1.5, 6.0), {
facing: FacingCardinal::North,
half: TopBottom::Bottom,
shape: StairShape::Straight,
- waterlogged: false,
+ waterlogged: Waterlogged(false),
},
andesite_stairs => BlockBehavior::new().requires_correct_tool_for_drops().strength(1.5, 6.0), {
facing: FacingCardinal::North,
half: TopBottom::Bottom,
shape: StairShape::Straight,
- waterlogged: false,
+ waterlogged: Waterlogged(false),
},
red_nether_brick_stairs => BlockBehavior::new().requires_correct_tool_for_drops().strength(2.0, 6.0), {
facing: FacingCardinal::North,
half: TopBottom::Bottom,
shape: StairShape::Straight,
- waterlogged: false,
+ waterlogged: Waterlogged(false),
},
polished_andesite_stairs => BlockBehavior::new().requires_correct_tool_for_drops().strength(1.5, 6.0), {
facing: FacingCardinal::North,
half: TopBottom::Bottom,
shape: StairShape::Straight,
- waterlogged: false,
+ waterlogged: Waterlogged(false),
},
diorite_stairs => BlockBehavior::new().requires_correct_tool_for_drops().strength(1.5, 6.0), {
facing: FacingCardinal::North,
half: TopBottom::Bottom,
shape: StairShape::Straight,
- waterlogged: false,
+ waterlogged: Waterlogged(false),
},
polished_granite_slab => BlockBehavior::new().requires_correct_tool_for_drops().strength(1.5, 6.0), {
kind: Type::Bottom,
- waterlogged: false,
+ waterlogged: Waterlogged(false),
},
smooth_red_sandstone_slab => BlockBehavior::new().requires_correct_tool_for_drops().strength(2.0, 6.0), {
kind: Type::Bottom,
- waterlogged: false,
+ waterlogged: Waterlogged(false),
},
mossy_stone_brick_slab => BlockBehavior::new().requires_correct_tool_for_drops().strength(1.5, 6.0), {
kind: Type::Bottom,
- waterlogged: false,
+ waterlogged: Waterlogged(false),
},
polished_diorite_slab => BlockBehavior::new().requires_correct_tool_for_drops().strength(1.5, 6.0), {
kind: Type::Bottom,
- waterlogged: false,
+ waterlogged: Waterlogged(false),
},
mossy_cobblestone_slab => BlockBehavior::new().requires_correct_tool_for_drops().strength(2.0, 6.0), {
kind: Type::Bottom,
- waterlogged: false,
+ waterlogged: Waterlogged(false),
},
end_stone_brick_slab => BlockBehavior::new().requires_correct_tool_for_drops().strength(3.0, 9.0), {
kind: Type::Bottom,
- waterlogged: false,
+ waterlogged: Waterlogged(false),
},
smooth_sandstone_slab => BlockBehavior::new().requires_correct_tool_for_drops().strength(2.0, 6.0), {
kind: Type::Bottom,
- waterlogged: false,
+ waterlogged: Waterlogged(false),
},
smooth_quartz_slab => BlockBehavior::new().requires_correct_tool_for_drops().strength(2.0, 6.0), {
kind: Type::Bottom,
- waterlogged: false,
+ waterlogged: Waterlogged(false),
},
granite_slab => BlockBehavior::new().requires_correct_tool_for_drops().strength(1.5, 6.0), {
kind: Type::Bottom,
- waterlogged: false,
+ waterlogged: Waterlogged(false),
},
andesite_slab => BlockBehavior::new().requires_correct_tool_for_drops().strength(1.5, 6.0), {
kind: Type::Bottom,
- waterlogged: false,
+ waterlogged: Waterlogged(false),
},
red_nether_brick_slab => BlockBehavior::new().requires_correct_tool_for_drops().strength(2.0, 6.0), {
kind: Type::Bottom,
- waterlogged: false,
+ waterlogged: Waterlogged(false),
},
polished_andesite_slab => BlockBehavior::new().requires_correct_tool_for_drops().strength(1.5, 6.0), {
kind: Type::Bottom,
- waterlogged: false,
+ waterlogged: Waterlogged(false),
},
diorite_slab => BlockBehavior::new().requires_correct_tool_for_drops().strength(1.5, 6.0), {
kind: Type::Bottom,
- waterlogged: false,
+ waterlogged: Waterlogged(false),
},
brick_wall => BlockBehavior::new().requires_correct_tool_for_drops().strength(2.0, 6.0), {
east: EastWall::None,
north: NorthWall::None,
south: SouthWall::None,
- up: true,
- waterlogged: false,
+ up: Up(true),
+ waterlogged: Waterlogged(false),
west: WestWall::None,
},
prismarine_wall => BlockBehavior::new().requires_correct_tool_for_drops().strength(1.5, 6.0), {
east: EastWall::None,
north: NorthWall::None,
south: SouthWall::None,
- up: true,
- waterlogged: false,
+ up: Up(true),
+ waterlogged: Waterlogged(false),
west: WestWall::None,
},
red_sandstone_wall => BlockBehavior::new().requires_correct_tool_for_drops().strength(0.8, 0.8), {
east: EastWall::None,
north: NorthWall::None,
south: SouthWall::None,
- up: true,
- waterlogged: false,
+ up: Up(true),
+ waterlogged: Waterlogged(false),
west: WestWall::None,
},
mossy_stone_brick_wall => BlockBehavior::new().requires_correct_tool_for_drops().strength(1.5, 6.0), {
east: EastWall::None,
north: NorthWall::None,
south: SouthWall::None,
- up: true,
- waterlogged: false,
+ up: Up(true),
+ waterlogged: Waterlogged(false),
west: WestWall::None,
},
granite_wall => BlockBehavior::new().requires_correct_tool_for_drops().strength(1.5, 6.0), {
east: EastWall::None,
north: NorthWall::None,
south: SouthWall::None,
- up: true,
- waterlogged: false,
+ up: Up(true),
+ waterlogged: Waterlogged(false),
west: WestWall::None,
},
stone_brick_wall => BlockBehavior::new().requires_correct_tool_for_drops().strength(1.5, 6.0), {
east: EastWall::None,
north: NorthWall::None,
south: SouthWall::None,
- up: true,
- waterlogged: false,
+ up: Up(true),
+ waterlogged: Waterlogged(false),
west: WestWall::None,
},
mud_brick_wall => BlockBehavior::new().requires_correct_tool_for_drops().strength(1.5, 3.0), {
east: EastWall::None,
north: NorthWall::None,
south: SouthWall::None,
- up: true,
- waterlogged: false,
+ up: Up(true),
+ waterlogged: Waterlogged(false),
west: WestWall::None,
},
nether_brick_wall => BlockBehavior::new().requires_correct_tool_for_drops().strength(2.0, 6.0), {
east: EastWall::None,
north: NorthWall::None,
south: SouthWall::None,
- up: true,
- waterlogged: false,
+ up: Up(true),
+ waterlogged: Waterlogged(false),
west: WestWall::None,
},
andesite_wall => BlockBehavior::new().requires_correct_tool_for_drops().strength(1.5, 6.0), {
east: EastWall::None,
north: NorthWall::None,
south: SouthWall::None,
- up: true,
- waterlogged: false,
+ up: Up(true),
+ waterlogged: Waterlogged(false),
west: WestWall::None,
},
red_nether_brick_wall => BlockBehavior::new().requires_correct_tool_for_drops().strength(2.0, 6.0), {
east: EastWall::None,
north: NorthWall::None,
south: SouthWall::None,
- up: true,
- waterlogged: false,
+ up: Up(true),
+ waterlogged: Waterlogged(false),
west: WestWall::None,
},
sandstone_wall => BlockBehavior::new().requires_correct_tool_for_drops().strength(0.8, 0.8), {
east: EastWall::None,
north: NorthWall::None,
south: SouthWall::None,
- up: true,
- waterlogged: false,
+ up: Up(true),
+ waterlogged: Waterlogged(false),
west: WestWall::None,
},
end_stone_brick_wall => BlockBehavior::new().requires_correct_tool_for_drops().strength(3.0, 9.0), {
east: EastWall::None,
north: NorthWall::None,
south: SouthWall::None,
- up: true,
- waterlogged: false,
+ up: Up(true),
+ waterlogged: Waterlogged(false),
west: WestWall::None,
},
diorite_wall => BlockBehavior::new().requires_correct_tool_for_drops().strength(1.5, 6.0), {
east: EastWall::None,
north: NorthWall::None,
south: SouthWall::None,
- up: true,
- waterlogged: false,
+ up: Up(true),
+ waterlogged: Waterlogged(false),
west: WestWall::None,
},
scaffolding => BlockBehavior::new(), {
- bottom: false,
+ bottom: Bottom(false),
distance: ScaffoldingDistance::_7,
- waterlogged: false,
+ waterlogged: Waterlogged(false),
},
loom => BlockBehavior::new().strength(2.5, 2.5), {
facing: FacingCardinal::North,
},
barrel => BlockBehavior::new().strength(2.5, 2.5), {
facing: FacingCubic::North,
- open: false,
+ open: Open(false),
},
smoker => BlockBehavior::new().requires_correct_tool_for_drops().strength(3.5, 3.5), {
facing: FacingCardinal::North,
- lit: false,
+ lit: Lit(false),
},
blast_furnace => BlockBehavior::new().requires_correct_tool_for_drops().strength(3.5, 3.5), {
facing: FacingCardinal::North,
- lit: false,
+ lit: Lit(false),
},
cartography_table => BlockBehavior::new().strength(2.5, 2.5), {},
fletching_table => BlockBehavior::new().strength(2.5, 2.5), {},
@@ -4416,8 +4410,8 @@ make_block_states! {
},
lectern => BlockBehavior::new().strength(2.5, 2.5), {
facing: FacingCardinal::North,
- has_book: false,
- powered: false,
+ has_book: HasBook(false),
+ powered: Powered(false),
},
smithing_table => BlockBehavior::new().strength(2.5, 2.5), {},
stonecutter => BlockBehavior::new().requires_correct_tool_for_drops().strength(3.5, 3.5), {
@@ -4426,27 +4420,27 @@ make_block_states! {
bell => BlockBehavior::new().requires_correct_tool_for_drops().strength(5.0, 5.0), {
attachment: Attachment::Floor,
facing: FacingCardinal::North,
- powered: false,
+ powered: Powered(false),
},
lantern => BlockBehavior::new().requires_correct_tool_for_drops().strength(3.5, 3.5), {
- hanging: false,
- waterlogged: false,
+ hanging: Hanging(false),
+ waterlogged: Waterlogged(false),
},
soul_lantern => BlockBehavior::new().requires_correct_tool_for_drops().strength(3.5, 3.5), {
- hanging: false,
- waterlogged: false,
+ hanging: Hanging(false),
+ waterlogged: Waterlogged(false),
},
campfire => BlockBehavior::new().strength(2.0, 2.0), {
facing: FacingCardinal::North,
- lit: true,
- signal_fire: false,
- waterlogged: false,
+ lit: Lit(true),
+ signal_fire: SignalFire(false),
+ waterlogged: Waterlogged(false),
},
soul_campfire => BlockBehavior::new().strength(2.0, 2.0), {
facing: FacingCardinal::North,
- lit: true,
- signal_fire: false,
- waterlogged: false,
+ lit: Lit(true),
+ signal_fire: SignalFire(false),
+ waterlogged: Waterlogged(false),
},
sweet_berry_bush => BlockBehavior::new(), {
age: SweetBerryBushAge::_0,
@@ -4496,109 +4490,109 @@ make_block_states! {
warped_planks => BlockBehavior::new().strength(2.0, 3.0), {},
crimson_slab => BlockBehavior::new().strength(2.0, 3.0), {
kind: Type::Bottom,
- waterlogged: false,
+ waterlogged: Waterlogged(false),
},
warped_slab => BlockBehavior::new().strength(2.0, 3.0), {
kind: Type::Bottom,
- waterlogged: false,
+ waterlogged: Waterlogged(false),
},
crimson_pressure_plate => BlockBehavior::new().strength(0.5, 0.5), {
- powered: false,
+ powered: Powered(false),
},
warped_pressure_plate => BlockBehavior::new().strength(0.5, 0.5), {
- powered: false,
+ powered: Powered(false),
},
crimson_fence => BlockBehavior::new().strength(2.0, 3.0), {
- east: false,
- north: false,
- south: false,
- waterlogged: false,
- west: false,
+ east: East(false),
+ north: North(false),
+ south: South(false),
+ waterlogged: Waterlogged(false),
+ west: West(false),
},
warped_fence => BlockBehavior::new().strength(2.0, 3.0), {
- east: false,
- north: false,
- south: false,
- waterlogged: false,
- west: false,
+ east: East(false),
+ north: North(false),
+ south: South(false),
+ waterlogged: Waterlogged(false),
+ west: West(false),
},
crimson_trapdoor => BlockBehavior::new().strength(3.0, 3.0), {
facing: FacingCardinal::North,
half: TopBottom::Bottom,
- open: false,
- powered: false,
- waterlogged: false,
+ open: Open(false),
+ powered: Powered(false),
+ waterlogged: Waterlogged(false),
},
warped_trapdoor => BlockBehavior::new().strength(3.0, 3.0), {
facing: FacingCardinal::North,
half: TopBottom::Bottom,
- open: false,
- powered: false,
- waterlogged: false,
+ open: Open(false),
+ powered: Powered(false),
+ waterlogged: Waterlogged(false),
},
crimson_fence_gate => BlockBehavior::new().strength(2.0, 3.0), {
facing: FacingCardinal::North,
- in_wall: false,
- open: false,
- powered: false,
+ in_wall: InWall(false),
+ open: Open(false),
+ powered: Powered(false),
},
warped_fence_gate => BlockBehavior::new().strength(2.0, 3.0), {
facing: FacingCardinal::North,
- in_wall: false,
- open: false,
- powered: false,
+ in_wall: InWall(false),
+ open: Open(false),
+ powered: Powered(false),
},
crimson_stairs => BlockBehavior::new().strength(2.0, 3.0), {
facing: FacingCardinal::North,
half: TopBottom::Bottom,
shape: StairShape::Straight,
- waterlogged: false,
+ waterlogged: Waterlogged(false),
},
warped_stairs => BlockBehavior::new().strength(2.0, 3.0), {
facing: FacingCardinal::North,
half: TopBottom::Bottom,
shape: StairShape::Straight,
- waterlogged: false,
+ waterlogged: Waterlogged(false),
},
crimson_button => BlockBehavior::new().strength(0.5, 0.5), {
face: Face::Wall,
facing: FacingCardinal::North,
- powered: false,
+ powered: Powered(false),
},
warped_button => BlockBehavior::new().strength(0.5, 0.5), {
face: Face::Wall,
facing: FacingCardinal::North,
- powered: false,
+ powered: Powered(false),
},
crimson_door => BlockBehavior::new().strength(3.0, 3.0), {
facing: FacingCardinal::North,
half: Half::Lower,
hinge: Hinge::Left,
- open: false,
- powered: false,
+ open: Open(false),
+ powered: Powered(false),
},
warped_door => BlockBehavior::new().strength(3.0, 3.0), {
facing: FacingCardinal::North,
half: Half::Lower,
hinge: Hinge::Left,
- open: false,
- powered: false,
+ open: Open(false),
+ powered: Powered(false),
},
crimson_sign => BlockBehavior::new().strength(1.0, 1.0), {
rotation: CrimsonSignRotation::_0,
- waterlogged: false,
+ waterlogged: Waterlogged(false),
},
warped_sign => BlockBehavior::new().strength(1.0, 1.0), {
rotation: WarpedSignRotation::_0,
- waterlogged: false,
+ waterlogged: Waterlogged(false),
},
crimson_wall_sign => BlockBehavior::new().strength(1.0, 1.0), {
facing: FacingCardinal::North,
- waterlogged: false,
+ waterlogged: Waterlogged(false),
},
warped_wall_sign => BlockBehavior::new().strength(1.0, 1.0), {
facing: FacingCardinal::North,
- waterlogged: false,
+ waterlogged: Waterlogged(false),
},
structure_block => BlockBehavior::new().requires_correct_tool_for_drops().strength(-1.0, 3600000.0), {
mode: Mode::Load,
@@ -4638,19 +4632,19 @@ make_block_states! {
facing: FacingCardinal::North,
half: TopBottom::Bottom,
shape: StairShape::Straight,
- waterlogged: false,
+ waterlogged: Waterlogged(false),
},
blackstone_wall => BlockBehavior::new().requires_correct_tool_for_drops().strength(1.5, 6.0), {
east: EastWall::None,
north: NorthWall::None,
south: SouthWall::None,
- up: true,
- waterlogged: false,
+ up: Up(true),
+ waterlogged: Waterlogged(false),
west: WestWall::None,
},
blackstone_slab => BlockBehavior::new().requires_correct_tool_for_drops().strength(2.0, 6.0), {
kind: Type::Bottom,
- waterlogged: false,
+ waterlogged: Waterlogged(false),
},
polished_blackstone => BlockBehavior::new().requires_correct_tool_for_drops().strength(2.0, 6.0), {},
polished_blackstone_bricks => BlockBehavior::new().requires_correct_tool_for_drops().strength(1.5, 6.0), {},
@@ -4658,20 +4652,20 @@ make_block_states! {
chiseled_polished_blackstone => BlockBehavior::new().requires_correct_tool_for_drops().strength(1.5, 6.0), {},
polished_blackstone_brick_slab => BlockBehavior::new().requires_correct_tool_for_drops().strength(2.0, 6.0), {
kind: Type::Bottom,
- waterlogged: false,
+ waterlogged: Waterlogged(false),
},
polished_blackstone_brick_stairs => BlockBehavior::new().requires_correct_tool_for_drops().strength(1.5, 6.0), {
facing: FacingCardinal::North,
half: TopBottom::Bottom,
shape: StairShape::Straight,
- waterlogged: false,
+ waterlogged: Waterlogged(false),
},
polished_blackstone_brick_wall => BlockBehavior::new().requires_correct_tool_for_drops().strength(1.5, 6.0), {
east: EastWall::None,
north: NorthWall::None,
south: SouthWall::None,
- up: true,
- waterlogged: false,
+ up: Up(true),
+ waterlogged: Waterlogged(false),
west: WestWall::None,
},
gilded_blackstone => BlockBehavior::new().requires_correct_tool_for_drops().strength(1.5, 6.0), {},
@@ -4679,26 +4673,26 @@ make_block_states! {
facing: FacingCardinal::North,
half: TopBottom::Bottom,
shape: StairShape::Straight,
- waterlogged: false,
+ waterlogged: Waterlogged(false),
},
polished_blackstone_slab => BlockBehavior::new().requires_correct_tool_for_drops().strength(2.0, 6.0), {
kind: Type::Bottom,
- waterlogged: false,
+ waterlogged: Waterlogged(false),
},
polished_blackstone_pressure_plate => BlockBehavior::new().requires_correct_tool_for_drops().strength(0.5, 0.5), {
- powered: false,
+ powered: Powered(false),
},
polished_blackstone_button => BlockBehavior::new().strength(0.5, 0.5), {
face: Face::Wall,
facing: FacingCardinal::North,
- powered: false,
+ powered: Powered(false),
},
polished_blackstone_wall => BlockBehavior::new().requires_correct_tool_for_drops().strength(2.0, 6.0), {
east: EastWall::None,
north: NorthWall::None,
south: SouthWall::None,
- up: true,
- waterlogged: false,
+ up: Up(true),
+ waterlogged: Waterlogged(false),
west: WestWall::None,
},
chiseled_nether_bricks => BlockBehavior::new().requires_correct_tool_for_drops().strength(2.0, 6.0), {},
@@ -4706,214 +4700,214 @@ make_block_states! {
quartz_bricks => BlockBehavior::new().requires_correct_tool_for_drops().strength(0.8, 0.8), {},
candle => BlockBehavior::new().strength(0.1, 0.1), {
candles: CandleCandles::_1,
- lit: false,
- waterlogged: false,
+ lit: Lit(false),
+ waterlogged: Waterlogged(false),
},
white_candle => BlockBehavior::new().strength(0.1, 0.1), {
candles: WhiteCandleCandles::_1,
- lit: false,
- waterlogged: false,
+ lit: Lit(false),
+ waterlogged: Waterlogged(false),
},
orange_candle => BlockBehavior::new().strength(0.1, 0.1), {
candles: OrangeCandleCandles::_1,
- lit: false,
- waterlogged: false,
+ lit: Lit(false),
+ waterlogged: Waterlogged(false),
},
magenta_candle => BlockBehavior::new().strength(0.1, 0.1), {
candles: MagentaCandleCandles::_1,
- lit: false,
- waterlogged: false,
+ lit: Lit(false),
+ waterlogged: Waterlogged(false),
},
light_blue_candle => BlockBehavior::new().strength(0.1, 0.1), {
candles: LightBlueCandleCandles::_1,
- lit: false,
- waterlogged: false,
+ lit: Lit(false),
+ waterlogged: Waterlogged(false),
},
yellow_candle => BlockBehavior::new().strength(0.1, 0.1), {
candles: YellowCandleCandles::_1,
- lit: false,
- waterlogged: false,
+ lit: Lit(false),
+ waterlogged: Waterlogged(false),
},
lime_candle => BlockBehavior::new().strength(0.1, 0.1), {
candles: LimeCandleCandles::_1,
- lit: false,
- waterlogged: false,
+ lit: Lit(false),
+ waterlogged: Waterlogged(false),
},
pink_candle => BlockBehavior::new().strength(0.1, 0.1), {
candles: PinkCandleCandles::_1,
- lit: false,
- waterlogged: false,
+ lit: Lit(false),
+ waterlogged: Waterlogged(false),
},
gray_candle => BlockBehavior::new().strength(0.1, 0.1), {
candles: GrayCandleCandles::_1,
- lit: false,
- waterlogged: false,
+ lit: Lit(false),
+ waterlogged: Waterlogged(false),
},
light_gray_candle => BlockBehavior::new().strength(0.1, 0.1), {
candles: LightGrayCandleCandles::_1,
- lit: false,
- waterlogged: false,
+ lit: Lit(false),
+ waterlogged: Waterlogged(false),
},
cyan_candle => BlockBehavior::new().strength(0.1, 0.1), {
candles: CyanCandleCandles::_1,
- lit: false,
- waterlogged: false,
+ lit: Lit(false),
+ waterlogged: Waterlogged(false),
},
purple_candle => BlockBehavior::new().strength(0.1, 0.1), {
candles: PurpleCandleCandles::_1,
- lit: false,
- waterlogged: false,
+ lit: Lit(false),
+ waterlogged: Waterlogged(false),
},
blue_candle => BlockBehavior::new().strength(0.1, 0.1), {
candles: BlueCandleCandles::_1,
- lit: false,
- waterlogged: false,
+ lit: Lit(false),
+ waterlogged: Waterlogged(false),
},
brown_candle => BlockBehavior::new().strength(0.1, 0.1), {
candles: BrownCandleCandles::_1,
- lit: false,
- waterlogged: false,
+ lit: Lit(false),
+ waterlogged: Waterlogged(false),
},
green_candle => BlockBehavior::new().strength(0.1, 0.1), {
candles: GreenCandleCandles::_1,
- lit: false,
- waterlogged: false,
+ lit: Lit(false),
+ waterlogged: Waterlogged(false),
},
red_candle => BlockBehavior::new().strength(0.1, 0.1), {
candles: RedCandleCandles::_1,
- lit: false,
- waterlogged: false,
+ lit: Lit(false),
+ waterlogged: Waterlogged(false),
},
black_candle => BlockBehavior::new().strength(0.1, 0.1), {
candles: BlackCandleCandles::_1,
- lit: false,
- waterlogged: false,
+ lit: Lit(false),
+ waterlogged: Waterlogged(false),
},
candle_cake => BlockBehavior::new().strength(0.5, 0.5), {
- lit: false,
+ lit: Lit(false),
},
white_candle_cake => BlockBehavior::new().strength(0.5, 0.5), {
- lit: false,
+ lit: Lit(false),
},
orange_candle_cake => BlockBehavior::new().strength(0.5, 0.5), {
- lit: false,
+ lit: Lit(false),
},
magenta_candle_cake => BlockBehavior::new().strength(0.5, 0.5), {
- lit: false,
+ lit: Lit(false),
},
light_blue_candle_cake => BlockBehavior::new().strength(0.5, 0.5), {
- lit: false,
+ lit: Lit(false),
},
yellow_candle_cake => BlockBehavior::new().strength(0.5, 0.5), {
- lit: false,
+ lit: Lit(false),
},
lime_candle_cake => BlockBehavior::new().strength(0.5, 0.5), {
- lit: false,
+ lit: Lit(false),
},
pink_candle_cake => BlockBehavior::new().strength(0.5, 0.5), {
- lit: false,
+ lit: Lit(false),
},
gray_candle_cake => BlockBehavior::new().strength(0.5, 0.5), {
- lit: false,
+ lit: Lit(false),
},
light_gray_candle_cake => BlockBehavior::new().strength(0.5, 0.5), {
- lit: false,
+ lit: Lit(false),
},
cyan_candle_cake => BlockBehavior::new().strength(0.5, 0.5), {
- lit: false,
+ lit: Lit(false),
},
purple_candle_cake => BlockBehavior::new().strength(0.5, 0.5), {
- lit: false,
+ lit: Lit(false),
},
blue_candle_cake => BlockBehavior::new().strength(0.5, 0.5), {
- lit: false,
+ lit: Lit(false),
},
brown_candle_cake => BlockBehavior::new().strength(0.5, 0.5), {
- lit: false,
+ lit: Lit(false),
},
green_candle_cake => BlockBehavior::new().strength(0.5, 0.5), {
- lit: false,
+ lit: Lit(false),
},
red_candle_cake => BlockBehavior::new().strength(0.5, 0.5), {
- lit: false,
+ lit: Lit(false),
},
black_candle_cake => BlockBehavior::new().strength(0.5, 0.5), {
- lit: false,
+ lit: Lit(false),
},
amethyst_block => BlockBehavior::new().requires_correct_tool_for_drops().strength(1.5, 1.5), {},
budding_amethyst => BlockBehavior::new().requires_correct_tool_for_drops().strength(1.5, 1.5), {},
amethyst_cluster => BlockBehavior::new().strength(1.5, 1.5), {
facing: FacingCubic::Up,
- waterlogged: false,
+ waterlogged: Waterlogged(false),
},
large_amethyst_bud => BlockBehavior::new().strength(1.5, 1.5), {
facing: FacingCubic::Up,
- waterlogged: false,
+ waterlogged: Waterlogged(false),
},
medium_amethyst_bud => BlockBehavior::new().strength(1.5, 1.5), {
facing: FacingCubic::Up,
- waterlogged: false,
+ waterlogged: Waterlogged(false),
},
small_amethyst_bud => BlockBehavior::new().strength(1.5, 1.5), {
facing: FacingCubic::Up,
- waterlogged: false,
+ waterlogged: Waterlogged(false),
},
tuff => BlockBehavior::new().requires_correct_tool_for_drops().strength(1.5, 6.0), {},
tuff_slab => BlockBehavior::new().requires_correct_tool_for_drops().strength(1.5, 6.0), {
kind: Type::Bottom,
- waterlogged: false,
+ waterlogged: Waterlogged(false),
},
tuff_stairs => BlockBehavior::new().requires_correct_tool_for_drops().strength(1.5, 6.0), {
facing: FacingCardinal::North,
half: TopBottom::Bottom,
shape: StairShape::Straight,
- waterlogged: false,
+ waterlogged: Waterlogged(false),
},
tuff_wall => BlockBehavior::new().requires_correct_tool_for_drops().strength(1.5, 6.0), {
east: EastWall::None,
north: NorthWall::None,
south: SouthWall::None,
- up: true,
- waterlogged: false,
+ up: Up(true),
+ waterlogged: Waterlogged(false),
west: WestWall::None,
},
polished_tuff => BlockBehavior::new().requires_correct_tool_for_drops().strength(1.5, 6.0), {},
polished_tuff_slab => BlockBehavior::new().requires_correct_tool_for_drops().strength(1.5, 6.0), {
kind: Type::Bottom,
- waterlogged: false,
+ waterlogged: Waterlogged(false),
},
polished_tuff_stairs => BlockBehavior::new().requires_correct_tool_for_drops().strength(1.5, 6.0), {
facing: FacingCardinal::North,
half: TopBottom::Bottom,
shape: StairShape::Straight,
- waterlogged: false,
+ waterlogged: Waterlogged(false),
},
polished_tuff_wall => BlockBehavior::new().requires_correct_tool_for_drops().strength(1.5, 6.0), {
east: EastWall::None,
north: NorthWall::None,
south: SouthWall::None,
- up: true,
- waterlogged: false,
+ up: Up(true),
+ waterlogged: Waterlogged(false),
west: WestWall::None,
},
chiseled_tuff => BlockBehavior::new().requires_correct_tool_for_drops().strength(1.5, 6.0), {},
tuff_bricks => BlockBehavior::new().requires_correct_tool_for_drops().strength(1.5, 6.0), {},
tuff_brick_slab => BlockBehavior::new().requires_correct_tool_for_drops().strength(1.5, 6.0), {
kind: Type::Bottom,
- waterlogged: false,
+ waterlogged: Waterlogged(false),
},
tuff_brick_stairs => BlockBehavior::new().requires_correct_tool_for_drops().strength(1.5, 6.0), {
facing: FacingCardinal::North,
half: TopBottom::Bottom,
shape: StairShape::Straight,
- waterlogged: false,
+ waterlogged: Waterlogged(false),
},
tuff_brick_wall => BlockBehavior::new().requires_correct_tool_for_drops().strength(1.5, 6.0), {
east: EastWall::None,
north: NorthWall::None,
south: SouthWall::None,
- up: true,
- waterlogged: false,
+ up: Up(true),
+ waterlogged: Waterlogged(false),
west: WestWall::None,
},
chiseled_tuff_bricks => BlockBehavior::new().requires_correct_tool_for_drops().strength(1.5, 6.0), {},
@@ -4923,31 +4917,31 @@ make_block_states! {
sculk_sensor => BlockBehavior::new().strength(1.5, 1.5), {
power: SculkSensorPower::_0,
sculk_sensor_phase: Phase::Inactive,
- waterlogged: false,
+ waterlogged: Waterlogged(false),
},
calibrated_sculk_sensor => BlockBehavior::new().strength(1.5, 1.5), {
facing: FacingCardinal::North,
power: CalibratedSculkSensorPower::_0,
sculk_sensor_phase: Phase::Inactive,
- waterlogged: false,
+ waterlogged: Waterlogged(false),
},
sculk => BlockBehavior::new().strength(0.2, 0.2), {},
sculk_vein => BlockBehavior::new().strength(0.2, 0.2), {
- down: false,
- east: false,
- north: false,
- south: false,
- up: false,
- waterlogged: false,
- west: false,
+ down: Down(false),
+ east: East(false),
+ north: North(false),
+ south: South(false),
+ up: Up(false),
+ waterlogged: Waterlogged(false),
+ west: West(false),
},
sculk_catalyst => BlockBehavior::new().strength(3.0, 3.0), {
- bloom: false,
+ bloom: Bloom(false),
},
sculk_shrieker => BlockBehavior::new().strength(3.0, 3.0), {
- can_summon: false,
- shrieking: false,
- waterlogged: false,
+ can_summon: CanSummon(false),
+ shrieking: Shrieking(false),
+ waterlogged: Waterlogged(false),
},
copper_block => BlockBehavior::new().requires_correct_tool_for_drops().strength(3.0, 6.0), {},
exposed_copper => BlockBehavior::new().requires_correct_tool_for_drops().strength(3.0, 6.0), {},
@@ -4971,41 +4965,41 @@ make_block_states! {
facing: FacingCardinal::North,
half: TopBottom::Bottom,
shape: StairShape::Straight,
- waterlogged: false,
+ waterlogged: Waterlogged(false),
},
weathered_cut_copper_stairs => BlockBehavior::new().requires_correct_tool_for_drops().strength(3.0, 6.0), {
facing: FacingCardinal::North,
half: TopBottom::Bottom,
shape: StairShape::Straight,
- waterlogged: false,
+ waterlogged: Waterlogged(false),
},
exposed_cut_copper_stairs => BlockBehavior::new().requires_correct_tool_for_drops().strength(3.0, 6.0), {
facing: FacingCardinal::North,
half: TopBottom::Bottom,
shape: StairShape::Straight,
- waterlogged: false,
+ waterlogged: Waterlogged(false),
},
cut_copper_stairs => BlockBehavior::new().requires_correct_tool_for_drops().strength(3.0, 6.0), {
facing: FacingCardinal::North,
half: TopBottom::Bottom,
shape: StairShape::Straight,
- waterlogged: false,
+ waterlogged: Waterlogged(false),
},
oxidized_cut_copper_slab => BlockBehavior::new().requires_correct_tool_for_drops().strength(3.0, 6.0), {
kind: Type::Bottom,
- waterlogged: false,
+ waterlogged: Waterlogged(false),
},
weathered_cut_copper_slab => BlockBehavior::new().requires_correct_tool_for_drops().strength(3.0, 6.0), {
kind: Type::Bottom,
- waterlogged: false,
+ waterlogged: Waterlogged(false),
},
exposed_cut_copper_slab => BlockBehavior::new().requires_correct_tool_for_drops().strength(3.0, 6.0), {
kind: Type::Bottom,
- waterlogged: false,
+ waterlogged: Waterlogged(false),
},
cut_copper_slab => BlockBehavior::new().requires_correct_tool_for_drops().strength(3.0, 6.0), {
kind: Type::Bottom,
- waterlogged: false,
+ waterlogged: Waterlogged(false),
},
waxed_copper_block => BlockBehavior::new().requires_correct_tool_for_drops().strength(3.0, 6.0), {},
waxed_weathered_copper => BlockBehavior::new().requires_correct_tool_for_drops().strength(3.0, 6.0), {},
@@ -5019,227 +5013,227 @@ make_block_states! {
facing: FacingCardinal::North,
half: TopBottom::Bottom,
shape: StairShape::Straight,
- waterlogged: false,
+ waterlogged: Waterlogged(false),
},
waxed_weathered_cut_copper_stairs => BlockBehavior::new().requires_correct_tool_for_drops().strength(3.0, 6.0), {
facing: FacingCardinal::North,
half: TopBottom::Bottom,
shape: StairShape::Straight,
- waterlogged: false,
+ waterlogged: Waterlogged(false),
},
waxed_exposed_cut_copper_stairs => BlockBehavior::new().requires_correct_tool_for_drops().strength(3.0, 6.0), {
facing: FacingCardinal::North,
half: TopBottom::Bottom,
shape: StairShape::Straight,
- waterlogged: false,
+ waterlogged: Waterlogged(false),
},
waxed_cut_copper_stairs => BlockBehavior::new().requires_correct_tool_for_drops().strength(3.0, 6.0), {
facing: FacingCardinal::North,
half: TopBottom::Bottom,
shape: StairShape::Straight,
- waterlogged: false,
+ waterlogged: Waterlogged(false),
},
waxed_oxidized_cut_copper_slab => BlockBehavior::new().requires_correct_tool_for_drops().strength(3.0, 6.0), {
kind: Type::Bottom,
- waterlogged: false,
+ waterlogged: Waterlogged(false),
},
waxed_weathered_cut_copper_slab => BlockBehavior::new().requires_correct_tool_for_drops().strength(3.0, 6.0), {
kind: Type::Bottom,
- waterlogged: false,
+ waterlogged: Waterlogged(false),
},
waxed_exposed_cut_copper_slab => BlockBehavior::new().requires_correct_tool_for_drops().strength(3.0, 6.0), {
kind: Type::Bottom,
- waterlogged: false,
+ waterlogged: Waterlogged(false),
},
waxed_cut_copper_slab => BlockBehavior::new().requires_correct_tool_for_drops().strength(3.0, 6.0), {
kind: Type::Bottom,
- waterlogged: false,
+ waterlogged: Waterlogged(false),
},
- copper_door => BlockBehavior::new().requires_correct_tool_for_drops().strength(3.0, 3.0), {
+ copper_door => BlockBehavior::new().requires_correct_tool_for_drops().strength(3.0, 6.0), {
facing: FacingCardinal::North,
half: Half::Lower,
hinge: Hinge::Left,
- open: false,
- powered: false,
+ open: Open(false),
+ powered: Powered(false),
},
- exposed_copper_door => BlockBehavior::new().requires_correct_tool_for_drops().strength(3.0, 3.0), {
+ exposed_copper_door => BlockBehavior::new().requires_correct_tool_for_drops().strength(3.0, 6.0), {
facing: FacingCardinal::North,
half: Half::Lower,
hinge: Hinge::Left,
- open: false,
- powered: false,
+ open: Open(false),
+ powered: Powered(false),
},
- oxidized_copper_door => BlockBehavior::new().requires_correct_tool_for_drops().strength(3.0, 3.0), {
+ oxidized_copper_door => BlockBehavior::new().requires_correct_tool_for_drops().strength(3.0, 6.0), {
facing: FacingCardinal::North,
half: Half::Lower,
hinge: Hinge::Left,
- open: false,
- powered: false,
+ open: Open(false),
+ powered: Powered(false),
},
- weathered_copper_door => BlockBehavior::new().requires_correct_tool_for_drops().strength(3.0, 3.0), {
+ weathered_copper_door => BlockBehavior::new().requires_correct_tool_for_drops().strength(3.0, 6.0), {
facing: FacingCardinal::North,
half: Half::Lower,
hinge: Hinge::Left,
- open: false,
- powered: false,
+ open: Open(false),
+ powered: Powered(false),
},
- waxed_copper_door => BlockBehavior::new().requires_correct_tool_for_drops().strength(3.0, 3.0), {
+ waxed_copper_door => BlockBehavior::new().requires_correct_tool_for_drops().strength(3.0, 6.0), {
facing: FacingCardinal::North,
half: Half::Lower,
hinge: Hinge::Left,
- open: false,
- powered: false,
+ open: Open(false),
+ powered: Powered(false),
},
- waxed_exposed_copper_door => BlockBehavior::new().requires_correct_tool_for_drops().strength(3.0, 3.0), {
+ waxed_exposed_copper_door => BlockBehavior::new().requires_correct_tool_for_drops().strength(3.0, 6.0), {
facing: FacingCardinal::North,
half: Half::Lower,
hinge: Hinge::Left,
- open: false,
- powered: false,
+ open: Open(false),
+ powered: Powered(false),
},
- waxed_oxidized_copper_door => BlockBehavior::new().requires_correct_tool_for_drops().strength(3.0, 3.0), {
+ waxed_oxidized_copper_door => BlockBehavior::new().requires_correct_tool_for_drops().strength(3.0, 6.0), {
facing: FacingCardinal::North,
half: Half::Lower,
hinge: Hinge::Left,
- open: false,
- powered: false,
+ open: Open(false),
+ powered: Powered(false),
},
- waxed_weathered_copper_door => BlockBehavior::new().requires_correct_tool_for_drops().strength(3.0, 3.0), {
+ waxed_weathered_copper_door => BlockBehavior::new().requires_correct_tool_for_drops().strength(3.0, 6.0), {
facing: FacingCardinal::North,
half: Half::Lower,
hinge: Hinge::Left,
- open: false,
- powered: false,
+ open: Open(false),
+ powered: Powered(false),
},
- copper_trapdoor => BlockBehavior::new().requires_correct_tool_for_drops().strength(3.0, 3.0), {
+ copper_trapdoor => BlockBehavior::new().requires_correct_tool_for_drops().strength(3.0, 6.0), {
facing: FacingCardinal::North,
half: TopBottom::Bottom,
- open: false,
- powered: false,
- waterlogged: false,
+ open: Open(false),
+ powered: Powered(false),
+ waterlogged: Waterlogged(false),
},
- exposed_copper_trapdoor => BlockBehavior::new().requires_correct_tool_for_drops().strength(3.0, 3.0), {
+ exposed_copper_trapdoor => BlockBehavior::new().requires_correct_tool_for_drops().strength(3.0, 6.0), {
facing: FacingCardinal::North,
half: TopBottom::Bottom,
- open: false,
- powered: false,
- waterlogged: false,
+ open: Open(false),
+ powered: Powered(false),
+ waterlogged: Waterlogged(false),
},
- oxidized_copper_trapdoor => BlockBehavior::new().requires_correct_tool_for_drops().strength(3.0, 3.0), {
+ oxidized_copper_trapdoor => BlockBehavior::new().requires_correct_tool_for_drops().strength(3.0, 6.0), {
facing: FacingCardinal::North,
half: TopBottom::Bottom,
- open: false,
- powered: false,
- waterlogged: false,
+ open: Open(false),
+ powered: Powered(false),
+ waterlogged: Waterlogged(false),
},
- weathered_copper_trapdoor => BlockBehavior::new().requires_correct_tool_for_drops().strength(3.0, 3.0), {
+ weathered_copper_trapdoor => BlockBehavior::new().requires_correct_tool_for_drops().strength(3.0, 6.0), {
facing: FacingCardinal::North,
half: TopBottom::Bottom,
- open: false,
- powered: false,
- waterlogged: false,
+ open: Open(false),
+ powered: Powered(false),
+ waterlogged: Waterlogged(false),
},
- waxed_copper_trapdoor => BlockBehavior::new().requires_correct_tool_for_drops().strength(3.0, 3.0), {
+ waxed_copper_trapdoor => BlockBehavior::new().requires_correct_tool_for_drops().strength(3.0, 6.0), {
facing: FacingCardinal::North,
half: TopBottom::Bottom,
- open: false,
- powered: false,
- waterlogged: false,
+ open: Open(false),
+ powered: Powered(false),
+ waterlogged: Waterlogged(false),
},
- waxed_exposed_copper_trapdoor => BlockBehavior::new().requires_correct_tool_for_drops().strength(3.0, 3.0), {
+ waxed_exposed_copper_trapdoor => BlockBehavior::new().requires_correct_tool_for_drops().strength(3.0, 6.0), {
facing: FacingCardinal::North,
half: TopBottom::Bottom,
- open: false,
- powered: false,
- waterlogged: false,
+ open: Open(false),
+ powered: Powered(false),
+ waterlogged: Waterlogged(false),
},
- waxed_oxidized_copper_trapdoor => BlockBehavior::new().requires_correct_tool_for_drops().strength(3.0, 3.0), {
+ waxed_oxidized_copper_trapdoor => BlockBehavior::new().requires_correct_tool_for_drops().strength(3.0, 6.0), {
facing: FacingCardinal::North,
half: TopBottom::Bottom,
- open: false,
- powered: false,
- waterlogged: false,
+ open: Open(false),
+ powered: Powered(false),
+ waterlogged: Waterlogged(false),
},
- waxed_weathered_copper_trapdoor => BlockBehavior::new().requires_correct_tool_for_drops().strength(3.0, 3.0), {
+ waxed_weathered_copper_trapdoor => BlockBehavior::new().requires_correct_tool_for_drops().strength(3.0, 6.0), {
facing: FacingCardinal::North,
half: TopBottom::Bottom,
- open: false,
- powered: false,
- waterlogged: false,
+ open: Open(false),
+ powered: Powered(false),
+ waterlogged: Waterlogged(false),
},
copper_grate => BlockBehavior::new().requires_correct_tool_for_drops().strength(3.0, 6.0), {
- waterlogged: false,
+ waterlogged: Waterlogged(false),
},
exposed_copper_grate => BlockBehavior::new().requires_correct_tool_for_drops().strength(3.0, 6.0), {
- waterlogged: false,
+ waterlogged: Waterlogged(false),
},
weathered_copper_grate => BlockBehavior::new().requires_correct_tool_for_drops().strength(3.0, 6.0), {
- waterlogged: false,
+ waterlogged: Waterlogged(false),
},
oxidized_copper_grate => BlockBehavior::new().requires_correct_tool_for_drops().strength(3.0, 6.0), {
- waterlogged: false,
+ waterlogged: Waterlogged(false),
},
waxed_copper_grate => BlockBehavior::new().requires_correct_tool_for_drops().strength(3.0, 6.0), {
- waterlogged: false,
+ waterlogged: Waterlogged(false),
},
waxed_exposed_copper_grate => BlockBehavior::new().requires_correct_tool_for_drops().strength(3.0, 6.0), {
- waterlogged: false,
+ waterlogged: Waterlogged(false),
},
waxed_weathered_copper_grate => BlockBehavior::new().requires_correct_tool_for_drops().strength(3.0, 6.0), {
- waterlogged: false,
+ waterlogged: Waterlogged(false),
},
waxed_oxidized_copper_grate => BlockBehavior::new().requires_correct_tool_for_drops().strength(3.0, 6.0), {
- waterlogged: false,
+ waterlogged: Waterlogged(false),
},
copper_bulb => BlockBehavior::new().requires_correct_tool_for_drops().strength(3.0, 6.0), {
- lit: false,
- powered: false,
+ lit: Lit(false),
+ powered: Powered(false),
},
exposed_copper_bulb => BlockBehavior::new().requires_correct_tool_for_drops().strength(3.0, 6.0), {
- lit: false,
- powered: false,
+ lit: Lit(false),
+ powered: Powered(false),
},
weathered_copper_bulb => BlockBehavior::new().requires_correct_tool_for_drops().strength(3.0, 6.0), {
- lit: false,
- powered: false,
+ lit: Lit(false),
+ powered: Powered(false),
},
oxidized_copper_bulb => BlockBehavior::new().requires_correct_tool_for_drops().strength(3.0, 6.0), {
- lit: false,
- powered: false,
+ lit: Lit(false),
+ powered: Powered(false),
},
waxed_copper_bulb => BlockBehavior::new().requires_correct_tool_for_drops().strength(3.0, 6.0), {
- lit: false,
- powered: false,
+ lit: Lit(false),
+ powered: Powered(false),
},
waxed_exposed_copper_bulb => BlockBehavior::new().requires_correct_tool_for_drops().strength(3.0, 6.0), {
- lit: false,
- powered: false,
+ lit: Lit(false),
+ powered: Powered(false),
},
waxed_weathered_copper_bulb => BlockBehavior::new().requires_correct_tool_for_drops().strength(3.0, 6.0), {
- lit: false,
- powered: false,
+ lit: Lit(false),
+ powered: Powered(false),
},
waxed_oxidized_copper_bulb => BlockBehavior::new().requires_correct_tool_for_drops().strength(3.0, 6.0), {
- lit: false,
- powered: false,
+ lit: Lit(false),
+ powered: Powered(false),
},
lightning_rod => BlockBehavior::new().requires_correct_tool_for_drops().strength(3.0, 6.0), {
facing: FacingCubic::Up,
- powered: false,
- waterlogged: false,
+ powered: Powered(false),
+ waterlogged: Waterlogged(false),
},
pointed_dripstone => BlockBehavior::new().strength(1.5, 3.0), {
thickness: Thickness::Tip,
vertical_direction: TipDirection::Up,
- waterlogged: false,
+ waterlogged: Waterlogged(false),
},
dripstone_block => BlockBehavior::new().requires_correct_tool_for_drops().strength(1.5, 1.0), {},
cave_vines => BlockBehavior::new(), {
age: CaveVinesAge::_0,
- berries: false,
+ berries: Berries(false),
},
cave_vines_plant => BlockBehavior::new(), {
- berries: false,
+ berries: Berries(false),
},
spore_blossom => BlockBehavior::new(), {},
azalea => BlockBehavior::new(), {},
@@ -5253,19 +5247,19 @@ make_block_states! {
big_dripleaf => BlockBehavior::new().strength(0.1, 0.1), {
facing: FacingCardinal::North,
tilt: Tilt::None,
- waterlogged: false,
+ waterlogged: Waterlogged(false),
},
big_dripleaf_stem => BlockBehavior::new().strength(0.1, 0.1), {
facing: FacingCardinal::North,
- waterlogged: false,
+ waterlogged: Waterlogged(false),
},
small_dripleaf => BlockBehavior::new(), {
facing: FacingCardinal::North,
half: Half::Lower,
- waterlogged: false,
+ waterlogged: Waterlogged(false),
},
hanging_roots => BlockBehavior::new(), {
- waterlogged: false,
+ waterlogged: Waterlogged(false),
},
rooted_dirt => BlockBehavior::new().strength(0.5, 0.5), {},
mud => BlockBehavior::new().strength(0.5, 0.5), {},
@@ -5277,18 +5271,18 @@ make_block_states! {
facing: FacingCardinal::North,
half: TopBottom::Bottom,
shape: StairShape::Straight,
- waterlogged: false,
+ waterlogged: Waterlogged(false),
},
cobbled_deepslate_slab => BlockBehavior::new().requires_correct_tool_for_drops().strength(3.5, 6.0), {
kind: Type::Bottom,
- waterlogged: false,
+ waterlogged: Waterlogged(false),
},
cobbled_deepslate_wall => BlockBehavior::new().requires_correct_tool_for_drops().strength(3.5, 6.0), {
east: EastWall::None,
north: NorthWall::None,
south: SouthWall::None,
- up: true,
- waterlogged: false,
+ up: Up(true),
+ waterlogged: Waterlogged(false),
west: WestWall::None,
},
polished_deepslate => BlockBehavior::new().requires_correct_tool_for_drops().strength(3.5, 6.0), {},
@@ -5296,18 +5290,18 @@ make_block_states! {
facing: FacingCardinal::North,
half: TopBottom::Bottom,
shape: StairShape::Straight,
- waterlogged: false,
+ waterlogged: Waterlogged(false),
},
polished_deepslate_slab => BlockBehavior::new().requires_correct_tool_for_drops().strength(3.5, 6.0), {
kind: Type::Bottom,
- waterlogged: false,
+ waterlogged: Waterlogged(false),
},
polished_deepslate_wall => BlockBehavior::new().requires_correct_tool_for_drops().strength(3.5, 6.0), {
east: EastWall::None,
north: NorthWall::None,
south: SouthWall::None,
- up: true,
- waterlogged: false,
+ up: Up(true),
+ waterlogged: Waterlogged(false),
west: WestWall::None,
},
deepslate_tiles => BlockBehavior::new().requires_correct_tool_for_drops().strength(3.5, 6.0), {},
@@ -5315,18 +5309,18 @@ make_block_states! {
facing: FacingCardinal::North,
half: TopBottom::Bottom,
shape: StairShape::Straight,
- waterlogged: false,
+ waterlogged: Waterlogged(false),
},
deepslate_tile_slab => BlockBehavior::new().requires_correct_tool_for_drops().strength(3.5, 6.0), {
kind: Type::Bottom,
- waterlogged: false,
+ waterlogged: Waterlogged(false),
},
deepslate_tile_wall => BlockBehavior::new().requires_correct_tool_for_drops().strength(3.5, 6.0), {
east: EastWall::None,
north: NorthWall::None,
south: SouthWall::None,
- up: true,
- waterlogged: false,
+ up: Up(true),
+ waterlogged: Waterlogged(false),
west: WestWall::None,
},
deepslate_bricks => BlockBehavior::new().requires_correct_tool_for_drops().strength(3.5, 6.0), {},
@@ -5334,18 +5328,18 @@ make_block_states! {
facing: FacingCardinal::North,
half: TopBottom::Bottom,
shape: StairShape::Straight,
- waterlogged: false,
+ waterlogged: Waterlogged(false),
},
deepslate_brick_slab => BlockBehavior::new().requires_correct_tool_for_drops().strength(3.5, 6.0), {
kind: Type::Bottom,
- waterlogged: false,
+ waterlogged: Waterlogged(false),
},
deepslate_brick_wall => BlockBehavior::new().requires_correct_tool_for_drops().strength(3.5, 6.0), {
east: EastWall::None,
north: NorthWall::None,
south: SouthWall::None,
- up: true,
- waterlogged: false,
+ up: Up(true),
+ waterlogged: Waterlogged(false),
west: WestWall::None,
},
chiseled_deepslate => BlockBehavior::new().requires_correct_tool_for_drops().strength(3.5, 6.0), {},
@@ -5372,14 +5366,14 @@ make_block_states! {
frogspawn => BlockBehavior::new(), {},
reinforced_deepslate => BlockBehavior::new().strength(55.0, 1200.0), {},
decorated_pot => BlockBehavior::new(), {
- cracked: false,
+ cracked: Cracked(false),
facing: FacingCardinal::North,
- waterlogged: false,
+ waterlogged: Waterlogged(false),
},
crafter => BlockBehavior::new().strength(1.5, 3.5), {
- crafting: false,
+ crafting: Crafting(false),
orientation: Orientation::NorthUp,
- triggered: false,
+ triggered: Triggered(false),
},
trial_spawner => BlockBehavior::new().requires_correct_tool_for_drops().strength(50.0, 50.0), {
trial_spawner_state: State::Inactive,
diff --git a/codegen/lib/code/blocks.py b/codegen/lib/code/blocks.py
index 3af19fa8..f96b1116 100755
--- a/codegen/lib/code/blocks.py
+++ b/codegen/lib/code/blocks.py
@@ -71,9 +71,9 @@ def generate_blocks(blocks_burger: dict, blocks_report: dict, pixlyzer_block_dat
# },
property_name = property_struct_names_to_names[property_struct_name]
- # if the only variants are true and false, we can just make it a normal boolean
+ # if the only variants are true and false, we make it unit struct with a boolean instead of an enum
if property_variants == ['true', 'false']:
- property_shape_code = 'bool'
+ property_shape_code = f'{property_struct_name}(bool)'
else:
property_shape_code = f'{property_struct_name} {{\n'
for variant in property_variants:
@@ -119,7 +119,7 @@ def generate_blocks(blocks_burger: dict, blocks_report: dict, pixlyzer_block_dat
if is_boolean_property:
# if it's a boolean, keep the type lowercase
# (so it's either `true` or `false`)
- property_default_type = property_default
+ property_default_type = f'{property_struct_name}({property_default})'
else:
property_default_type = f'{property_struct_name}::{to_camel_case(property_default)}'
@@ -208,6 +208,10 @@ def get_property_struct_name(property: Optional[dict], block_data_burger: dict,
if property is None:
return ''.join(map(to_camel_case, property_variants))
+ if property_variants == ['true', 'false']:
+ # booleans are weird, so just return the string name minecraft uses
+ return to_camel_case(property['name'])
+
for class_name in [block_data_burger['class']] + block_data_burger['super']:
property_name = mappings.get_field(
class_name, property['field_name'])