aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Cargo.lock42
-rwxr-xr-xREADME.md2
-rw-r--r--azalea-auth/Cargo.toml2
-rw-r--r--azalea-block/Cargo.toml2
-rw-r--r--azalea-block/azalea-block-macros/Cargo.toml2
-rwxr-xr-xazalea-block/src/generated.rs94
-rw-r--r--azalea-brigadier/Cargo.toml2
-rw-r--r--azalea-buf/Cargo.toml2
-rw-r--r--azalea-buf/azalea-buf-macros/Cargo.toml2
-rw-r--r--azalea-chat/Cargo.toml2
-rw-r--r--azalea-client/Cargo.toml2
-rw-r--r--azalea-core/Cargo.toml2
-rw-r--r--azalea-crypto/Cargo.toml2
-rw-r--r--azalea-entity/Cargo.toml2
-rw-r--r--azalea-entity/src/metadata.rs107
-rwxr-xr-xazalea-entity/src/particle.rs1
-rw-r--r--azalea-inventory/Cargo.toml2
-rw-r--r--azalea-inventory/azalea-inventory-macros/Cargo.toml2
-rw-r--r--azalea-language/Cargo.toml2
-rwxr-xr-xazalea-language/src/en_us.json42
-rw-r--r--azalea-physics/Cargo.toml2
-rw-r--r--azalea-physics/src/collision/blocks.rs641
-rw-r--r--azalea-protocol/Cargo.toml2
-rw-r--r--azalea-protocol/azalea-protocol-macros/Cargo.toml2
-rwxr-xr-xazalea-protocol/src/packets/game/c_level_particles.rs10
-rwxr-xr-xazalea-protocol/src/packets/game/mod.rs4
-rwxr-xr-xazalea-protocol/src/packets/game/s_pick_item_from_block.rs (renamed from azalea-protocol/src/packets/game/s_pick_item.rs)2
-rwxr-xr-xazalea-protocol/src/packets/mod.rs4
-rwxr-xr-xazalea-protocol/src/read.rs2
-rw-r--r--azalea-registry/Cargo.toml2
-rw-r--r--azalea-registry/azalea-registry-macros/Cargo.toml2
-rwxr-xr-xazalea-registry/src/lib.rs42
-rw-r--r--azalea-registry/src/tags/blocks.rs239
-rw-r--r--azalea-registry/src/tags/items.rs147
-rw-r--r--azalea-world/Cargo.toml2
-rw-r--r--azalea/Cargo.toml2
36 files changed, 822 insertions, 599 deletions
diff --git a/Cargo.lock b/Cargo.lock
index f7243fd5..7240bb30 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -190,7 +190,7 @@ checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26"
[[package]]
name = "azalea"
-version = "0.10.3+mc1.21.3"
+version = "0.10.3+mc1.21.4-rc1"
dependencies = [
"anyhow",
"azalea-auth",
@@ -229,7 +229,7 @@ dependencies = [
[[package]]
name = "azalea-auth"
-version = "0.10.3+mc1.21.3"
+version = "0.10.3+mc1.21.4-rc1"
dependencies = [
"azalea-buf",
"azalea-crypto",
@@ -249,7 +249,7 @@ dependencies = [
[[package]]
name = "azalea-block"
-version = "0.10.3+mc1.21.3"
+version = "0.10.3+mc1.21.4-rc1"
dependencies = [
"azalea-block-macros",
"azalea-buf",
@@ -258,7 +258,7 @@ dependencies = [
[[package]]
name = "azalea-block-macros"
-version = "0.10.3+mc1.21.3"
+version = "0.10.3+mc1.21.4-rc1"
dependencies = [
"proc-macro2",
"quote",
@@ -267,7 +267,7 @@ dependencies = [
[[package]]
name = "azalea-brigadier"
-version = "0.10.3+mc1.21.3"
+version = "0.10.3+mc1.21.4-rc1"
dependencies = [
"azalea-buf",
"azalea-chat",
@@ -278,7 +278,7 @@ dependencies = [
[[package]]
name = "azalea-buf"
-version = "0.10.3+mc1.21.3"
+version = "0.10.3+mc1.21.4-rc1"
dependencies = [
"azalea-buf-macros",
"byteorder",
@@ -291,7 +291,7 @@ dependencies = [
[[package]]
name = "azalea-buf-macros"
-version = "0.10.3+mc1.21.3"
+version = "0.10.3+mc1.21.4-rc1"
dependencies = [
"proc-macro2",
"quote",
@@ -300,7 +300,7 @@ dependencies = [
[[package]]
name = "azalea-chat"
-version = "0.10.3+mc1.21.3"
+version = "0.10.3+mc1.21.4-rc1"
dependencies = [
"azalea-buf",
"azalea-language",
@@ -313,7 +313,7 @@ dependencies = [
[[package]]
name = "azalea-client"
-version = "0.10.3+mc1.21.3"
+version = "0.10.3+mc1.21.4-rc1"
dependencies = [
"anyhow",
"azalea-auth",
@@ -347,7 +347,7 @@ dependencies = [
[[package]]
name = "azalea-core"
-version = "0.10.3+mc1.21.3"
+version = "0.10.3+mc1.21.4-rc1"
dependencies = [
"azalea-buf",
"azalea-registry",
@@ -361,7 +361,7 @@ dependencies = [
[[package]]
name = "azalea-crypto"
-version = "0.10.3+mc1.21.3"
+version = "0.10.3+mc1.21.4-rc1"
dependencies = [
"aes",
"azalea-buf",
@@ -378,7 +378,7 @@ dependencies = [
[[package]]
name = "azalea-entity"
-version = "0.10.3+mc1.21.3"
+version = "0.10.3+mc1.21.4-rc1"
dependencies = [
"azalea-block",
"azalea-buf",
@@ -401,7 +401,7 @@ dependencies = [
[[package]]
name = "azalea-inventory"
-version = "0.10.3+mc1.21.3"
+version = "0.10.3+mc1.21.4-rc1"
dependencies = [
"azalea-buf",
"azalea-chat",
@@ -414,7 +414,7 @@ dependencies = [
[[package]]
name = "azalea-inventory-macros"
-version = "0.10.3+mc1.21.3"
+version = "0.10.3+mc1.21.4-rc1"
dependencies = [
"proc-macro2",
"quote",
@@ -423,7 +423,7 @@ dependencies = [
[[package]]
name = "azalea-language"
-version = "0.10.3+mc1.21.3"
+version = "0.10.3+mc1.21.4-rc1"
dependencies = [
"serde",
"serde_json",
@@ -431,7 +431,7 @@ dependencies = [
[[package]]
name = "azalea-physics"
-version = "0.10.3+mc1.21.3"
+version = "0.10.3+mc1.21.4-rc1"
dependencies = [
"azalea-block",
"azalea-core",
@@ -447,7 +447,7 @@ dependencies = [
[[package]]
name = "azalea-protocol"
-version = "0.10.3+mc1.21.3"
+version = "0.10.3+mc1.21.4-rc1"
dependencies = [
"anyhow",
"async-recursion",
@@ -484,7 +484,7 @@ dependencies = [
[[package]]
name = "azalea-protocol-macros"
-version = "0.10.3+mc1.21.3"
+version = "0.10.3+mc1.21.4-rc1"
dependencies = [
"proc-macro2",
"quote",
@@ -493,7 +493,7 @@ dependencies = [
[[package]]
name = "azalea-registry"
-version = "0.10.3+mc1.21.3"
+version = "0.10.3+mc1.21.4-rc1"
dependencies = [
"azalea-buf",
"azalea-registry-macros",
@@ -503,7 +503,7 @@ dependencies = [
[[package]]
name = "azalea-registry-macros"
-version = "0.10.3+mc1.21.3"
+version = "0.10.3+mc1.21.4-rc1"
dependencies = [
"quote",
"syn",
@@ -511,7 +511,7 @@ dependencies = [
[[package]]
name = "azalea-world"
-version = "0.10.3+mc1.21.3"
+version = "0.10.3+mc1.21.4-rc1"
dependencies = [
"azalea-block",
"azalea-buf",
diff --git a/README.md b/README.md
index a8d40905..bdb1e478 100755
--- a/README.md
+++ b/README.md
@@ -11,7 +11,7 @@ A collection of Rust crates for making Minecraft bots, clients, and tools.
<!-- The line below is automatically read and updated by the migrate script, so don't change it manually. -->
-_Currently supported Minecraft version: `1.21.3`._
+_Currently supported Minecraft version: `1.21.4`._
> [!WARNING]
> Azalea is still very unfinished, though most crates are in a somewhat useable state
diff --git a/azalea-auth/Cargo.toml b/azalea-auth/Cargo.toml
index ec39650c..3c83a515 100644
--- a/azalea-auth/Cargo.toml
+++ b/azalea-auth/Cargo.toml
@@ -4,7 +4,7 @@ edition = "2021"
license = "MIT"
name = "azalea-auth"
repository = "https://github.com/azalea-rs/azalea/tree/main/azalea-auth"
-version = "0.10.3+mc1.21.3"
+version = "0.10.3+mc1.21.4"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
diff --git a/azalea-block/Cargo.toml b/azalea-block/Cargo.toml
index 87e3a726..9f5bf967 100644
--- a/azalea-block/Cargo.toml
+++ b/azalea-block/Cargo.toml
@@ -4,7 +4,7 @@ edition = "2021"
license = "MIT"
name = "azalea-block"
repository = "https://github.com/azalea-rs/azalea/tree/main/azalea-block"
-version = "0.10.3+mc1.21.3"
+version = "0.10.3+mc1.21.4"
[lib]
diff --git a/azalea-block/azalea-block-macros/Cargo.toml b/azalea-block/azalea-block-macros/Cargo.toml
index 70adb167..46c60d1d 100644
--- a/azalea-block/azalea-block-macros/Cargo.toml
+++ b/azalea-block/azalea-block-macros/Cargo.toml
@@ -4,7 +4,7 @@ edition = "2021"
license = "MIT"
name = "azalea-block-macros"
repository = "https://github.com/azalea-rs/azalea/tree/main/azalea-block/azalea-block-macros"
-version = "0.10.3+mc1.21.3"
+version = "0.10.3+mc1.21.4"
[lib]
proc-macro = true
diff --git a/azalea-block/src/generated.rs b/azalea-block/src/generated.rs
index 00f1299f..de360550 100755
--- a/azalea-block/src/generated.rs
+++ b/azalea-block/src/generated.rs
@@ -326,11 +326,8 @@ make_block_states! {
"south" => South(bool),
"up" => Up(bool),
"west" => West(bool),
- "creaking" => Creaking {
- Disabled,
- Dormant,
- Active,
- },
+ "active" => Active(bool),
+ "natural" => Natural(bool),
"half" => TopBottom {
Top,
Bottom,
@@ -914,6 +911,31 @@ make_block_states! {
_7,
},
"in_wall" => InWall(bool),
+ "type" => Type {
+ Top,
+ Bottom,
+ Double,
+ },
+ "east" => WallEast {
+ None,
+ Low,
+ Tall,
+ },
+ "north" => WallNorth {
+ None,
+ Low,
+ Tall,
+ },
+ "south" => WallSouth {
+ None,
+ Low,
+ Tall,
+ },
+ "west" => WallWest {
+ None,
+ Low,
+ Tall,
+ },
"age" => NetherWartAge {
_0,
_1,
@@ -941,26 +963,6 @@ make_block_states! {
},
"disarmed" => Disarmed(bool),
"conditional" => Conditional(bool),
- "east" => WallEast {
- None,
- Low,
- Tall,
- },
- "north" => WallNorth {
- None,
- Low,
- Tall,
- },
- "south" => WallSouth {
- None,
- Low,
- Tall,
- },
- "west" => WallWest {
- None,
- Low,
- Tall,
- },
"age" => CarrotsAge {
_0,
_1,
@@ -1192,11 +1194,6 @@ make_block_states! {
_14,
_15,
},
- "type" => Type {
- Top,
- Bottom,
- Double,
- },
"rotation" => WhiteBannerRotation {
_0,
_1,
@@ -2441,8 +2438,9 @@ make_block_states! {
soul_fire => BlockBehavior::new(), {},
spawner => BlockBehavior::new().requires_correct_tool_for_drops().strength(5.0, 5.0), {},
creaking_heart => BlockBehavior::new(), {
+ "active": Active(false),
"axis": Axis::Y,
- "creaking": Creaking::Disabled,
+ "natural": Natural(false),
},
oak_stairs => BlockBehavior::new().strength(2.0, 3.0), {
"facing": FacingCardinal::North,
@@ -2972,6 +2970,15 @@ make_block_states! {
"waterlogged": Waterlogged(false),
"west": West(false),
},
+ resin_clump => BlockBehavior::new(), {
+ "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": InWall(false),
@@ -3000,6 +3007,27 @@ make_block_states! {
"snowy": Snowy(false),
},
lily_pad => BlockBehavior::new(), {},
+ resin_block => BlockBehavior::new(), {},
+ resin_bricks => BlockBehavior::new(), {},
+ resin_brick_stairs => BlockBehavior::new(), {
+ "facing": FacingCardinal::North,
+ "half": TopBottom::Bottom,
+ "shape": StairShape::Straight,
+ "waterlogged": Waterlogged(false),
+ },
+ resin_brick_slab => BlockBehavior::new(), {
+ "type": Type::Bottom,
+ "waterlogged": Waterlogged(false),
+ },
+ resin_brick_wall => BlockBehavior::new(), {
+ "east": WallEast::None,
+ "north": WallNorth::None,
+ "south": WallSouth::None,
+ "up": Up(true),
+ "waterlogged": Waterlogged(false),
+ "west": WallWest::None,
+ },
+ chiseled_resin_bricks => 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": East(false),
@@ -5546,5 +5574,9 @@ make_block_states! {
pale_hanging_moss => BlockBehavior::new(), {
"tip": Tip(true),
},
+ open_eyeblossom => BlockBehavior::new(), {},
+ closed_eyeblossom => BlockBehavior::new(), {},
+ potted_open_eyeblossom => BlockBehavior::new(), {},
+ potted_closed_eyeblossom => BlockBehavior::new(), {},
}
}
diff --git a/azalea-brigadier/Cargo.toml b/azalea-brigadier/Cargo.toml
index 2b5bddcc..12efd0fd 100644
--- a/azalea-brigadier/Cargo.toml
+++ b/azalea-brigadier/Cargo.toml
@@ -4,7 +4,7 @@ edition = "2021"
license = "MIT"
name = "azalea-brigadier"
repository = "https://github.com/azalea-rs/azalea/tree/main/azalea-brigadier"
-version = "0.10.3+mc1.21.3"
+version = "0.10.3+mc1.21.4"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
diff --git a/azalea-buf/Cargo.toml b/azalea-buf/Cargo.toml
index 3c8572c8..992f379c 100644
--- a/azalea-buf/Cargo.toml
+++ b/azalea-buf/Cargo.toml
@@ -4,7 +4,7 @@ edition = "2021"
license = "MIT"
name = "azalea-buf"
repository = "https://github.com/azalea-rs/azalea/tree/main/azalea-buf"
-version = "0.10.3+mc1.21.3"
+version = "0.10.3+mc1.21.4"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
diff --git a/azalea-buf/azalea-buf-macros/Cargo.toml b/azalea-buf/azalea-buf-macros/Cargo.toml
index 8920d035..ade60dae 100644
--- a/azalea-buf/azalea-buf-macros/Cargo.toml
+++ b/azalea-buf/azalea-buf-macros/Cargo.toml
@@ -4,7 +4,7 @@ edition = "2021"
license = "MIT"
name = "azalea-buf-macros"
repository = "https://github.com/azalea-rs/azalea/tree/main/azalea-buf"
-version = "0.10.3+mc1.21.3"
+version = "0.10.3+mc1.21.4"
[lib]
proc-macro = true
diff --git a/azalea-chat/Cargo.toml b/azalea-chat/Cargo.toml
index b4f38ac3..75429939 100644
--- a/azalea-chat/Cargo.toml
+++ b/azalea-chat/Cargo.toml
@@ -4,7 +4,7 @@ edition = "2021"
license = "MIT"
name = "azalea-chat"
repository = "https://github.com/azalea-rs/azalea/tree/main/azalea-chat"
-version = "0.10.3+mc1.21.3"
+version = "0.10.3+mc1.21.4"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
diff --git a/azalea-client/Cargo.toml b/azalea-client/Cargo.toml
index 3746a076..01001dfa 100644
--- a/azalea-client/Cargo.toml
+++ b/azalea-client/Cargo.toml
@@ -4,7 +4,7 @@ edition = "2021"
license = "MIT"
name = "azalea-client"
repository = "https://github.com/azalea-rs/azalea/tree/main/azalea-client"
-version = "0.10.3+mc1.21.3"
+version = "0.10.3+mc1.21.4"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
diff --git a/azalea-core/Cargo.toml b/azalea-core/Cargo.toml
index ddde6216..8f9674d0 100644
--- a/azalea-core/Cargo.toml
+++ b/azalea-core/Cargo.toml
@@ -4,7 +4,7 @@ edition = "2021"
license = "MIT"
name = "azalea-core"
repository = "https://github.com/azalea-rs/azalea/tree/main/azalea-core"
-version = "0.10.3+mc1.21.3"
+version = "0.10.3+mc1.21.4"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
diff --git a/azalea-crypto/Cargo.toml b/azalea-crypto/Cargo.toml
index a9c6b254..4243ac44 100644
--- a/azalea-crypto/Cargo.toml
+++ b/azalea-crypto/Cargo.toml
@@ -3,7 +3,7 @@ description = "Cryptography features used in Minecraft."
edition = "2021"
license = "MIT"
name = "azalea-crypto"
-version = "0.10.3+mc1.21.3"
+version = "0.10.3+mc1.21.4"
repository = "https://github.com/azalea-rs/azalea/tree/main/azalea-crypto"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
diff --git a/azalea-entity/Cargo.toml b/azalea-entity/Cargo.toml
index 14068d20..2508e092 100644
--- a/azalea-entity/Cargo.toml
+++ b/azalea-entity/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "azalea-entity"
-version = "0.10.3+mc1.21.3"
+version = "0.10.3+mc1.21.4"
edition = "2021"
description = "Things related to Minecraft entities used by Azalea"
repository = "https://github.com/azalea-rs/azalea/tree/main/azalea-entity"
diff --git a/azalea-entity/src/metadata.rs b/azalea-entity/src/metadata.rs
index 4054bfb3..a70d853d 100644
--- a/azalea-entity/src/metadata.rs
+++ b/azalea-entity/src/metadata.rs
@@ -2564,6 +2564,10 @@ impl Default for CowMetadataBundle {
pub struct CanMove(pub bool);
#[derive(Component, Deref, DerefMut, Clone)]
pub struct IsActive(pub bool);
+#[derive(Component, Deref, DerefMut, Clone)]
+pub struct IsTearingDown(pub bool);
+#[derive(Component, Deref, DerefMut, Clone)]
+pub struct CreakingHomePos(pub Option<BlockPos>);
#[derive(Component)]
pub struct Creaking;
impl Creaking {
@@ -2579,6 +2583,12 @@ impl Creaking {
17 => {
entity.insert(IsActive(d.value.into_boolean()?));
}
+ 18 => {
+ entity.insert(IsTearingDown(d.value.into_boolean()?));
+ }
+ 19 => {
+ entity.insert(CreakingHomePos(d.value.into_optional_block_pos()?));
+ }
_ => {}
}
Ok(())
@@ -2591,6 +2601,8 @@ pub struct CreakingMetadataBundle {
parent: AbstractMonsterMetadataBundle,
can_move: CanMove,
is_active: IsActive,
+ is_tearing_down: IsTearingDown,
+ creaking_home_pos: CreakingHomePos,
}
impl Default for CreakingMetadataBundle {
fn default() -> Self {
@@ -2638,79 +2650,8 @@ impl Default for CreakingMetadataBundle {
},
can_move: CanMove(true),
is_active: IsActive(false),
- }
- }
-}
-
-#[derive(Component)]
-pub struct CreakingTransient;
-impl CreakingTransient {
- pub fn apply_metadata(
- entity: &mut bevy_ecs::system::EntityCommands,
- d: EntityDataItem,
- ) -> Result<(), UpdateMetadataError> {
- match d.index {
- 0..=17 => Creaking::apply_metadata(entity, d)?,
- _ => {}
- }
- Ok(())
- }
-}
-
-#[derive(Bundle)]
-pub struct CreakingTransientMetadataBundle {
- _marker: CreakingTransient,
- parent: CreakingMetadataBundle,
-}
-impl Default for CreakingTransientMetadataBundle {
- fn default() -> Self {
- Self {
- _marker: CreakingTransient,
- parent: CreakingMetadataBundle {
- _marker: Creaking,
- parent: AbstractMonsterMetadataBundle {
- _marker: AbstractMonster,
- parent: AbstractCreatureMetadataBundle {
- _marker: AbstractCreature,
- parent: AbstractInsentientMetadataBundle {
- _marker: AbstractInsentient,
- parent: AbstractLivingMetadataBundle {
- _marker: AbstractLiving,
- parent: AbstractEntityMetadataBundle {
- _marker: AbstractEntity,
- on_fire: OnFire(false),
- shift_key_down: ShiftKeyDown(false),
- sprinting: Sprinting(false),
- swimming: Swimming(false),
- currently_glowing: CurrentlyGlowing(false),
- invisible: Invisible(false),
- fall_flying: FallFlying(false),
- air_supply: AirSupply(Default::default()),
- custom_name: CustomName(Default::default()),
- custom_name_visible: CustomNameVisible(Default::default()),
- silent: Silent(Default::default()),
- no_gravity: NoGravity(Default::default()),
- pose: Pose::default(),
- ticks_frozen: TicksFrozen(Default::default()),
- },
- auto_spin_attack: AutoSpinAttack(false),
- abstract_living_using_item: AbstractLivingUsingItem(false),
- health: Health(1.0),
- effect_particles: EffectParticles(Default::default()),
- effect_ambience: EffectAmbience(false),
- arrow_count: ArrowCount(0),
- stinger_count: StingerCount(0),
- sleeping_pos: SleepingPos(None),
- },
- no_ai: NoAi(false),
- left_handed: LeftHanded(false),
- aggressive: Aggressive(false),
- },
- },
- },
- can_move: CanMove(true),
- is_active: IsActive(false),
- },
+ is_tearing_down: IsTearingDown(false),
+ creaking_home_pos: CreakingHomePos(None),
}
}
}
@@ -8398,7 +8339,7 @@ impl Default for RavagerMetadataBundle {
#[derive(Component, Deref, DerefMut, Clone)]
pub struct SalmonFromBucket(pub bool);
#[derive(Component, Deref, DerefMut, Clone)]
-pub struct SalmonKind(pub String);
+pub struct SalmonKind(pub i32);
#[derive(Component)]
pub struct Salmon;
impl Salmon {
@@ -8412,7 +8353,7 @@ impl Salmon {
entity.insert(SalmonFromBucket(d.value.into_boolean()?));
}
17 => {
- entity.insert(SalmonKind(d.value.into_string()?));
+ entity.insert(SalmonKind(d.value.into_int()?));
}
_ => {}
}
@@ -10509,7 +10450,7 @@ impl Default for TropicalFishMetadataBundle {
}
#[derive(Component, Deref, DerefMut, Clone)]
-pub struct HomePos(pub BlockPos);
+pub struct TurtleHomePos(pub BlockPos);
#[derive(Component, Deref, DerefMut, Clone)]
pub struct HasEgg(pub bool);
#[derive(Component, Deref, DerefMut, Clone)]
@@ -10530,7 +10471,7 @@ impl Turtle {
match d.index {
0..=16 => AbstractAnimal::apply_metadata(entity, d)?,
17 => {
- entity.insert(HomePos(d.value.into_block_pos()?));
+ entity.insert(TurtleHomePos(d.value.into_block_pos()?));
}
18 => {
entity.insert(HasEgg(d.value.into_boolean()?));
@@ -10557,7 +10498,7 @@ impl Turtle {
pub struct TurtleMetadataBundle {
_marker: Turtle,
parent: AbstractAnimalMetadataBundle,
- home_pos: HomePos,
+ turtle_home_pos: TurtleHomePos,
has_egg: HasEgg,
laying_egg: LayingEgg,
travel_pos: TravelPos,
@@ -10612,7 +10553,7 @@ impl Default for TurtleMetadataBundle {
abstract_ageable_baby: AbstractAgeableBaby(false),
},
},
- home_pos: HomePos(BlockPos::new(0, 0, 0)),
+ turtle_home_pos: TurtleHomePos(BlockPos::new(0, 0, 0)),
has_egg: HasEgg(false),
laying_egg: LayingEgg(false),
travel_pos: TravelPos(BlockPos::new(0, 0, 0)),
@@ -12703,11 +12644,6 @@ pub fn apply_metadata(
Creaking::apply_metadata(entity, d)?;
}
}
- azalea_registry::EntityKind::CreakingTransient => {
- for d in items {
- CreakingTransient::apply_metadata(entity, d)?;
- }
- }
azalea_registry::EntityKind::Creeper => {
for d in items {
Creeper::apply_metadata(entity, d)?;
@@ -13402,9 +13338,6 @@ pub fn apply_default_metadata(
azalea_registry::EntityKind::Creaking => {
entity.insert(CreakingMetadataBundle::default());
}
- azalea_registry::EntityKind::CreakingTransient => {
- entity.insert(CreakingTransientMetadataBundle::default());
- }
azalea_registry::EntityKind::Creeper => {
entity.insert(CreeperMetadataBundle::default());
}
diff --git a/azalea-entity/src/particle.rs b/azalea-entity/src/particle.rs
index fa948f85..76559e58 100755
--- a/azalea-entity/src/particle.rs
+++ b/azalea-entity/src/particle.rs
@@ -163,6 +163,7 @@ impl From<ParticleKind> for Particle {
ParticleKind::Fishing => Self::Fishing,
ParticleKind::Flame => Self::Flame,
ParticleKind::CherryLeaves => Self::CherryLeaves,
+ ParticleKind::PaleOakLeaves => Self::PaleOakLeaves,
ParticleKind::SculkSoul => Self::SculkSoul,
ParticleKind::SculkCharge => Self::SculkCharge(SculkChargeParticle::default()),
ParticleKind::SculkChargePop => Self::SculkChargePop,
diff --git a/azalea-inventory/Cargo.toml b/azalea-inventory/Cargo.toml
index 5633c6dd..2c1b6fc2 100644
--- a/azalea-inventory/Cargo.toml
+++ b/azalea-inventory/Cargo.toml
@@ -4,7 +4,7 @@ edition = "2021"
license = "MIT"
name = "azalea-inventory"
repository = "https://github.com/azalea-rs/azalea/tree/main/azalea-inventory-macros"
-version = "0.10.3+mc1.21.3"
+version = "0.10.3+mc1.21.4"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
diff --git a/azalea-inventory/azalea-inventory-macros/Cargo.toml b/azalea-inventory/azalea-inventory-macros/Cargo.toml
index 92b17e97..555d8612 100644
--- a/azalea-inventory/azalea-inventory-macros/Cargo.toml
+++ b/azalea-inventory/azalea-inventory-macros/Cargo.toml
@@ -4,7 +4,7 @@ edition = "2021"
license = "MIT"
name = "azalea-inventory-macros"
repository = "https://github.com/azalea-rs/azalea/tree/main/azalea-inventory/azalea-inventory-macros"
-version = "0.10.3+mc1.21.3"
+version = "0.10.3+mc1.21.4"
[lib]
proc-macro = true
diff --git a/azalea-language/Cargo.toml b/azalea-language/Cargo.toml
index 2038f31e..20636a39 100644
--- a/azalea-language/Cargo.toml
+++ b/azalea-language/Cargo.toml
@@ -4,7 +4,7 @@ edition = "2021"
license = "MIT"
name = "azalea-language"
repository = "https://github.com/azalea-rs/azalea/tree/main/azalea-language"
-version = "0.10.3+mc1.21.3"
+version = "0.10.3+mc1.21.4"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
diff --git a/azalea-language/src/en_us.json b/azalea-language/src/en_us.json
index e1819511..2826affe 100755
--- a/azalea-language/src/en_us.json
+++ b/azalea-language/src/en_us.json
@@ -1429,6 +1429,7 @@
"block.minecraft.chiseled_polished_blackstone": "Chiseled Polished Blackstone",
"block.minecraft.chiseled_quartz_block": "Chiseled Quartz Block",
"block.minecraft.chiseled_red_sandstone": "Chiseled Red Sandstone",
+ "block.minecraft.chiseled_resin_bricks": "Chiseled Resin Bricks",
"block.minecraft.chiseled_sandstone": "Chiseled Sandstone",
"block.minecraft.chiseled_stone_bricks": "Chiseled Stone Bricks",
"block.minecraft.chiseled_tuff": "Chiseled Tuff",
@@ -1436,6 +1437,7 @@
"block.minecraft.chorus_flower": "Chorus Flower",
"block.minecraft.chorus_plant": "Chorus Plant",
"block.minecraft.clay": "Clay",
+ "block.minecraft.closed_eyeblossom": "Closed Eyeblossom",
"block.minecraft.coal_block": "Block of Coal",
"block.minecraft.coal_ore": "Coal Ore",
"block.minecraft.coarse_dirt": "Coarse Dirt",
@@ -1856,6 +1858,7 @@
"block.minecraft.obsidian": "Obsidian",
"block.minecraft.ochre_froglight": "Ochre Froglight",
"block.minecraft.ominous_banner": "Ominous Banner",
+ "block.minecraft.open_eyeblossom": "Open Eyeblossom",
"block.minecraft.orange_banner": "Orange Banner",
"block.minecraft.orange_bed": "Orange Bed",
"block.minecraft.orange_candle": "Orange Candle",
@@ -1971,6 +1974,7 @@
"block.minecraft.potted_brown_mushroom": "Potted Brown Mushroom",
"block.minecraft.potted_cactus": "Potted Cactus",
"block.minecraft.potted_cherry_sapling": "Potted Cherry Sapling",
+ "block.minecraft.potted_closed_eyeblossom": "Potted Closed Eyeblossom",
"block.minecraft.potted_cornflower": "Potted Cornflower",
"block.minecraft.potted_crimson_fungus": "Potted Crimson Fungus",
"block.minecraft.potted_crimson_roots": "Potted Crimson Roots",
@@ -1983,6 +1987,7 @@
"block.minecraft.potted_lily_of_the_valley": "Potted Lily of the Valley",
"block.minecraft.potted_mangrove_propagule": "Potted Mangrove Propagule",
"block.minecraft.potted_oak_sapling": "Potted Oak Sapling",
+ "block.minecraft.potted_open_eyeblossom": "Potted Open Eyeblossom",
"block.minecraft.potted_orange_tulip": "Potted Orange Tulip",
"block.minecraft.potted_oxeye_daisy": "Potted Oxeye Daisy",
"block.minecraft.potted_pale_oak_sapling": "Potted Pale Oak Sapling",
@@ -2068,6 +2073,12 @@
"block.minecraft.reinforced_deepslate": "Reinforced Deepslate",
"block.minecraft.repeater": "Redstone Repeater",
"block.minecraft.repeating_command_block": "Repeating Command Block",
+ "block.minecraft.resin_block": "Block of Resin",
+ "block.minecraft.resin_brick_slab": "Resin Brick Slab",
+ "block.minecraft.resin_brick_stairs": "Resin Brick Stairs",
+ "block.minecraft.resin_brick_wall": "Resin Brick Wall",
+ "block.minecraft.resin_bricks": "Resin Bricks",
+ "block.minecraft.resin_clump": "Resin Clump",
"block.minecraft.respawn_anchor": "Respawn Anchor",
"block.minecraft.rooted_dirt": "Rooted Dirt",
"block.minecraft.rose_bush": "Rose Bush",
@@ -2431,6 +2442,7 @@
"commands.advancement.revoke.one.to.one.failure": "Couldn't revoke advancement %s from %s as they don't have it",
"commands.advancement.revoke.one.to.one.success": "Revoked the advancement %s from %s",
"commands.attribute.base_value.get.success": "Base value of attribute %s for entity %s is %s",
+ "commands.attribute.base_value.reset.success": "Base value for attribute %s for entity %s reset to default %s",
"commands.attribute.base_value.set.success": "Base value for attribute %s for entity %s set to %s",
"commands.attribute.failed.entity": "%s is not a valid entity for this command",
"commands.attribute.failed.modifier_already_present": "Modifier %s is already present on attribute %s for entity %s",
@@ -4358,6 +4370,8 @@
"item.minecraft.red_bundle": "Red Bundle",
"item.minecraft.red_dye": "Red Dye",
"item.minecraft.redstone": "Redstone Dust",
+ "item.minecraft.resin_brick": "Resin Brick",
+ "item.minecraft.resin_clump": "Resin Clump",
"item.minecraft.rib_armor_trim_smithing_template": "Smithing Template",
"item.minecraft.rib_armor_trim_smithing_template.new": "Rib Armor Trim",
"item.minecraft.rotten_flesh": "Rotten Flesh",
@@ -4569,6 +4583,9 @@
"item.modifiers.mainhand": "When in Main Hand:",
"item.modifiers.offhand": "When in Off Hand:",
"item.nbt_tags": "NBT: %s tag(s)",
+ "item.op_block_warning.line1": "Warning:",
+ "item.op_block_warning.line2": "Use of this item might lead to command execution",
+ "item.op_block_warning.line3": "Do not use unless you know the exact contents!",
"item.unbreakable": "Unbreakable",
"itemGroup.buildingBlocks": "Building Blocks",
"itemGroup.coloredBlocks": "Colored Blocks",
@@ -5999,6 +6016,7 @@
"structure_block.size.z": "structure size z",
"structure_block.structure_name": "Structure Name",
"subtitles.ambient.cave": "Eerie noise",
+ "subtitles.ambient.sound": "Eerie noise",
"subtitles.block.amethyst_block.chime": "Amethyst chimes",
"subtitles.block.amethyst_block.resonate": "Amethyst resonates",
"subtitles.block.anvil.destroy": "Anvil destroyed",
@@ -6050,7 +6068,7 @@
"subtitles.block.copper_trapdoor.open": "Trapdoor opens",
"subtitles.block.crafter.craft": "Crafter crafts",
"subtitles.block.crafter.fail": "Crafter fails crafting",
- "subtitles.block.creaking_heart.hurt": "Creaking Heart screams",
+ "subtitles.block.creaking_heart.hurt": "Creaking Heart grumbles",
"subtitles.block.creaking_heart.idle": "Eerie noise",
"subtitles.block.creaking_heart.spawn": "Creaking Heart awakens",
"subtitles.block.decorated_pot.insert": "Decorated Pot fills",
@@ -6062,12 +6080,16 @@
"subtitles.block.enchantment_table.use": "Enchanting Table used",
"subtitles.block.end_portal_frame.fill": "Eye of Ender attaches",
"subtitles.block.end_portal.spawn": "End Portal opens",
+ "subtitles.block.eyeblossom.close": "Eyeblossom closes",
+ "subtitles.block.eyeblossom.idle": "Eyeblossom whispers",
+ "subtitles.block.eyeblossom.open": "Eyeblossom opens",
"subtitles.block.fence_gate.toggle": "Fence Gate creaks",
"subtitles.block.fire.ambient": "Fire crackles",
"subtitles.block.fire.extinguish": "Fire extinguished",
"subtitles.block.frogspawn.hatch": "Tadpole hatches",
"subtitles.block.furnace.fire_crackle": "Furnace crackles",
"subtitles.block.generic.break": "Block broken",
+ "subtitles.block.generic.fall": "Something falls on a block",
"subtitles.block.generic.footsteps": "Footsteps",
"subtitles.block.generic.hit": "Block breaking",
"subtitles.block.generic.place": "Block placed",
@@ -6240,15 +6262,15 @@
"subtitles.entity.cow.death": "Cow dies",
"subtitles.entity.cow.hurt": "Cow hurts",
"subtitles.entity.cow.milk": "Cow gets milked",
- "subtitles.entity.creaking.activate": "Creaking activates",
+ "subtitles.entity.creaking.activate": "Creaking watches",
"subtitles.entity.creaking.ambient": "Creaking creaks",
- "subtitles.entity.creaking.angry": "Creaking sees player",
"subtitles.entity.creaking.attack": "Creaking attacks",
- "subtitles.entity.creaking.deactivate": "Creaking deactivates",
- "subtitles.entity.creaking.death": "Creaking dies",
+ "subtitles.entity.creaking.deactivate": "Creaking calms",
+ "subtitles.entity.creaking.death": "Creaking crumbles",
"subtitles.entity.creaking.freeze": "Creaking stops",
- "subtitles.entity.creaking.spawn": "Creaking lives",
- "subtitles.entity.creaking.sway": "Creaking is shielded",
+ "subtitles.entity.creaking.spawn": "Creaking manifests",
+ "subtitles.entity.creaking.sway": "Creaking is hit",
+ "subtitles.entity.creaking.twitch": "Creaking twitches",
"subtitles.entity.creaking.unfreeze": "Creaking moves",
"subtitles.entity.creeper.death": "Creeper dies",
"subtitles.entity.creeper.hurt": "Creeper hurts",
@@ -6315,6 +6337,7 @@
"subtitles.entity.firework_rocket.blast": "Firework blasts",
"subtitles.entity.firework_rocket.launch": "Firework launches",
"subtitles.entity.firework_rocket.twinkle": "Firework twinkles",
+ "subtitles.entity.fish.swim": "Splashes",
"subtitles.entity.fishing_bobber.retrieve": "Bobber retrieved",
"subtitles.entity.fishing_bobber.splash": "Fishing Bobber splashes",
"subtitles.entity.fishing_bobber.throw": "Bobber thrown",
@@ -6434,6 +6457,8 @@
"subtitles.entity.magma_cube.death": "Magma Cube dies",
"subtitles.entity.magma_cube.hurt": "Magma Cube hurts",
"subtitles.entity.magma_cube.squish": "Magma Cube squishes",
+ "subtitles.entity.minecart.inside": "Minecart jangles",
+ "subtitles.entity.minecart.inside_underwater": "Minecart jangles underwater",
"subtitles.entity.minecart.riding": "Minecart rolls",
"subtitles.entity.mooshroom.convert": "Mooshroom transforms",
"subtitles.entity.mooshroom.eat": "Mooshroom eats",
@@ -6590,6 +6615,7 @@
"subtitles.entity.skeleton_horse.ambient": "Skeleton Horse cries",
"subtitles.entity.skeleton_horse.death": "Skeleton Horse dies",
"subtitles.entity.skeleton_horse.hurt": "Skeleton Horse hurts",
+ "subtitles.entity.skeleton_horse.jump_water": "Skeleton Horse jumps",
"subtitles.entity.skeleton_horse.swim": "Skeleton Horse swims",
"subtitles.entity.skeleton.ambient": "Skeleton rattles",
"subtitles.entity.skeleton.converted_to_stray": "Skeleton converts to Stray",
@@ -6802,6 +6828,7 @@
"subtitles.item.crossbow.load": "Crossbow loads",
"subtitles.item.crossbow.shoot": "Crossbow fires",
"subtitles.item.dye.use": "Dye stains",
+ "subtitles.item.elytra.flying": "Swoosh",
"subtitles.item.firecharge.use": "Fireball whooshes",
"subtitles.item.flintandsteel.use": "Flint and Steel click",
"subtitles.item.glow_ink_sac.use": "Glow Ink Sac splotches",
@@ -6936,6 +6963,7 @@
"trim_material.minecraft.netherite": "Netherite Material",
"trim_material.minecraft.quartz": "Quartz Material",
"trim_material.minecraft.redstone": "Redstone Material",
+ "trim_material.minecraft.resin": "Resin Material",
"trim_pattern.minecraft.bolt": "Bolt Armor Trim",
"trim_pattern.minecraft.coast": "Coast Armor Trim",
"trim_pattern.minecraft.dune": "Dune Armor Trim",
diff --git a/azalea-physics/Cargo.toml b/azalea-physics/Cargo.toml
index d668db1b..cd711ebb 100644
--- a/azalea-physics/Cargo.toml
+++ b/azalea-physics/Cargo.toml
@@ -4,7 +4,7 @@ edition = "2021"
license = "MIT"
name = "azalea-physics"
repository = "https://github.com/azalea-rs/azalea/tree/main/azalea-physics"
-version = "0.10.3+mc1.21.3"
+version = "0.10.3+mc1.21.4"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
diff --git a/azalea-physics/src/collision/blocks.rs b/azalea-physics/src/collision/blocks.rs
index d3c976ac..eb6c4301 100644
--- a/azalea-physics/src/collision/blocks.rs
+++ b/azalea-physics/src/collision/blocks.rs
@@ -1768,15 +1768,15 @@ impl BlockWithShape for BlockState {
}
fn is_shape_empty(&self) -> bool {
- matches!(self.id, 0|29..=42|45..=84|86..=117|1987..=2034|2047..=2053|2106..=2133|2398..=2915|3030..=4325|4330..=4337|4354..=4577|4610..=4673|4746..=4765|4846..=4901|4910..=5373|5438..=5693|5790..=5815|5880..=5893|5896..=5899|5904..=5938|5965..=5980|6024..=6028|6030..=6031|7043..=7228|7231..=7232|7235..=7236|7239..=7240|7243..=7244|7247..=7248|7251..=7252|7255..=7256|7615..=7618|7636|7751..=7894|8155|8158|8479|8482|8826..=9009|9034..=9081|9398..=9429|9575..=9598|10702..=10733|11082..=11413|11651..=11652|11655..=11656|11659..=11660|11663..=11664|11667..=11668|11671..=11672|11675..=11676|11679..=11680|11683..=11684|11687..=11688|11691..=11692|11695..=11696|11699..=11700|11703..=11704|11707..=11708|11711..=11712|11715..=11716|11719..=11720|11723..=11724|11727..=11728|11731..=11732|11735..=11736|11739..=11740|11743..=11744|11747..=11748|11751..=11752|11755..=11756|11759..=11760|11763..=11764|11767..=11768|11771..=11772|11775..=11776|11779..=11780|11783..=11784|11787..=11788|11791..=11792|11795..=11796|11799..=11800|11803..=11804|11807..=11808|11811..=11812|11815..=11816|11819..=11820|11823..=11824|11827..=11828|11831..=11832|11835..=11836|11839..=11840|11875..=11876|11879..=11880|11883..=11884|11887..=11888|11891..=11892|11895..=11896|11899..=11900|11903..=11904|11907..=11908|11911..=11912|11915..=11916|11919..=11920|11923..=11924|11927..=11928|11931..=11932|11935..=11936|12964..=12965|12968|12970|12972|12974|12976..=12981|12983|13018|13229..=13255|13282..=13401|13413|13427..=13430|14635|14638|14959|14962|15283|15286|15607|15610|15931|15934|16255|16258|16579|16582|16903|16906|17227|17230|17551|17554|17875|17878|18199|18202|18523|18526|19044..=19047|19061|19063..=19064|19078|19080..=19134|19149..=19152|19345..=19346|19349..=19350|19353..=19354|19357..=19358|19361..=19362|19365..=19366|19369..=19370|19373..=19374|19377..=19378|19381..=19382|19385..=19386|19389..=19390|19393..=19394|19397..=19398|19401..=19402|19405..=19406|19569..=19616|19745..=19824|20016|20019|20436|20439|20841..=20866|20873|20876|21643|21646|22054|22057|22466|22469|22787|23269..=23396|25238..=25292|25296..=25311|25319..=25320|25327..=25328|25335..=25336|25343..=25370|25469|25472|25880|25883|26291|26294|26702|26705|27041)
+ matches!(self.id, 0|29..=42|45..=84|86..=117|1987..=2034|2047..=2053|2106..=2133|2398..=2915|3033..=4328|4333..=4340|4357..=4580|4613..=4676|4749..=4768|4849..=4904|4913..=5376|5441..=5696|5793..=5818|5883..=5896|5899..=5902|5907..=5941|5968..=5983|6027..=6031|6033..=6034|7046..=7229|7358..=7359|7362..=7363|7366..=7367|7370..=7371|7374..=7375|7378..=7379|7382..=7383|7386..=7387|8159..=8162|8180|8295..=8438|8699|8702|9023|9026|9370..=9553|9578..=9625|9942..=9973|10119..=10142|11246..=11277|11626..=11957|12195..=12196|12199..=12200|12203..=12204|12207..=12208|12211..=12212|12215..=12216|12219..=12220|12223..=12224|12227..=12228|12231..=12232|12235..=12236|12239..=12240|12243..=12244|12247..=12248|12251..=12252|12255..=12256|12259..=12260|12263..=12264|12267..=12268|12271..=12272|12275..=12276|12279..=12280|12283..=12284|12287..=12288|12291..=12292|12295..=12296|12299..=12300|12303..=12304|12307..=12308|12311..=12312|12315..=12316|12319..=12320|12323..=12324|12327..=12328|12331..=12332|12335..=12336|12339..=12340|12343..=12344|12347..=12348|12351..=12352|12355..=12356|12359..=12360|12363..=12364|12367..=12368|12371..=12372|12375..=12376|12379..=12380|12383..=12384|12419..=12420|12423..=12424|12427..=12428|12431..=12432|12435..=12436|12439..=12440|12443..=12444|12447..=12448|12451..=12452|12455..=12456|12459..=12460|12463..=12464|12467..=12468|12471..=12472|12475..=12476|12479..=12480|13508..=13509|13512|13514|13516|13518|13520..=13525|13527|13562|13773..=13799|13826..=13945|13957|13971..=13974|15179|15182|15503|15506|15827|15830|16151|16154|16475|16478|16799|16802|17123|17126|17447|17450|17771|17774|18095|18098|18419|18422|18743|18746|19067|19070|19588..=19591|19605|19607..=19608|19622|19624..=19678|19693..=19696|19889..=19890|19893..=19894|19897..=19898|19901..=19902|19905..=19906|19909..=19910|19913..=19914|19917..=19918|19921..=19922|19925..=19926|19929..=19930|19933..=19934|19937..=19938|19941..=19942|19945..=19946|19949..=19950|20113..=20160|20289..=20368|20560|20563|20980|20983|21385..=21410|21417|21420|22187|22190|22598|22601|23010|23013|23331|23813..=23940|25782..=25836|25840..=25855|25863..=25864|25871..=25872|25879..=25880|25887..=25914|26013|26016|26424|26427|26835|26838|27246|27249|27585)
}
fn is_shape_full(&self) -> bool {
- matches!(self.id, 1..=21|26..=28|85|118..=156|160..=188|192..=245|249..=447|476..=1730|2041..=2046|2060..=2065|2090..=2105|2134..=2397|2916|4326..=4329|4346..=4353|5900..=5903|5946..=5947|5964|5981..=5982|6015|6017..=6023|6029|6032..=6039|6111..=6126|6767..=6970|7041..=7042|7499..=7500|7502|7645|7647..=7648|7741..=7742|7895|8136..=8148|9478..=9479|9490..=9494|9599..=9626|10699..=10701|10798..=10800|11045..=11046|11051..=11052|11057..=11062|11079..=11081|11414..=11416|11501..=11502|11507..=11508|11513..=11514|11519..=11520|11525..=11526|11531..=11532|11537..=11538|11549..=11550|11555..=11556|11561..=11562|11567..=11568|11573..=11574|11579..=11580|11585..=11586|11591..=11592|11597..=11598|11603..=11604|11609..=11610|11615..=11616|11621..=11622|11627..=11628|11633..=11634|11639..=11640|11645..=11650|12873..=12882|12963|12984..=13017|13019..=13228|13256|13272..=13281|13410|14555..=14556|14561..=14562|14567..=14568|14573..=14574|14579..=14580|14585..=14586|14591..=14592|14597..=14598|14603..=14604|14609..=14610|14615..=14616|14621..=14622|14627..=14628|18873..=18906|18935|19048..=19060|19062|19065..=19077|19079|19135..=19136|19141..=19142|19147..=19148|19825..=19840|19850..=19913|19915..=19923|19928..=19929|20338..=20343|20348..=20349|20754|20839..=20840|21191..=21193|21500..=21501|21550|21555..=21556|21961|21966..=21967|22372..=22373|22378..=22379|22784..=22786|23268|23397..=23398|23407..=23424|23749..=23750|23755..=23756|23761..=23762|23767..=23776|24101..=24102|24107..=24108|24113..=24114|24119..=24120|25145..=25192|25237|25312|25371|25373..=25376|25461..=25462|25787|25872..=25873|26198|26283..=26284|26609|26694..=26695|27020..=27029|27032..=27040|27042|27059..=27112)
+ matches!(self.id, 1..=21|26..=28|85|118..=156|160..=188|192..=245|249..=447|476..=1730|2041..=2046|2060..=2065|2090..=2105|2134..=2397|2916|4329..=4332|4349..=4356|5903..=5906|5949..=5950|5967|5984..=5985|6018|6020..=6026|6032|6035..=6042|6114..=6129|6770..=6973|7044..=7045|7630..=7631|8046|8189|8191..=8192|8285..=8286|8439|8680..=8692|10022..=10023|10034..=10038|10143..=10170|11243..=11245|11342..=11344|11589..=11590|11595..=11596|11601..=11606|11623..=11625|11958..=11960|12045..=12046|12051..=12052|12057..=12058|12063..=12064|12069..=12070|12075..=12076|12081..=12082|12093..=12094|12099..=12100|12105..=12106|12111..=12112|12117..=12118|12123..=12124|12129..=12130|12135..=12136|12141..=12142|12147..=12148|12153..=12154|12159..=12160|12165..=12166|12171..=12172|12177..=12178|12183..=12184|12189..=12194|13417..=13426|13507|13528..=13561|13563..=13772|13800|13816..=13825|13954|15099..=15100|15105..=15106|15111..=15112|15117..=15118|15123..=15124|15129..=15130|15135..=15136|15141..=15142|15147..=15148|15153..=15154|15159..=15160|15165..=15166|15171..=15172|19417..=19450|19479|19592..=19604|19606|19609..=19621|19623|19679..=19680|19685..=19686|19691..=19692|20369..=20384|20394..=20457|20459..=20467|20472..=20473|20882..=20887|20892..=20893|21298|21383..=21384|21735..=21737|22044..=22045|22094|22099..=22100|22505|22510..=22511|22916..=22917|22922..=22923|23328..=23330|23812|23941..=23942|23951..=23968|24293..=24294|24299..=24300|24305..=24306|24311..=24320|24645..=24646|24651..=24652|24657..=24658|24663..=24664|25689..=25736|25781|25856|25915|25917..=25920|26005..=26006|26331|26416..=26417|26742|26827..=26828|27153|27238..=27239|27564..=27573|27576..=27584|27586|27603..=27656)
}
}
-static SHAPES_MAP: [&LazyLock<VoxelShape>; 27113] = [
+static SHAPES_MAP: [&LazyLock<VoxelShape>; 27657] = [
&SHAPE0, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1,
&SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1,
&SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE0,
@@ -2069,19 +2069,19 @@ static SHAPES_MAP: [&LazyLock<VoxelShape>; 27113] = [
&SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0,
&SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0,
&SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE1, &SHAPE1,
- &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE29, &SHAPE29,
- &SHAPE30, &SHAPE30, &SHAPE31, &SHAPE31, &SHAPE32, &SHAPE32, &SHAPE33, &SHAPE33, &SHAPE34,
- &SHAPE34, &SHAPE35, &SHAPE35, &SHAPE36, &SHAPE36, &SHAPE37, &SHAPE37, &SHAPE38, &SHAPE38,
- &SHAPE39, &SHAPE39, &SHAPE40, &SHAPE40, &SHAPE41, &SHAPE41, &SHAPE42, &SHAPE42, &SHAPE43,
- &SHAPE43, &SHAPE44, &SHAPE44, &SHAPE45, &SHAPE45, &SHAPE46, &SHAPE46, &SHAPE47, &SHAPE47,
- &SHAPE48, &SHAPE48, &SHAPE49, &SHAPE49, &SHAPE41, &SHAPE41, &SHAPE30, &SHAPE30, &SHAPE43,
- &SHAPE43, &SHAPE32, &SHAPE32, &SHAPE50, &SHAPE50, &SHAPE46, &SHAPE46, &SHAPE35, &SHAPE35,
- &SHAPE48, &SHAPE48, &SHAPE37, &SHAPE37, &SHAPE51, &SHAPE51, &SHAPE31, &SHAPE31, &SHAPE40,
- &SHAPE40, &SHAPE33, &SHAPE33, &SHAPE42, &SHAPE42, &SHAPE52, &SHAPE52, &SHAPE36, &SHAPE36,
- &SHAPE45, &SHAPE45, &SHAPE38, &SHAPE38, &SHAPE47, &SHAPE47, &SHAPE53, &SHAPE53, &SHAPE54,
- &SHAPE54, &SHAPE55, &SHAPE55, &SHAPE53, &SHAPE53, &SHAPE55, &SHAPE55, &SHAPE54, &SHAPE54,
- &SHAPE53, &SHAPE53, &SHAPE56, &SHAPE56, &SHAPE57, &SHAPE57, &SHAPE53, &SHAPE53, &SHAPE57,
- &SHAPE57, &SHAPE56, &SHAPE56, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0,
+ &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1,
+ &SHAPE1, &SHAPE29, &SHAPE29, &SHAPE30, &SHAPE30, &SHAPE31, &SHAPE31, &SHAPE32, &SHAPE32,
+ &SHAPE33, &SHAPE33, &SHAPE34, &SHAPE34, &SHAPE35, &SHAPE35, &SHAPE36, &SHAPE36, &SHAPE37,
+ &SHAPE37, &SHAPE38, &SHAPE38, &SHAPE39, &SHAPE39, &SHAPE40, &SHAPE40, &SHAPE41, &SHAPE41,
+ &SHAPE42, &SHAPE42, &SHAPE43, &SHAPE43, &SHAPE44, &SHAPE44, &SHAPE45, &SHAPE45, &SHAPE46,
+ &SHAPE46, &SHAPE47, &SHAPE47, &SHAPE48, &SHAPE48, &SHAPE49, &SHAPE49, &SHAPE41, &SHAPE41,
+ &SHAPE30, &SHAPE30, &SHAPE43, &SHAPE43, &SHAPE32, &SHAPE32, &SHAPE50, &SHAPE50, &SHAPE46,
+ &SHAPE46, &SHAPE35, &SHAPE35, &SHAPE48, &SHAPE48, &SHAPE37, &SHAPE37, &SHAPE51, &SHAPE51,
+ &SHAPE31, &SHAPE31, &SHAPE40, &SHAPE40, &SHAPE33, &SHAPE33, &SHAPE42, &SHAPE42, &SHAPE52,
+ &SHAPE52, &SHAPE36, &SHAPE36, &SHAPE45, &SHAPE45, &SHAPE38, &SHAPE38, &SHAPE47, &SHAPE47,
+ &SHAPE53, &SHAPE53, &SHAPE54, &SHAPE54, &SHAPE55, &SHAPE55, &SHAPE53, &SHAPE53, &SHAPE55,
+ &SHAPE55, &SHAPE54, &SHAPE54, &SHAPE53, &SHAPE53, &SHAPE56, &SHAPE56, &SHAPE57, &SHAPE57,
+ &SHAPE53, &SHAPE53, &SHAPE57, &SHAPE57, &SHAPE56, &SHAPE56, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0,
&SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0,
&SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0,
&SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0,
@@ -2210,11 +2210,10 @@ static SHAPES_MAP: [&LazyLock<VoxelShape>; 27113] = [
&SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0,
&SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0,
&SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0,
- &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE1,
- &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0,
- &SHAPE0, &SHAPE62, &SHAPE62, &SHAPE62, &SHAPE62, &SHAPE62, &SHAPE62, &SHAPE62, &SHAPE62,
- &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE0, &SHAPE0,
&SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0,
+ &SHAPE0, &SHAPE0, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0,
+ &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE62, &SHAPE62, &SHAPE62, &SHAPE62, &SHAPE62, &SHAPE62,
+ &SHAPE62, &SHAPE62, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1,
&SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0,
&SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0,
&SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0,
@@ -2236,42 +2235,43 @@ static SHAPES_MAP: [&LazyLock<VoxelShape>; 27113] = [
&SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0,
&SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0,
&SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0,
- &SHAPE0, &SHAPE0, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1,
+ &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0,
+ &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1,
&SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1,
&SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1,
- &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0,
+ &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0,
&SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0,
&SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0,
&SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0,
&SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0,
&SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0,
- &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE64, &SHAPE64,
- &SHAPE65, &SHAPE65, &SHAPE66, &SHAPE66, &SHAPE65, &SHAPE65, &SHAPE64, &SHAPE64, &SHAPE65,
- &SHAPE65, &SHAPE66, &SHAPE66, &SHAPE65, &SHAPE65, &SHAPE66, &SHAPE66, &SHAPE67, &SHAPE67,
- &SHAPE64, &SHAPE64, &SHAPE67, &SHAPE67, &SHAPE66, &SHAPE66, &SHAPE67, &SHAPE67, &SHAPE64,
- &SHAPE64, &SHAPE67, &SHAPE67, &SHAPE65, &SHAPE65, &SHAPE66, &SHAPE66, &SHAPE67, &SHAPE67,
- &SHAPE66, &SHAPE66, &SHAPE65, &SHAPE65, &SHAPE66, &SHAPE66, &SHAPE67, &SHAPE67, &SHAPE66,
- &SHAPE66, &SHAPE67, &SHAPE67, &SHAPE64, &SHAPE64, &SHAPE65, &SHAPE65, &SHAPE64, &SHAPE64,
- &SHAPE67, &SHAPE67, &SHAPE64, &SHAPE64, &SHAPE65, &SHAPE65, &SHAPE64, &SHAPE64, &SHAPE65,
- &SHAPE65, &SHAPE67, &SHAPE67, &SHAPE66, &SHAPE66, &SHAPE64, &SHAPE64, &SHAPE0, &SHAPE0,
&SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0,
- &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE29, &SHAPE29,
- &SHAPE30, &SHAPE30, &SHAPE31, &SHAPE31, &SHAPE32, &SHAPE32, &SHAPE33, &SHAPE33, &SHAPE34,
- &SHAPE34, &SHAPE35, &SHAPE35, &SHAPE36, &SHAPE36, &SHAPE37, &SHAPE37, &SHAPE38, &SHAPE38,
- &SHAPE39, &SHAPE39, &SHAPE40, &SHAPE40, &SHAPE41, &SHAPE41, &SHAPE42, &SHAPE42, &SHAPE43,
- &SHAPE43, &SHAPE44, &SHAPE44, &SHAPE45, &SHAPE45, &SHAPE46, &SHAPE46, &SHAPE47, &SHAPE47,
- &SHAPE48, &SHAPE48, &SHAPE49, &SHAPE49, &SHAPE41, &SHAPE41, &SHAPE30, &SHAPE30, &SHAPE43,
- &SHAPE43, &SHAPE32, &SHAPE32, &SHAPE50, &SHAPE50, &SHAPE46, &SHAPE46, &SHAPE35, &SHAPE35,
- &SHAPE48, &SHAPE48, &SHAPE37, &SHAPE37, &SHAPE51, &SHAPE51, &SHAPE31, &SHAPE31, &SHAPE40,
- &SHAPE40, &SHAPE33, &SHAPE33, &SHAPE42, &SHAPE42, &SHAPE52, &SHAPE52, &SHAPE36, &SHAPE36,
- &SHAPE45, &SHAPE45, &SHAPE38, &SHAPE38, &SHAPE47, &SHAPE47, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0,
+ &SHAPE64, &SHAPE64, &SHAPE65, &SHAPE65, &SHAPE66, &SHAPE66, &SHAPE65, &SHAPE65, &SHAPE64,
+ &SHAPE64, &SHAPE65, &SHAPE65, &SHAPE66, &SHAPE66, &SHAPE65, &SHAPE65, &SHAPE66, &SHAPE66,
+ &SHAPE67, &SHAPE67, &SHAPE64, &SHAPE64, &SHAPE67, &SHAPE67, &SHAPE66, &SHAPE66, &SHAPE67,
+ &SHAPE67, &SHAPE64, &SHAPE64, &SHAPE67, &SHAPE67, &SHAPE65, &SHAPE65, &SHAPE66, &SHAPE66,
+ &SHAPE67, &SHAPE67, &SHAPE66, &SHAPE66, &SHAPE65, &SHAPE65, &SHAPE66, &SHAPE66, &SHAPE67,
+ &SHAPE67, &SHAPE66, &SHAPE66, &SHAPE67, &SHAPE67, &SHAPE64, &SHAPE64, &SHAPE65, &SHAPE65,
+ &SHAPE64, &SHAPE64, &SHAPE67, &SHAPE67, &SHAPE64, &SHAPE64, &SHAPE65, &SHAPE65, &SHAPE64,
+ &SHAPE64, &SHAPE65, &SHAPE65, &SHAPE67, &SHAPE67, &SHAPE66, &SHAPE66, &SHAPE64, &SHAPE64,
&SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0,
&SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0,
+ &SHAPE29, &SHAPE29, &SHAPE30, &SHAPE30, &SHAPE31, &SHAPE31, &SHAPE32, &SHAPE32, &SHAPE33,
+ &SHAPE33, &SHAPE34, &SHAPE34, &SHAPE35, &SHAPE35, &SHAPE36, &SHAPE36, &SHAPE37, &SHAPE37,
+ &SHAPE38, &SHAPE38, &SHAPE39, &SHAPE39, &SHAPE40, &SHAPE40, &SHAPE41, &SHAPE41, &SHAPE42,
+ &SHAPE42, &SHAPE43, &SHAPE43, &SHAPE44, &SHAPE44, &SHAPE45, &SHAPE45, &SHAPE46, &SHAPE46,
+ &SHAPE47, &SHAPE47, &SHAPE48, &SHAPE48, &SHAPE49, &SHAPE49, &SHAPE41, &SHAPE41, &SHAPE30,
+ &SHAPE30, &SHAPE43, &SHAPE43, &SHAPE32, &SHAPE32, &SHAPE50, &SHAPE50, &SHAPE46, &SHAPE46,
+ &SHAPE35, &SHAPE35, &SHAPE48, &SHAPE48, &SHAPE37, &SHAPE37, &SHAPE51, &SHAPE51, &SHAPE31,
+ &SHAPE31, &SHAPE40, &SHAPE40, &SHAPE33, &SHAPE33, &SHAPE42, &SHAPE42, &SHAPE52, &SHAPE52,
+ &SHAPE36, &SHAPE36, &SHAPE45, &SHAPE45, &SHAPE38, &SHAPE38, &SHAPE47, &SHAPE47, &SHAPE0,
+ &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0,
&SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0,
&SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0,
&SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0,
- &SHAPE0, &SHAPE0, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1,
&SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0,
+ &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1,
+ &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0,
&SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0,
&SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0,
&SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0,
@@ -2317,14 +2317,14 @@ static SHAPES_MAP: [&LazyLock<VoxelShape>; 27113] = [
&SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0,
&SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0,
&SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0,
- &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1,
+ &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE1, &SHAPE1, &SHAPE1,
&SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1,
&SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1,
&SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1,
&SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1,
&SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1,
- &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE0, &SHAPE0,
- &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0,
+ &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1,
+ &SHAPE1, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0,
&SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0,
&SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0,
&SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0,
@@ -2349,74 +2349,53 @@ static SHAPES_MAP: [&LazyLock<VoxelShape>; 27113] = [
&SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0,
&SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0,
&SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0,
- &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE69, &SHAPE69, &SHAPE69, &SHAPE69, &SHAPE70, &SHAPE70,
+ &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE69, &SHAPE69, &SHAPE69,
+ &SHAPE69, &SHAPE70, &SHAPE70, &SHAPE70, &SHAPE70, &SHAPE69, &SHAPE69, &SHAPE69, &SHAPE69,
+ &SHAPE70, &SHAPE70, &SHAPE70, &SHAPE70, &SHAPE69, &SHAPE69, &SHAPE69, &SHAPE69, &SHAPE70,
+ &SHAPE70, &SHAPE70, &SHAPE70, &SHAPE69, &SHAPE69, &SHAPE69, &SHAPE69, &SHAPE70, &SHAPE70,
&SHAPE70, &SHAPE70, &SHAPE69, &SHAPE69, &SHAPE69, &SHAPE69, &SHAPE70, &SHAPE70, &SHAPE70,
&SHAPE70, &SHAPE69, &SHAPE69, &SHAPE69, &SHAPE69, &SHAPE70, &SHAPE70, &SHAPE70, &SHAPE70,
- &SHAPE69, &SHAPE69, &SHAPE69, &SHAPE69, &SHAPE70, &SHAPE70, &SHAPE70, &SHAPE70, &SHAPE69,
- &SHAPE69, &SHAPE69, &SHAPE69, &SHAPE70, &SHAPE70, &SHAPE70, &SHAPE70, &SHAPE69, &SHAPE69,
- &SHAPE69, &SHAPE69, &SHAPE70, &SHAPE70, &SHAPE70, &SHAPE70, &SHAPE69, &SHAPE69, &SHAPE69,
- &SHAPE69, &SHAPE70, &SHAPE70, &SHAPE70, &SHAPE70, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1,
- &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE69, &SHAPE69, &SHAPE69, &SHAPE69, &SHAPE70, &SHAPE70,
- &SHAPE70, &SHAPE70, &SHAPE69, &SHAPE69, &SHAPE69, &SHAPE69, &SHAPE70, &SHAPE70, &SHAPE70,
- &SHAPE70, &SHAPE69, &SHAPE69, &SHAPE69, &SHAPE69, &SHAPE70, &SHAPE70, &SHAPE70, &SHAPE70,
- &SHAPE69, &SHAPE69, &SHAPE69, &SHAPE69, &SHAPE70, &SHAPE70, &SHAPE70, &SHAPE70, &SHAPE0,
- &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0,
+ &SHAPE69, &SHAPE69, &SHAPE69, &SHAPE69, &SHAPE70, &SHAPE70, &SHAPE70, &SHAPE70, &SHAPE1,
+ &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE69, &SHAPE69, &SHAPE69,
+ &SHAPE69, &SHAPE70, &SHAPE70, &SHAPE70, &SHAPE70, &SHAPE69, &SHAPE69, &SHAPE69, &SHAPE69,
+ &SHAPE70, &SHAPE70, &SHAPE70, &SHAPE70, &SHAPE69, &SHAPE69, &SHAPE69, &SHAPE69, &SHAPE70,
+ &SHAPE70, &SHAPE70, &SHAPE70, &SHAPE69, &SHAPE69, &SHAPE69, &SHAPE69, &SHAPE70, &SHAPE70,
+ &SHAPE70, &SHAPE70, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0,
&SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0,
- &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE64, &SHAPE64, &SHAPE65, &SHAPE65, &SHAPE66,
- &SHAPE66, &SHAPE65, &SHAPE65, &SHAPE64, &SHAPE64, &SHAPE65, &SHAPE65, &SHAPE66, &SHAPE66,
- &SHAPE65, &SHAPE65, &SHAPE66, &SHAPE66, &SHAPE67, &SHAPE67, &SHAPE64, &SHAPE64, &SHAPE67,
- &SHAPE67, &SHAPE66, &SHAPE66, &SHAPE67, &SHAPE67, &SHAPE64, &SHAPE64, &SHAPE67, &SHAPE67,
- &SHAPE65, &SHAPE65, &SHAPE66, &SHAPE66, &SHAPE67, &SHAPE67, &SHAPE66, &SHAPE66, &SHAPE65,
- &SHAPE65, &SHAPE66, &SHAPE66, &SHAPE67, &SHAPE67, &SHAPE66, &SHAPE66, &SHAPE67, &SHAPE67,
- &SHAPE64, &SHAPE64, &SHAPE65, &SHAPE65, &SHAPE64, &SHAPE64, &SHAPE67, &SHAPE67, &SHAPE64,
- &SHAPE64, &SHAPE65, &SHAPE65, &SHAPE64, &SHAPE64, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0,
- &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE1,
- &SHAPE1, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE0,
+ &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE64, &SHAPE64,
+ &SHAPE65, &SHAPE65, &SHAPE66, &SHAPE66, &SHAPE65, &SHAPE65, &SHAPE64, &SHAPE64, &SHAPE65,
+ &SHAPE65, &SHAPE66, &SHAPE66, &SHAPE65, &SHAPE65, &SHAPE66, &SHAPE66, &SHAPE67, &SHAPE67,
+ &SHAPE64, &SHAPE64, &SHAPE67, &SHAPE67, &SHAPE66, &SHAPE66, &SHAPE67, &SHAPE67, &SHAPE64,
+ &SHAPE64, &SHAPE67, &SHAPE67, &SHAPE65, &SHAPE65, &SHAPE66, &SHAPE66, &SHAPE67, &SHAPE67,
+ &SHAPE66, &SHAPE66, &SHAPE65, &SHAPE65, &SHAPE66, &SHAPE66, &SHAPE67, &SHAPE67, &SHAPE66,
+ &SHAPE66, &SHAPE67, &SHAPE67, &SHAPE64, &SHAPE64, &SHAPE65, &SHAPE65, &SHAPE64, &SHAPE64,
+ &SHAPE67, &SHAPE67, &SHAPE64, &SHAPE64, &SHAPE65, &SHAPE65, &SHAPE64, &SHAPE64, &SHAPE0,
&SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0,
+ &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE1, &SHAPE1, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE1,
+ &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0,
&SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0,
&SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0,
- &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE7, &SHAPE58, &SHAPE59, &SHAPE8, &SHAPE60, &SHAPE13,
- &SHAPE61, &SHAPE1, &SHAPE1, &SHAPE71, &SHAPE71, &SHAPE71, &SHAPE71, &SHAPE71, &SHAPE71,
+ &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE7, &SHAPE58,
+ &SHAPE59, &SHAPE8, &SHAPE60, &SHAPE13, &SHAPE61, &SHAPE1, &SHAPE1, &SHAPE71, &SHAPE71,
&SHAPE71, &SHAPE71, &SHAPE71, &SHAPE71, &SHAPE71, &SHAPE71, &SHAPE71, &SHAPE71, &SHAPE71,
- &SHAPE71, &SHAPE1, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0,
- &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE1, &SHAPE1,
- &SHAPE74, &SHAPE75, &SHAPE74, &SHAPE75, &SHAPE76, &SHAPE77, &SHAPE76, &SHAPE77, &SHAPE78,
- &SHAPE79, &SHAPE78, &SHAPE79, &SHAPE80, &SHAPE81, &SHAPE80, &SHAPE81, &SHAPE82, &SHAPE83,
- &SHAPE82, &SHAPE83, &SHAPE84, &SHAPE85, &SHAPE84, &SHAPE85, &SHAPE86, &SHAPE87, &SHAPE86,
- &SHAPE87, &SHAPE88, &SHAPE89, &SHAPE88, &SHAPE89, &SHAPE1, &SHAPE61, &SHAPE1, &SHAPE1, &SHAPE1,
- &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE1,
- &SHAPE0, &SHAPE0, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1,
- &SHAPE91, &SHAPE92, &SHAPE93, &SHAPE94, &SHAPE95, &SHAPE96, &SHAPE97, &SHAPE7, &SHAPE7,
- &SHAPE7, &SHAPE7, &SHAPE7, &SHAPE7, &SHAPE7, &SHAPE7, &SHAPE7, &SHAPE7, &SHAPE7, &SHAPE7,
+ &SHAPE71, &SHAPE71, &SHAPE71, &SHAPE71, &SHAPE71, &SHAPE1, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0,
+ &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0,
+ &SHAPE0, &SHAPE0, &SHAPE1, &SHAPE1, &SHAPE74, &SHAPE75, &SHAPE74, &SHAPE75, &SHAPE76, &SHAPE77,
+ &SHAPE76, &SHAPE77, &SHAPE78, &SHAPE79, &SHAPE78, &SHAPE79, &SHAPE80, &SHAPE81, &SHAPE80,
+ &SHAPE81, &SHAPE82, &SHAPE83, &SHAPE82, &SHAPE83, &SHAPE84, &SHAPE85, &SHAPE84, &SHAPE85,
+ &SHAPE86, &SHAPE87, &SHAPE86, &SHAPE87, &SHAPE88, &SHAPE89, &SHAPE88, &SHAPE89, &SHAPE1,
+ &SHAPE61, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE0, &SHAPE0,
+ &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE1, &SHAPE0, &SHAPE0, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1,
+ &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE91, &SHAPE92, &SHAPE93, &SHAPE94, &SHAPE95, &SHAPE96,
+ &SHAPE97, &SHAPE7, &SHAPE7, &SHAPE7, &SHAPE7, &SHAPE7, &SHAPE7, &SHAPE7, &SHAPE7, &SHAPE7,
&SHAPE7, &SHAPE7, &SHAPE7, &SHAPE7, &SHAPE7, &SHAPE7, &SHAPE7, &SHAPE7, &SHAPE7, &SHAPE7,
&SHAPE7, &SHAPE7, &SHAPE7, &SHAPE7, &SHAPE7, &SHAPE7, &SHAPE7, &SHAPE7, &SHAPE7, &SHAPE7,
&SHAPE7, &SHAPE7, &SHAPE7, &SHAPE7, &SHAPE7, &SHAPE7, &SHAPE7, &SHAPE7, &SHAPE7, &SHAPE7,
&SHAPE7, &SHAPE7, &SHAPE7, &SHAPE7, &SHAPE7, &SHAPE7, &SHAPE7, &SHAPE7, &SHAPE7, &SHAPE7,
&SHAPE7, &SHAPE7, &SHAPE7, &SHAPE7, &SHAPE7, &SHAPE7, &SHAPE7, &SHAPE7, &SHAPE7, &SHAPE7,
- &SHAPE7, &SHAPE7, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1,
- &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE65, &SHAPE65,
- &SHAPE65, &SHAPE65, &SHAPE98, &SHAPE98, &SHAPE98, &SHAPE98, &SHAPE65, &SHAPE65, &SHAPE65,
- &SHAPE65, &SHAPE99, &SHAPE99, &SHAPE99, &SHAPE99, &SHAPE67, &SHAPE67, &SHAPE67, &SHAPE67,
- &SHAPE98, &SHAPE98, &SHAPE98, &SHAPE98, &SHAPE67, &SHAPE67, &SHAPE67, &SHAPE67, &SHAPE99,
- &SHAPE99, &SHAPE99, &SHAPE99, &SHAPE66, &SHAPE66, &SHAPE66, &SHAPE66, &SHAPE98, &SHAPE98,
- &SHAPE98, &SHAPE98, &SHAPE66, &SHAPE66, &SHAPE66, &SHAPE66, &SHAPE99, &SHAPE99, &SHAPE99,
- &SHAPE99, &SHAPE64, &SHAPE64, &SHAPE64, &SHAPE64, &SHAPE98, &SHAPE98, &SHAPE98, &SHAPE98,
- &SHAPE64, &SHAPE64, &SHAPE64, &SHAPE64, &SHAPE99, &SHAPE99, &SHAPE99, &SHAPE99, &SHAPE65,
- &SHAPE65, &SHAPE65, &SHAPE65, &SHAPE98, &SHAPE98, &SHAPE98, &SHAPE98, &SHAPE65, &SHAPE65,
- &SHAPE65, &SHAPE65, &SHAPE99, &SHAPE99, &SHAPE99, &SHAPE99, &SHAPE67, &SHAPE67, &SHAPE67,
- &SHAPE67, &SHAPE98, &SHAPE98, &SHAPE98, &SHAPE98, &SHAPE67, &SHAPE67, &SHAPE67, &SHAPE67,
- &SHAPE99, &SHAPE99, &SHAPE99, &SHAPE99, &SHAPE66, &SHAPE66, &SHAPE66, &SHAPE66, &SHAPE98,
- &SHAPE98, &SHAPE98, &SHAPE98, &SHAPE66, &SHAPE66, &SHAPE66, &SHAPE66, &SHAPE99, &SHAPE99,
- &SHAPE99, &SHAPE99, &SHAPE64, &SHAPE64, &SHAPE64, &SHAPE64, &SHAPE98, &SHAPE98, &SHAPE98,
- &SHAPE98, &SHAPE64, &SHAPE64, &SHAPE64, &SHAPE64, &SHAPE99, &SHAPE99, &SHAPE99, &SHAPE99,
- &SHAPE65, &SHAPE65, &SHAPE65, &SHAPE65, &SHAPE98, &SHAPE98, &SHAPE98, &SHAPE98, &SHAPE65,
- &SHAPE65, &SHAPE65, &SHAPE65, &SHAPE99, &SHAPE99, &SHAPE99, &SHAPE99, &SHAPE67, &SHAPE67,
- &SHAPE67, &SHAPE67, &SHAPE98, &SHAPE98, &SHAPE98, &SHAPE98, &SHAPE67, &SHAPE67, &SHAPE67,
- &SHAPE67, &SHAPE99, &SHAPE99, &SHAPE99, &SHAPE99, &SHAPE66, &SHAPE66, &SHAPE66, &SHAPE66,
- &SHAPE98, &SHAPE98, &SHAPE98, &SHAPE98, &SHAPE66, &SHAPE66, &SHAPE66, &SHAPE66, &SHAPE99,
- &SHAPE99, &SHAPE99, &SHAPE99, &SHAPE64, &SHAPE64, &SHAPE64, &SHAPE64, &SHAPE98, &SHAPE98,
- &SHAPE98, &SHAPE98, &SHAPE64, &SHAPE64, &SHAPE64, &SHAPE64, &SHAPE99, &SHAPE99, &SHAPE99,
- &SHAPE99, &SHAPE65, &SHAPE65, &SHAPE65, &SHAPE65, &SHAPE98, &SHAPE98, &SHAPE98, &SHAPE98,
+ &SHAPE7, &SHAPE7, &SHAPE7, &SHAPE7, &SHAPE7, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1,
+ &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1,
+ &SHAPE1, &SHAPE65, &SHAPE65, &SHAPE65, &SHAPE65, &SHAPE98, &SHAPE98, &SHAPE98, &SHAPE98,
&SHAPE65, &SHAPE65, &SHAPE65, &SHAPE65, &SHAPE99, &SHAPE99, &SHAPE99, &SHAPE99, &SHAPE67,
&SHAPE67, &SHAPE67, &SHAPE67, &SHAPE98, &SHAPE98, &SHAPE98, &SHAPE98, &SHAPE67, &SHAPE67,
&SHAPE67, &SHAPE67, &SHAPE99, &SHAPE99, &SHAPE99, &SHAPE99, &SHAPE66, &SHAPE66, &SHAPE66,
@@ -2444,28 +2423,49 @@ static SHAPES_MAP: [&LazyLock<VoxelShape>; 27113] = [
&SHAPE66, &SHAPE66, &SHAPE66, &SHAPE66, &SHAPE98, &SHAPE98, &SHAPE98, &SHAPE98, &SHAPE66,
&SHAPE66, &SHAPE66, &SHAPE66, &SHAPE99, &SHAPE99, &SHAPE99, &SHAPE99, &SHAPE64, &SHAPE64,
&SHAPE64, &SHAPE64, &SHAPE98, &SHAPE98, &SHAPE98, &SHAPE98, &SHAPE64, &SHAPE64, &SHAPE64,
- &SHAPE64, &SHAPE99, &SHAPE99, &SHAPE99, &SHAPE99, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1,
+ &SHAPE64, &SHAPE99, &SHAPE99, &SHAPE99, &SHAPE99, &SHAPE65, &SHAPE65, &SHAPE65, &SHAPE65,
+ &SHAPE98, &SHAPE98, &SHAPE98, &SHAPE98, &SHAPE65, &SHAPE65, &SHAPE65, &SHAPE65, &SHAPE99,
+ &SHAPE99, &SHAPE99, &SHAPE99, &SHAPE67, &SHAPE67, &SHAPE67, &SHAPE67, &SHAPE98, &SHAPE98,
+ &SHAPE98, &SHAPE98, &SHAPE67, &SHAPE67, &SHAPE67, &SHAPE67, &SHAPE99, &SHAPE99, &SHAPE99,
+ &SHAPE99, &SHAPE66, &SHAPE66, &SHAPE66, &SHAPE66, &SHAPE98, &SHAPE98, &SHAPE98, &SHAPE98,
+ &SHAPE66, &SHAPE66, &SHAPE66, &SHAPE66, &SHAPE99, &SHAPE99, &SHAPE99, &SHAPE99, &SHAPE64,
+ &SHAPE64, &SHAPE64, &SHAPE64, &SHAPE98, &SHAPE98, &SHAPE98, &SHAPE98, &SHAPE64, &SHAPE64,
+ &SHAPE64, &SHAPE64, &SHAPE99, &SHAPE99, &SHAPE99, &SHAPE99, &SHAPE65, &SHAPE65, &SHAPE65,
+ &SHAPE65, &SHAPE98, &SHAPE98, &SHAPE98, &SHAPE98, &SHAPE65, &SHAPE65, &SHAPE65, &SHAPE65,
+ &SHAPE99, &SHAPE99, &SHAPE99, &SHAPE99, &SHAPE67, &SHAPE67, &SHAPE67, &SHAPE67, &SHAPE98,
+ &SHAPE98, &SHAPE98, &SHAPE98, &SHAPE67, &SHAPE67, &SHAPE67, &SHAPE67, &SHAPE99, &SHAPE99,
+ &SHAPE99, &SHAPE99, &SHAPE66, &SHAPE66, &SHAPE66, &SHAPE66, &SHAPE98, &SHAPE98, &SHAPE98,
+ &SHAPE98, &SHAPE66, &SHAPE66, &SHAPE66, &SHAPE66, &SHAPE99, &SHAPE99, &SHAPE99, &SHAPE99,
+ &SHAPE64, &SHAPE64, &SHAPE64, &SHAPE64, &SHAPE98, &SHAPE98, &SHAPE98, &SHAPE98, &SHAPE64,
+ &SHAPE64, &SHAPE64, &SHAPE64, &SHAPE99, &SHAPE99, &SHAPE99, &SHAPE99, &SHAPE65, &SHAPE65,
+ &SHAPE65, &SHAPE65, &SHAPE98, &SHAPE98, &SHAPE98, &SHAPE98, &SHAPE65, &SHAPE65, &SHAPE65,
+ &SHAPE65, &SHAPE99, &SHAPE99, &SHAPE99, &SHAPE99, &SHAPE67, &SHAPE67, &SHAPE67, &SHAPE67,
+ &SHAPE98, &SHAPE98, &SHAPE98, &SHAPE98, &SHAPE67, &SHAPE67, &SHAPE67, &SHAPE67, &SHAPE99,
+ &SHAPE99, &SHAPE99, &SHAPE99, &SHAPE66, &SHAPE66, &SHAPE66, &SHAPE66, &SHAPE98, &SHAPE98,
+ &SHAPE98, &SHAPE98, &SHAPE66, &SHAPE66, &SHAPE66, &SHAPE66, &SHAPE99, &SHAPE99, &SHAPE99,
+ &SHAPE99, &SHAPE64, &SHAPE64, &SHAPE64, &SHAPE64, &SHAPE98, &SHAPE98, &SHAPE98, &SHAPE98,
+ &SHAPE64, &SHAPE64, &SHAPE64, &SHAPE64, &SHAPE99, &SHAPE99, &SHAPE99, &SHAPE99, &SHAPE1,
&SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1,
&SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1,
&SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1,
&SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1,
&SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1,
- &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE65,
- &SHAPE65, &SHAPE65, &SHAPE65, &SHAPE98, &SHAPE98, &SHAPE98, &SHAPE98, &SHAPE65, &SHAPE65,
- &SHAPE65, &SHAPE65, &SHAPE99, &SHAPE99, &SHAPE99, &SHAPE99, &SHAPE67, &SHAPE67, &SHAPE67,
- &SHAPE67, &SHAPE98, &SHAPE98, &SHAPE98, &SHAPE98, &SHAPE67, &SHAPE67, &SHAPE67, &SHAPE67,
- &SHAPE99, &SHAPE99, &SHAPE99, &SHAPE99, &SHAPE66, &SHAPE66, &SHAPE66, &SHAPE66, &SHAPE98,
- &SHAPE98, &SHAPE98, &SHAPE98, &SHAPE66, &SHAPE66, &SHAPE66, &SHAPE66, &SHAPE99, &SHAPE99,
- &SHAPE99, &SHAPE99, &SHAPE64, &SHAPE64, &SHAPE64, &SHAPE64, &SHAPE98, &SHAPE98, &SHAPE98,
- &SHAPE98, &SHAPE64, &SHAPE64, &SHAPE64, &SHAPE64, &SHAPE99, &SHAPE99, &SHAPE99, &SHAPE99,
- &SHAPE65, &SHAPE65, &SHAPE65, &SHAPE65, &SHAPE98, &SHAPE98, &SHAPE98, &SHAPE98, &SHAPE65,
- &SHAPE65, &SHAPE65, &SHAPE65, &SHAPE99, &SHAPE99, &SHAPE99, &SHAPE99, &SHAPE67, &SHAPE67,
- &SHAPE67, &SHAPE67, &SHAPE98, &SHAPE98, &SHAPE98, &SHAPE98, &SHAPE67, &SHAPE67, &SHAPE67,
- &SHAPE67, &SHAPE99, &SHAPE99, &SHAPE99, &SHAPE99, &SHAPE66, &SHAPE66, &SHAPE66, &SHAPE66,
- &SHAPE98, &SHAPE98, &SHAPE98, &SHAPE98, &SHAPE66, &SHAPE66, &SHAPE66, &SHAPE66, &SHAPE99,
- &SHAPE99, &SHAPE99, &SHAPE99, &SHAPE64, &SHAPE64, &SHAPE64, &SHAPE64, &SHAPE98, &SHAPE98,
- &SHAPE98, &SHAPE98, &SHAPE64, &SHAPE64, &SHAPE64, &SHAPE64, &SHAPE99, &SHAPE99, &SHAPE99,
- &SHAPE99, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1,
+ &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1,
+ &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE65, &SHAPE65, &SHAPE65, &SHAPE65, &SHAPE98, &SHAPE98,
+ &SHAPE98, &SHAPE98, &SHAPE65, &SHAPE65, &SHAPE65, &SHAPE65, &SHAPE99, &SHAPE99, &SHAPE99,
+ &SHAPE99, &SHAPE67, &SHAPE67, &SHAPE67, &SHAPE67, &SHAPE98, &SHAPE98, &SHAPE98, &SHAPE98,
+ &SHAPE67, &SHAPE67, &SHAPE67, &SHAPE67, &SHAPE99, &SHAPE99, &SHAPE99, &SHAPE99, &SHAPE66,
+ &SHAPE66, &SHAPE66, &SHAPE66, &SHAPE98, &SHAPE98, &SHAPE98, &SHAPE98, &SHAPE66, &SHAPE66,
+ &SHAPE66, &SHAPE66, &SHAPE99, &SHAPE99, &SHAPE99, &SHAPE99, &SHAPE64, &SHAPE64, &SHAPE64,
+ &SHAPE64, &SHAPE98, &SHAPE98, &SHAPE98, &SHAPE98, &SHAPE64, &SHAPE64, &SHAPE64, &SHAPE64,
+ &SHAPE99, &SHAPE99, &SHAPE99, &SHAPE99, &SHAPE65, &SHAPE65, &SHAPE65, &SHAPE65, &SHAPE98,
+ &SHAPE98, &SHAPE98, &SHAPE98, &SHAPE65, &SHAPE65, &SHAPE65, &SHAPE65, &SHAPE99, &SHAPE99,
+ &SHAPE99, &SHAPE99, &SHAPE67, &SHAPE67, &SHAPE67, &SHAPE67, &SHAPE98, &SHAPE98, &SHAPE98,
+ &SHAPE98, &SHAPE67, &SHAPE67, &SHAPE67, &SHAPE67, &SHAPE99, &SHAPE99, &SHAPE99, &SHAPE99,
+ &SHAPE66, &SHAPE66, &SHAPE66, &SHAPE66, &SHAPE98, &SHAPE98, &SHAPE98, &SHAPE98, &SHAPE66,
+ &SHAPE66, &SHAPE66, &SHAPE66, &SHAPE99, &SHAPE99, &SHAPE99, &SHAPE99, &SHAPE64, &SHAPE64,
+ &SHAPE64, &SHAPE64, &SHAPE98, &SHAPE98, &SHAPE98, &SHAPE98, &SHAPE64, &SHAPE64, &SHAPE64,
+ &SHAPE64, &SHAPE99, &SHAPE99, &SHAPE99, &SHAPE99, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1,
&SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1,
&SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1,
&SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1,
@@ -2485,16 +2485,16 @@ static SHAPES_MAP: [&LazyLock<VoxelShape>; 27113] = [
&SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1,
&SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1,
&SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1,
- &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE100, &SHAPE101, &SHAPE100, &SHAPE101,
+ &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE100,
+ &SHAPE101, &SHAPE100, &SHAPE101, &SHAPE102, &SHAPE103, &SHAPE102, &SHAPE103, &SHAPE104,
+ &SHAPE105, &SHAPE104, &SHAPE105, &SHAPE106, &SHAPE107, &SHAPE106, &SHAPE107, &SHAPE108,
+ &SHAPE109, &SHAPE108, &SHAPE109, &SHAPE110, &SHAPE111, &SHAPE110, &SHAPE111, &SHAPE112,
+ &SHAPE113, &SHAPE112, &SHAPE113, &SHAPE114, &SHAPE2, &SHAPE114, &SHAPE2, &SHAPE115, &SHAPE115,
+ &SHAPE116, &SHAPE116, &SHAPE117, &SHAPE117, &SHAPE100, &SHAPE101, &SHAPE100, &SHAPE101,
&SHAPE102, &SHAPE103, &SHAPE102, &SHAPE103, &SHAPE104, &SHAPE105, &SHAPE104, &SHAPE105,
&SHAPE106, &SHAPE107, &SHAPE106, &SHAPE107, &SHAPE108, &SHAPE109, &SHAPE108, &SHAPE109,
&SHAPE110, &SHAPE111, &SHAPE110, &SHAPE111, &SHAPE112, &SHAPE113, &SHAPE112, &SHAPE113,
- &SHAPE114, &SHAPE2, &SHAPE114, &SHAPE2, &SHAPE115, &SHAPE115, &SHAPE116, &SHAPE116, &SHAPE117,
- &SHAPE117, &SHAPE100, &SHAPE101, &SHAPE100, &SHAPE101, &SHAPE102, &SHAPE103, &SHAPE102,
- &SHAPE103, &SHAPE104, &SHAPE105, &SHAPE104, &SHAPE105, &SHAPE106, &SHAPE107, &SHAPE106,
- &SHAPE107, &SHAPE108, &SHAPE109, &SHAPE108, &SHAPE109, &SHAPE110, &SHAPE111, &SHAPE110,
- &SHAPE111, &SHAPE112, &SHAPE113, &SHAPE112, &SHAPE113, &SHAPE114, &SHAPE2, &SHAPE114, &SHAPE2,
- &SHAPE1, &SHAPE1, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0,
+ &SHAPE114, &SHAPE2, &SHAPE114, &SHAPE2, &SHAPE1, &SHAPE1, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0,
&SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0,
&SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0,
&SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0,
@@ -2512,10 +2512,41 @@ static SHAPES_MAP: [&LazyLock<VoxelShape>; 27113] = [
&SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0,
&SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0,
&SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0,
- &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE80, &SHAPE80,
- &SHAPE0, &SHAPE0, &SHAPE80, &SHAPE80, &SHAPE0, &SHAPE0, &SHAPE80, &SHAPE80, &SHAPE0, &SHAPE0,
- &SHAPE80, &SHAPE80, &SHAPE0, &SHAPE0, &SHAPE83, &SHAPE83, &SHAPE0, &SHAPE0, &SHAPE83, &SHAPE83,
- &SHAPE0, &SHAPE0, &SHAPE83, &SHAPE83, &SHAPE0, &SHAPE0, &SHAPE83, &SHAPE83, &SHAPE29, &SHAPE29,
+ &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0,
+ &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1,
+ &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1,
+ &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1,
+ &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1,
+ &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1,
+ &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1,
+ &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1,
+ &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1,
+ &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1,
+ &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1,
+ &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1,
+ &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1,
+ &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE0, &SHAPE0,
+ &SHAPE80, &SHAPE80, &SHAPE0, &SHAPE0, &SHAPE80, &SHAPE80, &SHAPE0, &SHAPE0, &SHAPE80, &SHAPE80,
+ &SHAPE0, &SHAPE0, &SHAPE80, &SHAPE80, &SHAPE0, &SHAPE0, &SHAPE83, &SHAPE83, &SHAPE0, &SHAPE0,
+ &SHAPE83, &SHAPE83, &SHAPE0, &SHAPE0, &SHAPE83, &SHAPE83, &SHAPE0, &SHAPE0, &SHAPE83, &SHAPE83,
+ &SHAPE29, &SHAPE29, &SHAPE30, &SHAPE30, &SHAPE31, &SHAPE31, &SHAPE32, &SHAPE32, &SHAPE33,
+ &SHAPE33, &SHAPE34, &SHAPE34, &SHAPE35, &SHAPE35, &SHAPE36, &SHAPE36, &SHAPE37, &SHAPE37,
+ &SHAPE38, &SHAPE38, &SHAPE39, &SHAPE39, &SHAPE40, &SHAPE40, &SHAPE41, &SHAPE41, &SHAPE42,
+ &SHAPE42, &SHAPE43, &SHAPE43, &SHAPE44, &SHAPE44, &SHAPE45, &SHAPE45, &SHAPE46, &SHAPE46,
+ &SHAPE47, &SHAPE47, &SHAPE48, &SHAPE48, &SHAPE49, &SHAPE49, &SHAPE41, &SHAPE41, &SHAPE30,
+ &SHAPE30, &SHAPE43, &SHAPE43, &SHAPE32, &SHAPE32, &SHAPE50, &SHAPE50, &SHAPE46, &SHAPE46,
+ &SHAPE35, &SHAPE35, &SHAPE48, &SHAPE48, &SHAPE37, &SHAPE37, &SHAPE51, &SHAPE51, &SHAPE31,
+ &SHAPE31, &SHAPE40, &SHAPE40, &SHAPE33, &SHAPE33, &SHAPE42, &SHAPE42, &SHAPE52, &SHAPE52,
+ &SHAPE36, &SHAPE36, &SHAPE45, &SHAPE45, &SHAPE38, &SHAPE38, &SHAPE47, &SHAPE47, &SHAPE29,
+ &SHAPE29, &SHAPE30, &SHAPE30, &SHAPE31, &SHAPE31, &SHAPE32, &SHAPE32, &SHAPE33, &SHAPE33,
+ &SHAPE34, &SHAPE34, &SHAPE35, &SHAPE35, &SHAPE36, &SHAPE36, &SHAPE37, &SHAPE37, &SHAPE38,
+ &SHAPE38, &SHAPE39, &SHAPE39, &SHAPE40, &SHAPE40, &SHAPE41, &SHAPE41, &SHAPE42, &SHAPE42,
+ &SHAPE43, &SHAPE43, &SHAPE44, &SHAPE44, &SHAPE45, &SHAPE45, &SHAPE46, &SHAPE46, &SHAPE47,
+ &SHAPE47, &SHAPE48, &SHAPE48, &SHAPE49, &SHAPE49, &SHAPE41, &SHAPE41, &SHAPE30, &SHAPE30,
+ &SHAPE43, &SHAPE43, &SHAPE32, &SHAPE32, &SHAPE50, &SHAPE50, &SHAPE46, &SHAPE46, &SHAPE35,
+ &SHAPE35, &SHAPE48, &SHAPE48, &SHAPE37, &SHAPE37, &SHAPE51, &SHAPE51, &SHAPE31, &SHAPE31,
+ &SHAPE40, &SHAPE40, &SHAPE33, &SHAPE33, &SHAPE42, &SHAPE42, &SHAPE52, &SHAPE52, &SHAPE36,
+ &SHAPE36, &SHAPE45, &SHAPE45, &SHAPE38, &SHAPE38, &SHAPE47, &SHAPE47, &SHAPE29, &SHAPE29,
&SHAPE30, &SHAPE30, &SHAPE31, &SHAPE31, &SHAPE32, &SHAPE32, &SHAPE33, &SHAPE33, &SHAPE34,
&SHAPE34, &SHAPE35, &SHAPE35, &SHAPE36, &SHAPE36, &SHAPE37, &SHAPE37, &SHAPE38, &SHAPE38,
&SHAPE39, &SHAPE39, &SHAPE40, &SHAPE40, &SHAPE41, &SHAPE41, &SHAPE42, &SHAPE42, &SHAPE43,
@@ -2524,7 +2555,91 @@ static SHAPES_MAP: [&LazyLock<VoxelShape>; 27113] = [
&SHAPE43, &SHAPE32, &SHAPE32, &SHAPE50, &SHAPE50, &SHAPE46, &SHAPE46, &SHAPE35, &SHAPE35,
&SHAPE48, &SHAPE48, &SHAPE37, &SHAPE37, &SHAPE51, &SHAPE51, &SHAPE31, &SHAPE31, &SHAPE40,
&SHAPE40, &SHAPE33, &SHAPE33, &SHAPE42, &SHAPE42, &SHAPE52, &SHAPE52, &SHAPE36, &SHAPE36,
- &SHAPE45, &SHAPE45, &SHAPE38, &SHAPE38, &SHAPE47, &SHAPE47, &SHAPE29, &SHAPE29, &SHAPE30,
+ &SHAPE45, &SHAPE45, &SHAPE38, &SHAPE38, &SHAPE47, &SHAPE47, &SHAPE1, &SHAPE1, &SHAPE119,
+ &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1,
+ &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1,
+ &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1,
+ &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1,
+ &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1,
+ &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1,
+ &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1,
+ &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1,
+ &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1,
+ &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1,
+ &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1,
+ &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1,
+ &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1,
+ &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1,
+ &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1,
+ &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1,
+ &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1,
+ &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1,
+ &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1,
+ &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1,
+ &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1,
+ &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1,
+ &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1,
+ &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1,
+ &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1,
+ &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1,
+ &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1,
+ &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1,
+ &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1,
+ &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1,
+ &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1,
+ &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1,
+ &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1,
+ &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1,
+ &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1,
+ &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1,
+ &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1,
+ &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1,
+ &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1,
+ &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1,
+ &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1,
+ &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE74, &SHAPE75, &SHAPE74, &SHAPE75, &SHAPE76, &SHAPE77,
+ &SHAPE76, &SHAPE77, &SHAPE78, &SHAPE79, &SHAPE78, &SHAPE79, &SHAPE80, &SHAPE81, &SHAPE80,
+ &SHAPE81, &SHAPE82, &SHAPE83, &SHAPE82, &SHAPE83, &SHAPE84, &SHAPE85, &SHAPE84, &SHAPE85,
+ &SHAPE86, &SHAPE87, &SHAPE86, &SHAPE87, &SHAPE88, &SHAPE89, &SHAPE88, &SHAPE89, &SHAPE29,
+ &SHAPE29, &SHAPE30, &SHAPE30, &SHAPE31, &SHAPE31, &SHAPE32, &SHAPE32, &SHAPE33, &SHAPE33,
+ &SHAPE34, &SHAPE34, &SHAPE35, &SHAPE35, &SHAPE36, &SHAPE36, &SHAPE37, &SHAPE37, &SHAPE38,
+ &SHAPE38, &SHAPE39, &SHAPE39, &SHAPE40, &SHAPE40, &SHAPE41, &SHAPE41, &SHAPE42, &SHAPE42,
+ &SHAPE43, &SHAPE43, &SHAPE44, &SHAPE44, &SHAPE45, &SHAPE45, &SHAPE46, &SHAPE46, &SHAPE47,
+ &SHAPE47, &SHAPE48, &SHAPE48, &SHAPE49, &SHAPE49, &SHAPE41, &SHAPE41, &SHAPE30, &SHAPE30,
+ &SHAPE43, &SHAPE43, &SHAPE32, &SHAPE32, &SHAPE50, &SHAPE50, &SHAPE46, &SHAPE46, &SHAPE35,
+ &SHAPE35, &SHAPE48, &SHAPE48, &SHAPE37, &SHAPE37, &SHAPE51, &SHAPE51, &SHAPE31, &SHAPE31,
+ &SHAPE40, &SHAPE40, &SHAPE33, &SHAPE33, &SHAPE42, &SHAPE42, &SHAPE52, &SHAPE52, &SHAPE36,
+ &SHAPE36, &SHAPE45, &SHAPE45, &SHAPE38, &SHAPE38, &SHAPE47, &SHAPE47, &SHAPE0, &SHAPE0,
+ &SHAPE0, &SHAPE0, &SHAPE13, &SHAPE120, &SHAPE120, &SHAPE120, &SHAPE120, &SHAPE120, &SHAPE120,
+ &SHAPE120, &SHAPE120, &SHAPE121, &SHAPE121, &SHAPE121, &SHAPE121, &SHAPE121, &SHAPE121,
+ &SHAPE121, &SHAPE121, &SHAPE0, &SHAPE122, &SHAPE122, &SHAPE122, &SHAPE122, &SHAPE123,
+ &SHAPE123, &SHAPE123, &SHAPE123, &SHAPE1, &SHAPE72, &SHAPE1, &SHAPE1, &SHAPE124, &SHAPE125,
+ &SHAPE126, &SHAPE127, &SHAPE128, &SHAPE129, &SHAPE130, &SHAPE131, &SHAPE132, &SHAPE133,
+ &SHAPE134, &SHAPE135, &SHAPE29, &SHAPE29, &SHAPE30, &SHAPE30, &SHAPE31, &SHAPE31, &SHAPE32,
+ &SHAPE32, &SHAPE33, &SHAPE33, &SHAPE34, &SHAPE34, &SHAPE35, &SHAPE35, &SHAPE36, &SHAPE36,
+ &SHAPE37, &SHAPE37, &SHAPE38, &SHAPE38, &SHAPE39, &SHAPE39, &SHAPE40, &SHAPE40, &SHAPE41,
+ &SHAPE41, &SHAPE42, &SHAPE42, &SHAPE43, &SHAPE43, &SHAPE44, &SHAPE44, &SHAPE45, &SHAPE45,
+ &SHAPE46, &SHAPE46, &SHAPE47, &SHAPE47, &SHAPE48, &SHAPE48, &SHAPE49, &SHAPE49, &SHAPE41,
+ &SHAPE41, &SHAPE30, &SHAPE30, &SHAPE43, &SHAPE43, &SHAPE32, &SHAPE32, &SHAPE50, &SHAPE50,
+ &SHAPE46, &SHAPE46, &SHAPE35, &SHAPE35, &SHAPE48, &SHAPE48, &SHAPE37, &SHAPE37, &SHAPE51,
+ &SHAPE51, &SHAPE31, &SHAPE31, &SHAPE40, &SHAPE40, &SHAPE33, &SHAPE33, &SHAPE42, &SHAPE42,
+ &SHAPE52, &SHAPE52, &SHAPE36, &SHAPE36, &SHAPE45, &SHAPE45, &SHAPE38, &SHAPE38, &SHAPE47,
+ &SHAPE47, &SHAPE1, &SHAPE1, &SHAPE53, &SHAPE53, &SHAPE53, &SHAPE53, &SHAPE53, &SHAPE53,
+ &SHAPE53, &SHAPE53, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0,
+ &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0,
+ &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0,
+ &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0,
+ &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0,
+ &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0,
+ &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0,
+ &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0,
+ &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0,
+ &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0,
+ &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0,
+ &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0,
+ &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0,
+ &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0,
+ &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE1, &SHAPE29, &SHAPE29, &SHAPE30,
&SHAPE30, &SHAPE31, &SHAPE31, &SHAPE32, &SHAPE32, &SHAPE33, &SHAPE33, &SHAPE34, &SHAPE34,
&SHAPE35, &SHAPE35, &SHAPE36, &SHAPE36, &SHAPE37, &SHAPE37, &SHAPE38, &SHAPE38, &SHAPE39,
&SHAPE39, &SHAPE40, &SHAPE40, &SHAPE41, &SHAPE41, &SHAPE42, &SHAPE42, &SHAPE43, &SHAPE43,
@@ -2542,11 +2657,7 @@ static SHAPES_MAP: [&LazyLock<VoxelShape>; 27113] = [
&SHAPE32, &SHAPE50, &SHAPE50, &SHAPE46, &SHAPE46, &SHAPE35, &SHAPE35, &SHAPE48, &SHAPE48,
&SHAPE37, &SHAPE37, &SHAPE51, &SHAPE51, &SHAPE31, &SHAPE31, &SHAPE40, &SHAPE40, &SHAPE33,
&SHAPE33, &SHAPE42, &SHAPE42, &SHAPE52, &SHAPE52, &SHAPE36, &SHAPE36, &SHAPE45, &SHAPE45,
- &SHAPE38, &SHAPE38, &SHAPE47, &SHAPE47, &SHAPE1, &SHAPE1, &SHAPE119, &SHAPE1, &SHAPE74,
- &SHAPE75, &SHAPE74, &SHAPE75, &SHAPE76, &SHAPE77, &SHAPE76, &SHAPE77, &SHAPE78, &SHAPE79,
- &SHAPE78, &SHAPE79, &SHAPE80, &SHAPE81, &SHAPE80, &SHAPE81, &SHAPE82, &SHAPE83, &SHAPE82,
- &SHAPE83, &SHAPE84, &SHAPE85, &SHAPE84, &SHAPE85, &SHAPE86, &SHAPE87, &SHAPE86, &SHAPE87,
- &SHAPE88, &SHAPE89, &SHAPE88, &SHAPE89, &SHAPE29, &SHAPE29, &SHAPE30, &SHAPE30, &SHAPE31,
+ &SHAPE38, &SHAPE38, &SHAPE47, &SHAPE47, &SHAPE29, &SHAPE29, &SHAPE30, &SHAPE30, &SHAPE31,
&SHAPE31, &SHAPE32, &SHAPE32, &SHAPE33, &SHAPE33, &SHAPE34, &SHAPE34, &SHAPE35, &SHAPE35,
&SHAPE36, &SHAPE36, &SHAPE37, &SHAPE37, &SHAPE38, &SHAPE38, &SHAPE39, &SHAPE39, &SHAPE40,
&SHAPE40, &SHAPE41, &SHAPE41, &SHAPE42, &SHAPE42, &SHAPE43, &SHAPE43, &SHAPE44, &SHAPE44,
@@ -2555,105 +2666,8 @@ static SHAPES_MAP: [&LazyLock<VoxelShape>; 27113] = [
&SHAPE50, &SHAPE50, &SHAPE46, &SHAPE46, &SHAPE35, &SHAPE35, &SHAPE48, &SHAPE48, &SHAPE37,
&SHAPE37, &SHAPE51, &SHAPE51, &SHAPE31, &SHAPE31, &SHAPE40, &SHAPE40, &SHAPE33, &SHAPE33,
&SHAPE42, &SHAPE42, &SHAPE52, &SHAPE52, &SHAPE36, &SHAPE36, &SHAPE45, &SHAPE45, &SHAPE38,
- &SHAPE38, &SHAPE47, &SHAPE47, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE13, &SHAPE120,
- &SHAPE120, &SHAPE120, &SHAPE120, &SHAPE120, &SHAPE120, &SHAPE120, &SHAPE120, &SHAPE121,
- &SHAPE121, &SHAPE121, &SHAPE121, &SHAPE121, &SHAPE121, &SHAPE121, &SHAPE121, &SHAPE0,
- &SHAPE122, &SHAPE122, &SHAPE122, &SHAPE122, &SHAPE123, &SHAPE123, &SHAPE123, &SHAPE123,
- &SHAPE1, &SHAPE72, &SHAPE1, &SHAPE1, &SHAPE124, &SHAPE125, &SHAPE126, &SHAPE127, &SHAPE128,
- &SHAPE129, &SHAPE130, &SHAPE131, &SHAPE132, &SHAPE133, &SHAPE134, &SHAPE135, &SHAPE29,
- &SHAPE29, &SHAPE30, &SHAPE30, &SHAPE31, &SHAPE31, &SHAPE32, &SHAPE32, &SHAPE33, &SHAPE33,
- &SHAPE34, &SHAPE34, &SHAPE35, &SHAPE35, &SHAPE36, &SHAPE36, &SHAPE37, &SHAPE37, &SHAPE38,
- &SHAPE38, &SHAPE39, &SHAPE39, &SHAPE40, &SHAPE40, &SHAPE41, &SHAPE41, &SHAPE42, &SHAPE42,
- &SHAPE43, &SHAPE43, &SHAPE44, &SHAPE44, &SHAPE45, &SHAPE45, &SHAPE46, &SHAPE46, &SHAPE47,
- &SHAPE47, &SHAPE48, &SHAPE48, &SHAPE49, &SHAPE49, &SHAPE41, &SHAPE41, &SHAPE30, &SHAPE30,
- &SHAPE43, &SHAPE43, &SHAPE32, &SHAPE32, &SHAPE50, &SHAPE50, &SHAPE46, &SHAPE46, &SHAPE35,
- &SHAPE35, &SHAPE48, &SHAPE48, &SHAPE37, &SHAPE37, &SHAPE51, &SHAPE51, &SHAPE31, &SHAPE31,
- &SHAPE40, &SHAPE40, &SHAPE33, &SHAPE33, &SHAPE42, &SHAPE42, &SHAPE52, &SHAPE52, &SHAPE36,
- &SHAPE36, &SHAPE45, &SHAPE45, &SHAPE38, &SHAPE38, &SHAPE47, &SHAPE47, &SHAPE1, &SHAPE1,
- &SHAPE53, &SHAPE53, &SHAPE53, &SHAPE53, &SHAPE53, &SHAPE53, &SHAPE53, &SHAPE53, &SHAPE0,
- &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0,
- &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0,
- &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0,
- &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0,
- &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0,
- &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0,
- &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0,
- &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0,
- &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0,
- &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0,
- &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0,
- &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0,
- &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0,
- &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0,
- &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE1, &SHAPE29, &SHAPE29, &SHAPE30, &SHAPE30, &SHAPE31, &SHAPE31,
- &SHAPE32, &SHAPE32, &SHAPE33, &SHAPE33, &SHAPE34, &SHAPE34, &SHAPE35, &SHAPE35, &SHAPE36,
- &SHAPE36, &SHAPE37, &SHAPE37, &SHAPE38, &SHAPE38, &SHAPE39, &SHAPE39, &SHAPE40, &SHAPE40,
- &SHAPE41, &SHAPE41, &SHAPE42, &SHAPE42, &SHAPE43, &SHAPE43, &SHAPE44, &SHAPE44, &SHAPE45,
- &SHAPE45, &SHAPE46, &SHAPE46, &SHAPE47, &SHAPE47, &SHAPE48, &SHAPE48, &SHAPE49, &SHAPE49,
- &SHAPE41, &SHAPE41, &SHAPE30, &SHAPE30, &SHAPE43, &SHAPE43, &SHAPE32, &SHAPE32, &SHAPE50,
- &SHAPE50, &SHAPE46, &SHAPE46, &SHAPE35, &SHAPE35, &SHAPE48, &SHAPE48, &SHAPE37, &SHAPE37,
- &SHAPE51, &SHAPE51, &SHAPE31, &SHAPE31, &SHAPE40, &SHAPE40, &SHAPE33, &SHAPE33, &SHAPE42,
- &SHAPE42, &SHAPE52, &SHAPE52, &SHAPE36, &SHAPE36, &SHAPE45, &SHAPE45, &SHAPE38, &SHAPE38,
- &SHAPE47, &SHAPE47, &SHAPE29, &SHAPE29, &SHAPE30, &SHAPE30, &SHAPE31, &SHAPE31, &SHAPE32,
- &SHAPE32, &SHAPE33, &SHAPE33, &SHAPE34, &SHAPE34, &SHAPE35, &SHAPE35, &SHAPE36, &SHAPE36,
- &SHAPE37, &SHAPE37, &SHAPE38, &SHAPE38, &SHAPE39, &SHAPE39, &SHAPE40, &SHAPE40, &SHAPE41,
- &SHAPE41, &SHAPE42, &SHAPE42, &SHAPE43, &SHAPE43, &SHAPE44, &SHAPE44, &SHAPE45, &SHAPE45,
- &SHAPE46, &SHAPE46, &SHAPE47, &SHAPE47, &SHAPE48, &SHAPE48, &SHAPE49, &SHAPE49, &SHAPE41,
- &SHAPE41, &SHAPE30, &SHAPE30, &SHAPE43, &SHAPE43, &SHAPE32, &SHAPE32, &SHAPE50, &SHAPE50,
- &SHAPE46, &SHAPE46, &SHAPE35, &SHAPE35, &SHAPE48, &SHAPE48, &SHAPE37, &SHAPE37, &SHAPE51,
- &SHAPE51, &SHAPE31, &SHAPE31, &SHAPE40, &SHAPE40, &SHAPE33, &SHAPE33, &SHAPE42, &SHAPE42,
- &SHAPE52, &SHAPE52, &SHAPE36, &SHAPE36, &SHAPE45, &SHAPE45, &SHAPE38, &SHAPE38, &SHAPE47,
- &SHAPE47, &SHAPE29, &SHAPE29, &SHAPE30, &SHAPE30, &SHAPE31, &SHAPE31, &SHAPE32, &SHAPE32,
- &SHAPE33, &SHAPE33, &SHAPE34, &SHAPE34, &SHAPE35, &SHAPE35, &SHAPE36, &SHAPE36, &SHAPE37,
- &SHAPE37, &SHAPE38, &SHAPE38, &SHAPE39, &SHAPE39, &SHAPE40, &SHAPE40, &SHAPE41, &SHAPE41,
- &SHAPE42, &SHAPE42, &SHAPE43, &SHAPE43, &SHAPE44, &SHAPE44, &SHAPE45, &SHAPE45, &SHAPE46,
- &SHAPE46, &SHAPE47, &SHAPE47, &SHAPE48, &SHAPE48, &SHAPE49, &SHAPE49, &SHAPE41, &SHAPE41,
- &SHAPE30, &SHAPE30, &SHAPE43, &SHAPE43, &SHAPE32, &SHAPE32, &SHAPE50, &SHAPE50, &SHAPE46,
- &SHAPE46, &SHAPE35, &SHAPE35, &SHAPE48, &SHAPE48, &SHAPE37, &SHAPE37, &SHAPE51, &SHAPE51,
- &SHAPE31, &SHAPE31, &SHAPE40, &SHAPE40, &SHAPE33, &SHAPE33, &SHAPE42, &SHAPE42, &SHAPE52,
- &SHAPE52, &SHAPE36, &SHAPE36, &SHAPE45, &SHAPE45, &SHAPE38, &SHAPE38, &SHAPE47, &SHAPE47,
- &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1,
- &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE136, &SHAPE137, &SHAPE137, &SHAPE136, &SHAPE137, &SHAPE137,
- &SHAPE0, &SHAPE138, &SHAPE138, &SHAPE0, &SHAPE138, &SHAPE138, &SHAPE139, &SHAPE140, &SHAPE140,
- &SHAPE139, &SHAPE140, &SHAPE140, &SHAPE141, &SHAPE142, &SHAPE142, &SHAPE141, &SHAPE142,
- &SHAPE142, &SHAPE139, &SHAPE140, &SHAPE140, &SHAPE139, &SHAPE140, &SHAPE140, &SHAPE141,
- &SHAPE142, &SHAPE142, &SHAPE141, &SHAPE142, &SHAPE142, &SHAPE143, &SHAPE144, &SHAPE144,
- &SHAPE143, &SHAPE144, &SHAPE144, &SHAPE145, &SHAPE146, &SHAPE146, &SHAPE145, &SHAPE146,
- &SHAPE146, &SHAPE147, &SHAPE148, &SHAPE148, &SHAPE147, &SHAPE148, &SHAPE148, &SHAPE149,
- &SHAPE150, &SHAPE150, &SHAPE149, &SHAPE150, &SHAPE150, &SHAPE147, &SHAPE148, &SHAPE148,
- &SHAPE147, &SHAPE148, &SHAPE148, &SHAPE149, &SHAPE150, &SHAPE150, &SHAPE149, &SHAPE150,
- &SHAPE150, &SHAPE143, &SHAPE144, &SHAPE144, &SHAPE143, &SHAPE144, &SHAPE144, &SHAPE145,
- &SHAPE146, &SHAPE146, &SHAPE145, &SHAPE146, &SHAPE146, &SHAPE147, &SHAPE148, &SHAPE148,
- &SHAPE147, &SHAPE148, &SHAPE148, &SHAPE149, &SHAPE150, &SHAPE150, &SHAPE149, &SHAPE150,
- &SHAPE150, &SHAPE147, &SHAPE148, &SHAPE148, &SHAPE147, &SHAPE148, &SHAPE148, &SHAPE149,
- &SHAPE150, &SHAPE150, &SHAPE149, &SHAPE150, &SHAPE150, &SHAPE151, &SHAPE152, &SHAPE152,
- &SHAPE151, &SHAPE152, &SHAPE152, &SHAPE153, &SHAPE154, &SHAPE154, &SHAPE153, &SHAPE154,
- &SHAPE154, &SHAPE155, &SHAPE156, &SHAPE156, &SHAPE155, &SHAPE156, &SHAPE156, &SHAPE157,
- &SHAPE158, &SHAPE158, &SHAPE157, &SHAPE158, &SHAPE158, &SHAPE155, &SHAPE156, &SHAPE156,
- &SHAPE155, &SHAPE156, &SHAPE156, &SHAPE157, &SHAPE158, &SHAPE158, &SHAPE157, &SHAPE158,
- &SHAPE158, &SHAPE159, &SHAPE160, &SHAPE160, &SHAPE159, &SHAPE160, &SHAPE160, &SHAPE161,
- &SHAPE162, &SHAPE162, &SHAPE161, &SHAPE162, &SHAPE162, &SHAPE163, &SHAPE164, &SHAPE164,
- &SHAPE163, &SHAPE164, &SHAPE164, &SHAPE165, &SHAPE166, &SHAPE166, &SHAPE165, &SHAPE166,
- &SHAPE166, &SHAPE163, &SHAPE164, &SHAPE164, &SHAPE163, &SHAPE164, &SHAPE164, &SHAPE165,
- &SHAPE166, &SHAPE166, &SHAPE165, &SHAPE166, &SHAPE166, &SHAPE159, &SHAPE160, &SHAPE160,
- &SHAPE159, &SHAPE160, &SHAPE160, &SHAPE161, &SHAPE162, &SHAPE162, &SHAPE161, &SHAPE162,
- &SHAPE162, &SHAPE163, &SHAPE164, &SHAPE164, &SHAPE163, &SHAPE164, &SHAPE164, &SHAPE165,
- &SHAPE166, &SHAPE166, &SHAPE165, &SHAPE166, &SHAPE166, &SHAPE163, &SHAPE164, &SHAPE164,
- &SHAPE163, &SHAPE164, &SHAPE164, &SHAPE165, &SHAPE166, &SHAPE166, &SHAPE165, &SHAPE166,
- &SHAPE166, &SHAPE151, &SHAPE152, &SHAPE152, &SHAPE151, &SHAPE152, &SHAPE152, &SHAPE153,
- &SHAPE154, &SHAPE154, &SHAPE153, &SHAPE154, &SHAPE154, &SHAPE155, &SHAPE156, &SHAPE156,
- &SHAPE155, &SHAPE156, &SHAPE156, &SHAPE157, &SHAPE158, &SHAPE158, &SHAPE157, &SHAPE158,
- &SHAPE158, &SHAPE155, &SHAPE156, &SHAPE156, &SHAPE155, &SHAPE156, &SHAPE156, &SHAPE157,
- &SHAPE158, &SHAPE158, &SHAPE157, &SHAPE158, &SHAPE158, &SHAPE159, &SHAPE160, &SHAPE160,
- &SHAPE159, &SHAPE160, &SHAPE160, &SHAPE161, &SHAPE162, &SHAPE162, &SHAPE161, &SHAPE162,
- &SHAPE162, &SHAPE163, &SHAPE164, &SHAPE164, &SHAPE163, &SHAPE164, &SHAPE164, &SHAPE165,
- &SHAPE166, &SHAPE166, &SHAPE165, &SHAPE166, &SHAPE166, &SHAPE163, &SHAPE164, &SHAPE164,
- &SHAPE163, &SHAPE164, &SHAPE164, &SHAPE165, &SHAPE166, &SHAPE166, &SHAPE165, &SHAPE166,
- &SHAPE166, &SHAPE159, &SHAPE160, &SHAPE160, &SHAPE159, &SHAPE160, &SHAPE160, &SHAPE161,
- &SHAPE162, &SHAPE162, &SHAPE161, &SHAPE162, &SHAPE162, &SHAPE163, &SHAPE164, &SHAPE164,
- &SHAPE163, &SHAPE164, &SHAPE164, &SHAPE165, &SHAPE166, &SHAPE166, &SHAPE165, &SHAPE166,
- &SHAPE166, &SHAPE163, &SHAPE164, &SHAPE164, &SHAPE163, &SHAPE164, &SHAPE164, &SHAPE165,
- &SHAPE166, &SHAPE166, &SHAPE165, &SHAPE166, &SHAPE166, &SHAPE136, &SHAPE137, &SHAPE137,
+ &SHAPE38, &SHAPE47, &SHAPE47, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1,
+ &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE136, &SHAPE137, &SHAPE137,
&SHAPE136, &SHAPE137, &SHAPE137, &SHAPE0, &SHAPE138, &SHAPE138, &SHAPE0, &SHAPE138, &SHAPE138,
&SHAPE139, &SHAPE140, &SHAPE140, &SHAPE139, &SHAPE140, &SHAPE140, &SHAPE141, &SHAPE142,
&SHAPE142, &SHAPE141, &SHAPE142, &SHAPE142, &SHAPE139, &SHAPE140, &SHAPE140, &SHAPE139,
@@ -2694,10 +2708,51 @@ static SHAPES_MAP: [&LazyLock<VoxelShape>; 27113] = [
&SHAPE163, &SHAPE164, &SHAPE164, &SHAPE163, &SHAPE164, &SHAPE164, &SHAPE165, &SHAPE166,
&SHAPE166, &SHAPE165, &SHAPE166, &SHAPE166, &SHAPE163, &SHAPE164, &SHAPE164, &SHAPE163,
&SHAPE164, &SHAPE164, &SHAPE165, &SHAPE166, &SHAPE166, &SHAPE165, &SHAPE166, &SHAPE166,
+ &SHAPE136, &SHAPE137, &SHAPE137, &SHAPE136, &SHAPE137, &SHAPE137, &SHAPE0, &SHAPE138,
+ &SHAPE138, &SHAPE0, &SHAPE138, &SHAPE138, &SHAPE139, &SHAPE140, &SHAPE140, &SHAPE139,
+ &SHAPE140, &SHAPE140, &SHAPE141, &SHAPE142, &SHAPE142, &SHAPE141, &SHAPE142, &SHAPE142,
+ &SHAPE139, &SHAPE140, &SHAPE140, &SHAPE139, &SHAPE140, &SHAPE140, &SHAPE141, &SHAPE142,
+ &SHAPE142, &SHAPE141, &SHAPE142, &SHAPE142, &SHAPE143, &SHAPE144, &SHAPE144, &SHAPE143,
+ &SHAPE144, &SHAPE144, &SHAPE145, &SHAPE146, &SHAPE146, &SHAPE145, &SHAPE146, &SHAPE146,
+ &SHAPE147, &SHAPE148, &SHAPE148, &SHAPE147, &SHAPE148, &SHAPE148, &SHAPE149, &SHAPE150,
+ &SHAPE150, &SHAPE149, &SHAPE150, &SHAPE150, &SHAPE147, &SHAPE148, &SHAPE148, &SHAPE147,
+ &SHAPE148, &SHAPE148, &SHAPE149, &SHAPE150, &SHAPE150, &SHAPE149, &SHAPE150, &SHAPE150,
+ &SHAPE143, &SHAPE144, &SHAPE144, &SHAPE143, &SHAPE144, &SHAPE144, &SHAPE145, &SHAPE146,
+ &SHAPE146, &SHAPE145, &SHAPE146, &SHAPE146, &SHAPE147, &SHAPE148, &SHAPE148, &SHAPE147,
+ &SHAPE148, &SHAPE148, &SHAPE149, &SHAPE150, &SHAPE150, &SHAPE149, &SHAPE150, &SHAPE150,
+ &SHAPE147, &SHAPE148, &SHAPE148, &SHAPE147, &SHAPE148, &SHAPE148, &SHAPE149, &SHAPE150,
+ &SHAPE150, &SHAPE149, &SHAPE150, &SHAPE150, &SHAPE151, &SHAPE152, &SHAPE152, &SHAPE151,
+ &SHAPE152, &SHAPE152, &SHAPE153, &SHAPE154, &SHAPE154, &SHAPE153, &SHAPE154, &SHAPE154,
+ &SHAPE155, &SHAPE156, &SHAPE156, &SHAPE155, &SHAPE156, &SHAPE156, &SHAPE157, &SHAPE158,
+ &SHAPE158, &SHAPE157, &SHAPE158, &SHAPE158, &SHAPE155, &SHAPE156, &SHAPE156, &SHAPE155,
+ &SHAPE156, &SHAPE156, &SHAPE157, &SHAPE158, &SHAPE158, &SHAPE157, &SHAPE158, &SHAPE158,
+ &SHAPE159, &SHAPE160, &SHAPE160, &SHAPE159, &SHAPE160, &SHAPE160, &SHAPE161, &SHAPE162,
+ &SHAPE162, &SHAPE161, &SHAPE162, &SHAPE162, &SHAPE163, &SHAPE164, &SHAPE164, &SHAPE163,
+ &SHAPE164, &SHAPE164, &SHAPE165, &SHAPE166, &SHAPE166, &SHAPE165, &SHAPE166, &SHAPE166,
+ &SHAPE163, &SHAPE164, &SHAPE164, &SHAPE163, &SHAPE164, &SHAPE164, &SHAPE165, &SHAPE166,
+ &SHAPE166, &SHAPE165, &SHAPE166, &SHAPE166, &SHAPE159, &SHAPE160, &SHAPE160, &SHAPE159,
+ &SHAPE160, &SHAPE160, &SHAPE161, &SHAPE162, &SHAPE162, &SHAPE161, &SHAPE162, &SHAPE162,
+ &SHAPE163, &SHAPE164, &SHAPE164, &SHAPE163, &SHAPE164, &SHAPE164, &SHAPE165, &SHAPE166,
+ &SHAPE166, &SHAPE165, &SHAPE166, &SHAPE166, &SHAPE163, &SHAPE164, &SHAPE164, &SHAPE163,
+ &SHAPE164, &SHAPE164, &SHAPE165, &SHAPE166, &SHAPE166, &SHAPE165, &SHAPE166, &SHAPE166,
+ &SHAPE151, &SHAPE152, &SHAPE152, &SHAPE151, &SHAPE152, &SHAPE152, &SHAPE153, &SHAPE154,
+ &SHAPE154, &SHAPE153, &SHAPE154, &SHAPE154, &SHAPE155, &SHAPE156, &SHAPE156, &SHAPE155,
+ &SHAPE156, &SHAPE156, &SHAPE157, &SHAPE158, &SHAPE158, &SHAPE157, &SHAPE158, &SHAPE158,
+ &SHAPE155, &SHAPE156, &SHAPE156, &SHAPE155, &SHAPE156, &SHAPE156, &SHAPE157, &SHAPE158,
+ &SHAPE158, &SHAPE157, &SHAPE158, &SHAPE158, &SHAPE159, &SHAPE160, &SHAPE160, &SHAPE159,
+ &SHAPE160, &SHAPE160, &SHAPE161, &SHAPE162, &SHAPE162, &SHAPE161, &SHAPE162, &SHAPE162,
+ &SHAPE163, &SHAPE164, &SHAPE164, &SHAPE163, &SHAPE164, &SHAPE164, &SHAPE165, &SHAPE166,
+ &SHAPE166, &SHAPE165, &SHAPE166, &SHAPE166, &SHAPE163, &SHAPE164, &SHAPE164, &SHAPE163,
+ &SHAPE164, &SHAPE164, &SHAPE165, &SHAPE166, &SHAPE166, &SHAPE165, &SHAPE166, &SHAPE166,
+ &SHAPE159, &SHAPE160, &SHAPE160, &SHAPE159, &SHAPE160, &SHAPE160, &SHAPE161, &SHAPE162,
+ &SHAPE162, &SHAPE161, &SHAPE162, &SHAPE162, &SHAPE163, &SHAPE164, &SHAPE164, &SHAPE163,
+ &SHAPE164, &SHAPE164, &SHAPE165, &SHAPE166, &SHAPE166, &SHAPE165, &SHAPE166, &SHAPE166,
+ &SHAPE163, &SHAPE164, &SHAPE164, &SHAPE163, &SHAPE164, &SHAPE164, &SHAPE165, &SHAPE166,
+ &SHAPE166, &SHAPE165, &SHAPE166, &SHAPE166, &SHAPE27, &SHAPE27, &SHAPE27, &SHAPE27, &SHAPE27,
+ &SHAPE27, &SHAPE27, &SHAPE27, &SHAPE27, &SHAPE1, &SHAPE27, &SHAPE27, &SHAPE27, &SHAPE27,
&SHAPE27, &SHAPE27, &SHAPE27, &SHAPE27, &SHAPE27, &SHAPE27, &SHAPE27, &SHAPE27, &SHAPE27,
- &SHAPE1, &SHAPE27, &SHAPE27, &SHAPE27, &SHAPE27, &SHAPE27, &SHAPE27, &SHAPE27, &SHAPE27,
- &SHAPE27, &SHAPE27, &SHAPE27, &SHAPE27, &SHAPE27, &SHAPE27, &SHAPE27, &SHAPE27, &SHAPE27,
- &SHAPE27, &SHAPE27, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0,
+ &SHAPE27, &SHAPE27, &SHAPE27, &SHAPE27, &SHAPE27, &SHAPE27, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0,
+ &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0,
&SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0,
&SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0,
&SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0,
@@ -2715,97 +2770,77 @@ static SHAPES_MAP: [&LazyLock<VoxelShape>; 27113] = [
&SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0,
&SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0,
&SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0,
- &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1,
&SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1,
&SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1,
+ &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0,
&SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0,
&SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0,
&SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0,
&SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0,
- &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE169, &SHAPE169,
+ &SHAPE0, &SHAPE0, &SHAPE169, &SHAPE169, &SHAPE169, &SHAPE169, &SHAPE169, &SHAPE169, &SHAPE169,
&SHAPE169, &SHAPE169, &SHAPE169, &SHAPE169, &SHAPE169, &SHAPE169, &SHAPE169, &SHAPE169,
&SHAPE169, &SHAPE169, &SHAPE169, &SHAPE169, &SHAPE169, &SHAPE169, &SHAPE169, &SHAPE169,
&SHAPE169, &SHAPE169, &SHAPE169, &SHAPE169, &SHAPE169, &SHAPE169, &SHAPE169, &SHAPE169,
- &SHAPE169, &SHAPE169, &SHAPE169, &SHAPE169, &SHAPE169, &SHAPE169, &SHAPE170, &SHAPE170,
- &SHAPE171, &SHAPE171, &SHAPE172, &SHAPE172, &SHAPE173, &SHAPE173, &SHAPE169, &SHAPE169,
+ &SHAPE169, &SHAPE170, &SHAPE170, &SHAPE171, &SHAPE171, &SHAPE172, &SHAPE172, &SHAPE173,
+ &SHAPE173, &SHAPE169, &SHAPE169, &SHAPE169, &SHAPE169, &SHAPE169, &SHAPE169, &SHAPE169,
&SHAPE169, &SHAPE169, &SHAPE169, &SHAPE169, &SHAPE169, &SHAPE169, &SHAPE169, &SHAPE169,
&SHAPE169, &SHAPE169, &SHAPE169, &SHAPE169, &SHAPE169, &SHAPE169, &SHAPE169, &SHAPE169,
&SHAPE169, &SHAPE169, &SHAPE169, &SHAPE169, &SHAPE169, &SHAPE169, &SHAPE169, &SHAPE169,
- &SHAPE169, &SHAPE169, &SHAPE169, &SHAPE169, &SHAPE169, &SHAPE169, &SHAPE170, &SHAPE170,
- &SHAPE171, &SHAPE171, &SHAPE172, &SHAPE172, &SHAPE173, &SHAPE173, &SHAPE169, &SHAPE169,
+ &SHAPE169, &SHAPE170, &SHAPE170, &SHAPE171, &SHAPE171, &SHAPE172, &SHAPE172, &SHAPE173,
+ &SHAPE173, &SHAPE169, &SHAPE169, &SHAPE169, &SHAPE169, &SHAPE169, &SHAPE169, &SHAPE169,
&SHAPE169, &SHAPE169, &SHAPE169, &SHAPE169, &SHAPE169, &SHAPE169, &SHAPE169, &SHAPE169,
&SHAPE169, &SHAPE169, &SHAPE169, &SHAPE169, &SHAPE169, &SHAPE169, &SHAPE169, &SHAPE169,
&SHAPE169, &SHAPE169, &SHAPE169, &SHAPE169, &SHAPE169, &SHAPE169, &SHAPE169, &SHAPE169,
- &SHAPE169, &SHAPE169, &SHAPE169, &SHAPE169, &SHAPE169, &SHAPE169, &SHAPE170, &SHAPE170,
- &SHAPE171, &SHAPE171, &SHAPE172, &SHAPE172, &SHAPE173, &SHAPE173, &SHAPE169, &SHAPE169,
+ &SHAPE169, &SHAPE170, &SHAPE170, &SHAPE171, &SHAPE171, &SHAPE172, &SHAPE172, &SHAPE173,
+ &SHAPE173, &SHAPE169, &SHAPE169, &SHAPE169, &SHAPE169, &SHAPE169, &SHAPE169, &SHAPE169,
&SHAPE169, &SHAPE169, &SHAPE169, &SHAPE169, &SHAPE169, &SHAPE169, &SHAPE169, &SHAPE169,
&SHAPE169, &SHAPE169, &SHAPE169, &SHAPE169, &SHAPE169, &SHAPE169, &SHAPE169, &SHAPE169,
&SHAPE169, &SHAPE169, &SHAPE169, &SHAPE169, &SHAPE169, &SHAPE169, &SHAPE169, &SHAPE169,
- &SHAPE169, &SHAPE169, &SHAPE169, &SHAPE169, &SHAPE169, &SHAPE169, &SHAPE170, &SHAPE170,
- &SHAPE171, &SHAPE171, &SHAPE172, &SHAPE172, &SHAPE173, &SHAPE173, &SHAPE169, &SHAPE169,
+ &SHAPE169, &SHAPE170, &SHAPE170, &SHAPE171, &SHAPE171, &SHAPE172, &SHAPE172, &SHAPE173,
+ &SHAPE173, &SHAPE169, &SHAPE169, &SHAPE169, &SHAPE169, &SHAPE169, &SHAPE169, &SHAPE169,
&SHAPE169, &SHAPE169, &SHAPE169, &SHAPE169, &SHAPE169, &SHAPE169, &SHAPE169, &SHAPE169,
&SHAPE169, &SHAPE169, &SHAPE169, &SHAPE169, &SHAPE169, &SHAPE169, &SHAPE169, &SHAPE169,
&SHAPE169, &SHAPE169, &SHAPE169, &SHAPE169, &SHAPE169, &SHAPE169, &SHAPE169, &SHAPE169,
- &SHAPE169, &SHAPE169, &SHAPE169, &SHAPE169, &SHAPE169, &SHAPE169, &SHAPE170, &SHAPE170,
- &SHAPE171, &SHAPE171, &SHAPE172, &SHAPE172, &SHAPE173, &SHAPE173, &SHAPE169, &SHAPE169,
+ &SHAPE169, &SHAPE170, &SHAPE170, &SHAPE171, &SHAPE171, &SHAPE172, &SHAPE172, &SHAPE173,
+ &SHAPE173, &SHAPE169, &SHAPE169, &SHAPE169, &SHAPE169, &SHAPE169, &SHAPE169, &SHAPE169,
&SHAPE169, &SHAPE169, &SHAPE169, &SHAPE169, &SHAPE169, &SHAPE169, &SHAPE169, &SHAPE169,
&SHAPE169, &SHAPE169, &SHAPE169, &SHAPE169, &SHAPE169, &SHAPE169, &SHAPE169, &SHAPE169,
&SHAPE169, &SHAPE169, &SHAPE169, &SHAPE169, &SHAPE169, &SHAPE169, &SHAPE169, &SHAPE169,
- &SHAPE169, &SHAPE169, &SHAPE169, &SHAPE169, &SHAPE169, &SHAPE169, &SHAPE170, &SHAPE170,
- &SHAPE171, &SHAPE171, &SHAPE172, &SHAPE172, &SHAPE173, &SHAPE173, &SHAPE174, &SHAPE174,
+ &SHAPE169, &SHAPE170, &SHAPE170, &SHAPE171, &SHAPE171, &SHAPE172, &SHAPE172, &SHAPE173,
+ &SHAPE173, &SHAPE174, &SHAPE174, &SHAPE174, &SHAPE174, &SHAPE174, &SHAPE174, &SHAPE174,
&SHAPE174, &SHAPE174, &SHAPE174, &SHAPE174, &SHAPE174, &SHAPE174, &SHAPE174, &SHAPE174,
&SHAPE174, &SHAPE174, &SHAPE174, &SHAPE174, &SHAPE174, &SHAPE174, &SHAPE174, &SHAPE174,
&SHAPE174, &SHAPE174, &SHAPE174, &SHAPE174, &SHAPE174, &SHAPE174, &SHAPE174, &SHAPE174,
- &SHAPE174, &SHAPE174, &SHAPE174, &SHAPE174, &SHAPE174, &SHAPE174, &SHAPE175, &SHAPE175,
- &SHAPE176, &SHAPE176, &SHAPE177, &SHAPE177, &SHAPE178, &SHAPE178, &SHAPE179, &SHAPE179,
- &SHAPE180, &SHAPE180, &SHAPE179, &SHAPE179, &SHAPE180, &SHAPE180, &SHAPE179, &SHAPE179,
- &SHAPE180, &SHAPE180, &SHAPE53, &SHAPE53, &SHAPE54, &SHAPE54, &SHAPE55, &SHAPE55, &SHAPE53,
- &SHAPE53, &SHAPE55, &SHAPE55, &SHAPE54, &SHAPE54, &SHAPE53, &SHAPE53, &SHAPE56, &SHAPE56,
- &SHAPE57, &SHAPE57, &SHAPE53, &SHAPE53, &SHAPE57, &SHAPE57, &SHAPE56, &SHAPE56, &SHAPE0,
- &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0,
+ &SHAPE174, &SHAPE175, &SHAPE175, &SHAPE176, &SHAPE176, &SHAPE177, &SHAPE177, &SHAPE178,
+ &SHAPE178, &SHAPE179, &SHAPE179, &SHAPE180, &SHAPE180, &SHAPE179, &SHAPE179, &SHAPE180,
+ &SHAPE180, &SHAPE179, &SHAPE179, &SHAPE180, &SHAPE180, &SHAPE53, &SHAPE53, &SHAPE54, &SHAPE54,
+ &SHAPE55, &SHAPE55, &SHAPE53, &SHAPE53, &SHAPE55, &SHAPE55, &SHAPE54, &SHAPE54, &SHAPE53,
+ &SHAPE53, &SHAPE56, &SHAPE56, &SHAPE57, &SHAPE57, &SHAPE53, &SHAPE53, &SHAPE57, &SHAPE57,
+ &SHAPE56, &SHAPE56, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0,
&SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0,
&SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0,
- &SHAPE0, &SHAPE7, &SHAPE7, &SHAPE7, &SHAPE7, &SHAPE7, &SHAPE7, &SHAPE7, &SHAPE7, &SHAPE7,
- &SHAPE7, &SHAPE7, &SHAPE7, &SHAPE7, &SHAPE7, &SHAPE7, &SHAPE7, &SHAPE59, &SHAPE59, &SHAPE59,
+ &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE7, &SHAPE7, &SHAPE7, &SHAPE7, &SHAPE7, &SHAPE7,
+ &SHAPE7, &SHAPE7, &SHAPE7, &SHAPE7, &SHAPE7, &SHAPE7, &SHAPE7, &SHAPE7, &SHAPE7, &SHAPE7,
&SHAPE59, &SHAPE59, &SHAPE59, &SHAPE59, &SHAPE59, &SHAPE59, &SHAPE59, &SHAPE59, &SHAPE59,
&SHAPE59, &SHAPE59, &SHAPE59, &SHAPE59, &SHAPE59, &SHAPE59, &SHAPE59, &SHAPE59, &SHAPE59,
&SHAPE59, &SHAPE59, &SHAPE59, &SHAPE59, &SHAPE59, &SHAPE59, &SHAPE59, &SHAPE59, &SHAPE59,
- &SHAPE59, &SHAPE59, &SHAPE1, &SHAPE1, &SHAPE181, &SHAPE182, &SHAPE183, &SHAPE184, &SHAPE185,
- &SHAPE181, &SHAPE182, &SHAPE183, &SHAPE184, &SHAPE185, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1,
- &SHAPE1, &SHAPE29, &SHAPE29, &SHAPE30, &SHAPE30, &SHAPE31, &SHAPE31, &SHAPE32, &SHAPE32,
- &SHAPE33, &SHAPE33, &SHAPE34, &SHAPE34, &SHAPE35, &SHAPE35, &SHAPE36, &SHAPE36, &SHAPE37,
- &SHAPE37, &SHAPE38, &SHAPE38, &SHAPE39, &SHAPE39, &SHAPE40, &SHAPE40, &SHAPE41, &SHAPE41,
- &SHAPE42, &SHAPE42, &SHAPE43, &SHAPE43, &SHAPE44, &SHAPE44, &SHAPE45, &SHAPE45, &SHAPE46,
- &SHAPE46, &SHAPE47, &SHAPE47, &SHAPE48, &SHAPE48, &SHAPE49, &SHAPE49, &SHAPE41, &SHAPE41,
- &SHAPE30, &SHAPE30, &SHAPE43, &SHAPE43, &SHAPE32, &SHAPE32, &SHAPE50, &SHAPE50, &SHAPE46,
- &SHAPE46, &SHAPE35, &SHAPE35, &SHAPE48, &SHAPE48, &SHAPE37, &SHAPE37, &SHAPE51, &SHAPE51,
- &SHAPE31, &SHAPE31, &SHAPE40, &SHAPE40, &SHAPE33, &SHAPE33, &SHAPE42, &SHAPE42, &SHAPE52,
- &SHAPE52, &SHAPE36, &SHAPE36, &SHAPE45, &SHAPE45, &SHAPE38, &SHAPE38, &SHAPE47, &SHAPE47,
- &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0,
+ &SHAPE59, &SHAPE59, &SHAPE59, &SHAPE59, &SHAPE59, &SHAPE1, &SHAPE1, &SHAPE181, &SHAPE182,
+ &SHAPE183, &SHAPE184, &SHAPE185, &SHAPE181, &SHAPE182, &SHAPE183, &SHAPE184, &SHAPE185,
+ &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE29, &SHAPE29, &SHAPE30, &SHAPE30, &SHAPE31,
+ &SHAPE31, &SHAPE32, &SHAPE32, &SHAPE33, &SHAPE33, &SHAPE34, &SHAPE34, &SHAPE35, &SHAPE35,
+ &SHAPE36, &SHAPE36, &SHAPE37, &SHAPE37, &SHAPE38, &SHAPE38, &SHAPE39, &SHAPE39, &SHAPE40,
+ &SHAPE40, &SHAPE41, &SHAPE41, &SHAPE42, &SHAPE42, &SHAPE43, &SHAPE43, &SHAPE44, &SHAPE44,
+ &SHAPE45, &SHAPE45, &SHAPE46, &SHAPE46, &SHAPE47, &SHAPE47, &SHAPE48, &SHAPE48, &SHAPE49,
+ &SHAPE49, &SHAPE41, &SHAPE41, &SHAPE30, &SHAPE30, &SHAPE43, &SHAPE43, &SHAPE32, &SHAPE32,
+ &SHAPE50, &SHAPE50, &SHAPE46, &SHAPE46, &SHAPE35, &SHAPE35, &SHAPE48, &SHAPE48, &SHAPE37,
+ &SHAPE37, &SHAPE51, &SHAPE51, &SHAPE31, &SHAPE31, &SHAPE40, &SHAPE40, &SHAPE33, &SHAPE33,
+ &SHAPE42, &SHAPE42, &SHAPE52, &SHAPE52, &SHAPE36, &SHAPE36, &SHAPE45, &SHAPE45, &SHAPE38,
+ &SHAPE38, &SHAPE47, &SHAPE47, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0,
&SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0,
- &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1,
+ &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE0, &SHAPE1, &SHAPE1, &SHAPE1,
&SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1,
&SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1,
- &SHAPE1, &SHAPE1, &SHAPE100, &SHAPE101, &SHAPE100, &SHAPE101, &SHAPE102, &SHAPE103, &SHAPE102,
- &SHAPE103, &SHAPE104, &SHAPE105, &SHAPE104, &SHAPE105, &SHAPE106, &SHAPE107, &SHAPE106,
- &SHAPE107, &SHAPE108, &SHAPE109, &SHAPE108, &SHAPE109, &SHAPE110, &SHAPE111, &SHAPE110,
- &SHAPE111, &SHAPE112, &SHAPE113, &SHAPE112, &SHAPE113, &SHAPE114, &SHAPE2, &SHAPE114, &SHAPE2,
- &SHAPE100, &SHAPE101, &SHAPE100, &SHAPE101, &SHAPE102, &SHAPE103, &SHAPE102, &SHAPE103,
- &SHAPE104, &SHAPE105, &SHAPE104, &SHAPE105, &SHAPE106, &SHAPE107, &SHAPE106, &SHAPE107,
- &SHAPE108, &SHAPE109, &SHAPE108, &SHAPE109, &SHAPE110, &SHAPE111, &SHAPE110, &SHAPE111,
- &SHAPE112, &SHAPE113, &SHAPE112, &SHAPE113, &SHAPE114, &SHAPE2, &SHAPE114, &SHAPE2, &SHAPE100,
- &SHAPE101, &SHAPE100, &SHAPE101, &SHAPE102, &SHAPE103, &SHAPE102, &SHAPE103, &SHAPE104,
- &SHAPE105, &SHAPE104, &SHAPE105, &SHAPE106, &SHAPE107, &SHAPE106, &SHAPE107, &SHAPE108,
- &SHAPE109, &SHAPE108, &SHAPE109, &SHAPE110, &SHAPE111, &SHAPE110, &SHAPE111, &SHAPE112,
- &SHAPE113, &SHAPE112, &SHAPE113, &SHAPE114, &SHAPE2, &SHAPE114, &SHAPE2, &SHAPE100, &SHAPE101,
- &SHAPE100, &SHAPE101, &SHAPE102, &SHAPE103, &SHAPE102, &SHAPE103, &SHAPE104, &SHAPE105,
- &SHAPE104, &SHAPE105, &SHAPE106, &SHAPE107, &SHAPE106, &SHAPE107, &SHAPE108, &SHAPE109,
- &SHAPE108, &SHAPE109, &SHAPE110, &SHAPE111, &SHAPE110, &SHAPE111, &SHAPE112, &SHAPE113,
- &SHAPE112, &SHAPE113, &SHAPE114, &SHAPE2, &SHAPE114, &SHAPE2, &SHAPE100, &SHAPE101, &SHAPE100,
- &SHAPE101, &SHAPE102, &SHAPE103, &SHAPE102, &SHAPE103, &SHAPE104, &SHAPE105, &SHAPE104,
- &SHAPE105, &SHAPE106, &SHAPE107, &SHAPE106, &SHAPE107, &SHAPE108, &SHAPE109, &SHAPE108,
- &SHAPE109, &SHAPE110, &SHAPE111, &SHAPE110, &SHAPE111, &SHAPE112, &SHAPE113, &SHAPE112,
- &SHAPE113, &SHAPE114, &SHAPE2, &SHAPE114, &SHAPE2, &SHAPE100, &SHAPE101, &SHAPE100, &SHAPE101,
+ &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE1, &SHAPE100, &SHAPE101, &SHAPE100, &SHAPE101,
&SHAPE102, &SHAPE103, &SHAPE102, &SHAPE103, &SHAPE104, &SHAPE105, &SHAPE104, &SHAPE105,
&SHAPE106, &SHAPE107, &SHAPE106, &SHAPE107, &SHAPE108, &SHAPE109, &SHAPE108, &SHAPE109,
&SHAPE110, &SHAPE111, &SHAPE110, &SHAPE111, &SHAPE112, &SHAPE113, &SHAPE112, &SHAPE113,
@@ -2849,6 +2884,26 @@ static SHAPES_MAP: [&LazyLock<VoxelShape>; 27113] = [
&SHAPE102, &SHAPE103, &SHAPE104, &SHAPE105, &SHAPE104, &SHAPE105, &SHAPE106, &SHAPE107,
&SHAPE106, &SHAPE107, &SHAPE108, &SHAPE109, &SHAPE108, &SHAPE109, &SHAPE110, &SHAPE111,
&SHAPE110, &SHAPE111, &SHAPE112, &SHAPE113, &SHAPE112, &SHAPE113, &SHAPE114, &SHAPE2,
+ &SHAPE114, &SHAPE2, &SHAPE100, &SHAPE101, &SHAPE100, &SHAPE101, &SHAPE102, &SHAPE103,
+ &SHAPE102, &SHAPE103, &SHAPE104, &SHAPE105, &SHAPE104, &SHAPE105, &SHAPE106, &SHAPE107,
+ &SHAPE106, &SHAPE107, &SHAPE108, &SHAPE109, &SHAPE108, &SHAPE109, &SHAPE110, &SHAPE111,
+ &SHAPE110, &SHAPE111, &SHAPE112, &SHAPE113, &SHAPE112, &SHAPE113, &SHAPE114, &SHAPE2,
+ &SHAPE114, &SHAPE2, &SHAPE100, &SHAPE101, &SHAPE100, &SHAPE101, &SHAPE102, &SHAPE103,
+ &SHAPE102, &SHAPE103, &SHAPE104, &SHAPE105, &SHAPE104, &SHAPE105, &SHAPE106, &SHAPE107,
+ &SHAPE106, &SHAPE107, &SHAPE108, &SHAPE109, &SHAPE108, &SHAPE109, &SHAPE110, &SHAPE111,
+ &SHAPE110, &SHAPE111, &SHAPE112, &SHAPE113, &SHAPE112, &SHAPE113, &SHAPE114, &SHAPE2,
+ &SHAPE114, &SHAPE2, &SHAPE100, &SHAPE101, &SHAPE100, &SHAPE101, &SHAPE102, &SHAPE103,
+ &SHAPE102, &SHAPE103, &SHAPE104, &SHAPE105, &SHAPE104, &SHAPE105, &SHAPE106, &SHAPE107,
+ &SHAPE106, &SHAPE107, &SHAPE108, &SHAPE109, &SHAPE108, &SHAPE109, &SHAPE110, &SHAPE111,
+ &SHAPE110, &SHAPE111, &SHAPE112, &SHAPE113, &SHAPE112, &SHAPE113, &SHAPE114, &SHAPE2,
+ &SHAPE114, &SHAPE2, &SHAPE100, &SHAPE101, &SHAPE100, &SHAPE101, &SHAPE102, &SHAPE103,
+ &SHAPE102, &SHAPE103, &SHAPE104, &SHAPE105, &SHAPE104, &SHAPE105, &SHAPE106, &SHAPE107,
+ &SHAPE106, &SHAPE107, &SHAPE108, &SHAPE109, &SHAPE108, &SHAPE109, &SHAPE110, &SHAPE111,
+ &SHAPE110, &SHAPE111, &SHAPE112, &SHAPE113, &SHAPE112, &SHAPE113, &SHAPE114, &SHAPE2,
+ &SHAPE114, &SHAPE2, &SHAPE100, &SHAPE101, &SHAPE100, &SHAPE101, &SHAPE102, &SHAPE103,
+ &SHAPE102, &SHAPE103, &SHAPE104, &SHAPE105, &SHAPE104, &SHAPE105, &SHAPE106, &SHAPE107,
+ &SHAPE106, &SHAPE107, &SHAPE108, &SHAPE109, &SHAPE108, &SHAPE109, &SHAPE110, &SHAPE111,
+ &SHAPE110, &SHAPE111, &SHAPE112, &SHAPE113, &SHAPE112, &SHAPE113, &SHAPE114, &SHAPE2,
&SHAPE114, &SHAPE2, &SHAPE29, &SHAPE29, &SHAPE30, &SHAPE30, &SHAPE31, &SHAPE31, &SHAPE32,
&SHAPE32, &SHAPE33, &SHAPE33, &SHAPE34, &SHAPE34, &SHAPE35, &SHAPE35, &SHAPE36, &SHAPE36,
&SHAPE37, &SHAPE37, &SHAPE38, &SHAPE38, &SHAPE39, &SHAPE39, &SHAPE40, &SHAPE40, &SHAPE41,
diff --git a/azalea-protocol/Cargo.toml b/azalea-protocol/Cargo.toml
index 6a24c5ff..1d053a76 100644
--- a/azalea-protocol/Cargo.toml
+++ b/azalea-protocol/Cargo.toml
@@ -4,7 +4,7 @@ edition = "2021"
license = "MIT"
name = "azalea-protocol"
repository = "https://github.com/azalea-rs/azalea/tree/main/azalea-protocol"
-version = "0.10.3+mc1.21.3"
+version = "0.10.3+mc1.21.4"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
diff --git a/azalea-protocol/azalea-protocol-macros/Cargo.toml b/azalea-protocol/azalea-protocol-macros/Cargo.toml
index 5f1d5b6e..0b5e0fda 100644
--- a/azalea-protocol/azalea-protocol-macros/Cargo.toml
+++ b/azalea-protocol/azalea-protocol-macros/Cargo.toml
@@ -3,7 +3,7 @@ description = "Macros internally used in azalea-protocol."
edition = "2021"
license = "MIT"
name = "azalea-protocol-macros"
-version = "0.10.3+mc1.21.3"
+version = "0.10.3+mc1.21.4"
repository = "https://github.com/azalea-rs/azalea/tree/main/azalea-protocol/azalea-protocol-macros"
[lib]
diff --git a/azalea-protocol/src/packets/game/c_level_particles.rs b/azalea-protocol/src/packets/game/c_level_particles.rs
index d700673c..ef50d0cd 100755
--- a/azalea-protocol/src/packets/game/c_level_particles.rs
+++ b/azalea-protocol/src/packets/game/c_level_particles.rs
@@ -5,6 +5,7 @@ use azalea_protocol_macros::ClientboundGamePacket;
#[derive(Clone, Debug, AzBuf, ClientboundGamePacket)]
pub struct ClientboundLevelParticles {
pub override_limiter: bool,
+ pub always_show: bool,
pub x: f64,
pub y: f64,
pub z: f64,
@@ -27,13 +28,14 @@ mod tests {
#[test]
fn test_c_level_particles_packet() {
let slice = &[
- 0, 64, 139, 10, 0, 0, 0, 0, 0, 192, 26, 0, 0, 0, 0, 0, 0, 64, 144, 58, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 13, 63, 128, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 63, 128, 0, 0,
+ 0, 0, 64, 36, 19, 1, 192, 139, 224, 69, 64, 91, 192, 0, 0, 0, 0, 0, 63, 229, 66, 62,
+ 20, 132, 232, 141, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62, 25, 153, 154, 0, 0, 0, 70,
+ 1, 9,
][..];
let mut bytes = Cursor::new(slice);
- let _packet = ClientboundLevelParticles::azalea_read(&mut bytes).unwrap();
+ let packet = ClientboundLevelParticles::azalea_read(&mut bytes).unwrap();
+ println!("{packet:?}");
assert_eq!(bytes.position(), slice.len() as u64);
}
}
diff --git a/azalea-protocol/src/packets/game/mod.rs b/azalea-protocol/src/packets/game/mod.rs
index 757dd27f..35c1a2fe 100755
--- a/azalea-protocol/src/packets/game/mod.rs
+++ b/azalea-protocol/src/packets/game/mod.rs
@@ -172,13 +172,15 @@ declare_state_packets!(GamePacket,
move_player_status_only,
move_vehicle,
paddle_boat,
- pick_item,
+ pick_item_from_block,
+ pick_item_from_entity,
ping_request,
place_recipe,
player_abilities,
player_action,
player_command,
player_input,
+ player_loaded,
pong,
recipe_book_change_settings,
recipe_book_seen_recipe,
diff --git a/azalea-protocol/src/packets/game/s_pick_item.rs b/azalea-protocol/src/packets/game/s_pick_item_from_block.rs
index 289da6e7..d923646b 100755
--- a/azalea-protocol/src/packets/game/s_pick_item.rs
+++ b/azalea-protocol/src/packets/game/s_pick_item_from_block.rs
@@ -2,7 +2,7 @@ use azalea_buf::AzBuf;
use azalea_protocol_macros::ServerboundGamePacket;
#[derive(Clone, Debug, AzBuf, ServerboundGamePacket)]
-pub struct ServerboundPickItem {
+pub struct ServerboundPickItemFromBlock {
#[var]
pub slot: u32,
}
diff --git a/azalea-protocol/src/packets/mod.rs b/azalea-protocol/src/packets/mod.rs
index 14ae7c71..24a1437c 100755
--- a/azalea-protocol/src/packets/mod.rs
+++ b/azalea-protocol/src/packets/mod.rs
@@ -11,8 +11,8 @@ use azalea_buf::{AzaleaReadVar, AzaleaWrite, AzaleaWriteVar, BufReadError};
use crate::read::ReadPacketError;
-pub const PROTOCOL_VERSION: i32 = 768;
-pub const VERSION_NAME: &str = "1.21.3";
+pub const PROTOCOL_VERSION: i32 = 769;
+pub const VERSION_NAME: &str = "1.21.4";
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
pub enum ConnectionProtocol {
diff --git a/azalea-protocol/src/read.rs b/azalea-protocol/src/read.rs
index d75e3bad..3e333e52 100755
--- a/azalea-protocol/src/read.rs
+++ b/azalea-protocol/src/read.rs
@@ -351,7 +351,7 @@ where
}
if log::log_enabled!(log::Level::Trace) {
- const DO_NOT_CUT_OFF_PACKET_LOGS: bool = true;
+ const DO_NOT_CUT_OFF_PACKET_LOGS: bool = false;
let buf_string: String = {
if !DO_NOT_CUT_OFF_PACKET_LOGS && buf.len() > 500 {
diff --git a/azalea-registry/Cargo.toml b/azalea-registry/Cargo.toml
index 1afc14d0..45d16c4a 100644
--- a/azalea-registry/Cargo.toml
+++ b/azalea-registry/Cargo.toml
@@ -4,7 +4,7 @@ edition = "2021"
license = "MIT"
name = "azalea-registry"
repository = "https://github.com/azalea-rs/azalea/tree/main/azalea-registry"
-version = "0.10.3+mc1.21.3"
+version = "0.10.3+mc1.21.4"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
diff --git a/azalea-registry/azalea-registry-macros/Cargo.toml b/azalea-registry/azalea-registry-macros/Cargo.toml
index 147a21ad..f9e21c57 100644
--- a/azalea-registry/azalea-registry-macros/Cargo.toml
+++ b/azalea-registry/azalea-registry-macros/Cargo.toml
@@ -4,7 +4,7 @@ edition = "2021"
license = "MIT"
name = "azalea-registry-macros"
repository = "https://github.com/azalea-rs/azalea/tree/main/azalea-registry/azalea-registry-macros"
-version = "0.10.3+mc1.21.3"
+version = "0.10.3+mc1.21.4"
[lib]
proc-macro = true
diff --git a/azalea-registry/src/lib.rs b/azalea-registry/src/lib.rs
index e1fb2be5..ffead5b4 100755
--- a/azalea-registry/src/lib.rs
+++ b/azalea-registry/src/lib.rs
@@ -600,12 +600,19 @@ enum Block {
MelonStem => "minecraft:melon_stem",
Vine => "minecraft:vine",
GlowLichen => "minecraft:glow_lichen",
+ ResinClump => "minecraft:resin_clump",
OakFenceGate => "minecraft:oak_fence_gate",
BrickStairs => "minecraft:brick_stairs",
StoneBrickStairs => "minecraft:stone_brick_stairs",
MudBrickStairs => "minecraft:mud_brick_stairs",
Mycelium => "minecraft:mycelium",
LilyPad => "minecraft:lily_pad",
+ ResinBlock => "minecraft:resin_block",
+ ResinBricks => "minecraft:resin_bricks",
+ ResinBrickStairs => "minecraft:resin_brick_stairs",
+ ResinBrickSlab => "minecraft:resin_brick_slab",
+ ResinBrickWall => "minecraft:resin_brick_wall",
+ ChiseledResinBricks => "minecraft:chiseled_resin_bricks",
NetherBricks => "minecraft:nether_bricks",
NetherBrickFence => "minecraft:nether_brick_fence",
NetherBrickStairs => "minecraft:nether_brick_stairs",
@@ -1351,6 +1358,10 @@ enum Block {
PaleMossBlock => "minecraft:pale_moss_block",
PaleMossCarpet => "minecraft:pale_moss_carpet",
PaleHangingMoss => "minecraft:pale_hanging_moss",
+ OpenEyeblossom => "minecraft:open_eyeblossom",
+ ClosedEyeblossom => "minecraft:closed_eyeblossom",
+ PottedOpenEyeblossom => "minecraft:potted_open_eyeblossom",
+ PottedClosedEyeblossom => "minecraft:potted_closed_eyeblossom",
}
}
@@ -1677,7 +1688,6 @@ enum EntityKind {
CommandBlockMinecart => "minecraft:command_block_minecart",
Cow => "minecraft:cow",
Creaking => "minecraft:creaking",
- CreakingTransient => "minecraft:creaking_transient",
Creeper => "minecraft:creeper",
DarkOakBoat => "minecraft:dark_oak_boat",
DarkOakChestBoat => "minecraft:dark_oak_chest_boat",
@@ -2155,6 +2165,8 @@ enum Item {
RedWool => "minecraft:red_wool",
BlackWool => "minecraft:black_wool",
Dandelion => "minecraft:dandelion",
+ OpenEyeblossom => "minecraft:open_eyeblossom",
+ ClosedEyeblossom => "minecraft:closed_eyeblossom",
Poppy => "minecraft:poppy",
BlueOrchid => "minecraft:blue_orchid",
Allium => "minecraft:allium",
@@ -2303,6 +2315,13 @@ enum Item {
Melon => "minecraft:melon",
Vine => "minecraft:vine",
GlowLichen => "minecraft:glow_lichen",
+ ResinClump => "minecraft:resin_clump",
+ ResinBlock => "minecraft:resin_block",
+ ResinBricks => "minecraft:resin_bricks",
+ ResinBrickStairs => "minecraft:resin_brick_stairs",
+ ResinBrickSlab => "minecraft:resin_brick_slab",
+ ResinBrickWall => "minecraft:resin_brick_wall",
+ ChiseledResinBricks => "minecraft:chiseled_resin_bricks",
BrickStairs => "minecraft:brick_stairs",
StoneBrickStairs => "minecraft:stone_brick_stairs",
MudBrickStairs => "minecraft:mud_brick_stairs",
@@ -3087,6 +3106,7 @@ enum Item {
FireworkStar => "minecraft:firework_star",
EnchantedBook => "minecraft:enchanted_book",
NetherBrick => "minecraft:nether_brick",
+ ResinBrick => "minecraft:resin_brick",
PrismarineShard => "minecraft:prismarine_shard",
PrismarineCrystals => "minecraft:prismarine_crystals",
Rabbit => "minecraft:rabbit",
@@ -3669,6 +3689,7 @@ enum ParticleKind {
Flame => "minecraft:flame",
Infested => "minecraft:infested",
CherryLeaves => "minecraft:cherry_leaves",
+ PaleOakLeaves => "minecraft:pale_oak_leaves",
SculkSoul => "minecraft:sculk_soul",
SculkCharge => "minecraft:sculk_charge",
SculkChargePop => "minecraft:sculk_charge_pop",
@@ -4316,6 +4337,7 @@ enum SoundEvent {
EntityCreakingUnfreeze => "minecraft:entity.creaking.unfreeze",
EntityCreakingSpawn => "minecraft:entity.creaking.spawn",
EntityCreakingSway => "minecraft:entity.creaking.sway",
+ EntityCreakingTwitch => "minecraft:entity.creaking.twitch",
BlockCreakingHeartBreak => "minecraft:block.creaking_heart.break",
BlockCreakingHeartFall => "minecraft:block.creaking_heart.fall",
BlockCreakingHeartHit => "minecraft:block.creaking_heart.hit",
@@ -4454,6 +4476,11 @@ enum SoundEvent {
EntityEvokerPrepareWololo => "minecraft:entity.evoker.prepare_wololo",
EntityExperienceBottleThrow => "minecraft:entity.experience_bottle.throw",
EntityExperienceOrbPickup => "minecraft:entity.experience_orb.pickup",
+ BlockEyeblossomOpenLong => "minecraft:block.eyeblossom.open_long",
+ BlockEyeblossomOpen => "minecraft:block.eyeblossom.open",
+ BlockEyeblossomCloseLong => "minecraft:block.eyeblossom.close_long",
+ BlockEyeblossomClose => "minecraft:block.eyeblossom.close",
+ BlockEyeblossomIdle => "minecraft:block.eyeblossom.idle",
BlockFenceGateClose => "minecraft:block.fence_gate.close",
BlockFenceGateOpen => "minecraft:block.fence_gate.open",
ItemFirechargeUse => "minecraft:item.firecharge.use",
@@ -5254,6 +5281,15 @@ enum SoundEvent {
BlockSpawnerHit => "minecraft:block.spawner.hit",
BlockSpawnerPlace => "minecraft:block.spawner.place",
BlockSpawnerStep => "minecraft:block.spawner.step",
+ BlockResinBreak => "minecraft:block.resin.break",
+ BlockResinFall => "minecraft:block.resin.fall",
+ BlockResinPlace => "minecraft:block.resin.place",
+ BlockResinStep => "minecraft:block.resin.step",
+ BlockResinBricksBreak => "minecraft:block.resin_bricks.break",
+ BlockResinBricksFall => "minecraft:block.resin_bricks.fall",
+ BlockResinBricksHit => "minecraft:block.resin_bricks.hit",
+ BlockResinBricksPlace => "minecraft:block.resin_bricks.place",
+ BlockResinBricksStep => "minecraft:block.resin_bricks.step",
BlockSporeBlossomBreak => "minecraft:block.spore_blossom.break",
BlockSporeBlossomFall => "minecraft:block.spore_blossom.fall",
BlockSporeBlossomHit => "minecraft:block.spore_blossom.hit",
@@ -6106,7 +6142,6 @@ enum BlockKind {
CaveVinesPlant => "minecraft:cave_vines_plant",
CeilingHangingSign => "minecraft:ceiling_hanging_sign",
Chain => "minecraft:chain",
- CherryLeaves => "minecraft:cherry_leaves",
Chest => "minecraft:chest",
ChiseledBookShelf => "minecraft:chiseled_book_shelf",
ChorusFlower => "minecraft:chorus_flower",
@@ -6144,6 +6179,7 @@ enum BlockKind {
EndPortal => "minecraft:end_portal",
EndPortalFrame => "minecraft:end_portal_frame",
EndRod => "minecraft:end_rod",
+ Eyeblossom => "minecraft:eyeblossom",
Farm => "minecraft:farm",
BonemealableFeaturePlacer => "minecraft:bonemealable_feature_placer",
Fence => "minecraft:fence",
@@ -6195,6 +6231,7 @@ enum BlockKind {
MossyCarpet => "minecraft:mossy_carpet",
MovingPiston => "minecraft:moving_piston",
Mud => "minecraft:mud",
+ Multiface => "minecraft:multiface",
Mushroom => "minecraft:mushroom",
Mycelium => "minecraft:mycelium",
NetherPortal => "minecraft:nether_portal",
@@ -6205,6 +6242,7 @@ enum BlockKind {
Nylium => "minecraft:nylium",
Observer => "minecraft:observer",
Piglinwallskull => "minecraft:piglinwallskull",
+ ParticleLeaves => "minecraft:particle_leaves",
PinkPetals => "minecraft:pink_petals",
PistonBase => "minecraft:piston_base",
PistonHead => "minecraft:piston_head",
diff --git a/azalea-registry/src/tags/blocks.rs b/azalea-registry/src/tags/blocks.rs
index 0697adeb..f4b2aaf5 100644
--- a/azalea-registry/src/tags/blocks.rs
+++ b/azalea-registry/src/tags/blocks.rs
@@ -24,6 +24,7 @@ pub static ALL_HANGING_SIGNS: LazyLock<HashSet<Block>> = LazyLock::new(|| {
Block::CherryHangingSign,
Block::JungleHangingSign,
Block::DarkOakHangingSign,
+ Block::PaleOakHangingSign,
Block::CrimsonHangingSign,
Block::WarpedHangingSign,
Block::MangroveHangingSign,
@@ -35,6 +36,7 @@ pub static ALL_HANGING_SIGNS: LazyLock<HashSet<Block>> = LazyLock::new(|| {
Block::CherryWallHangingSign,
Block::JungleWallHangingSign,
Block::DarkOakWallHangingSign,
+ Block::PaleOakWallHangingSign,
Block::CrimsonWallHangingSign,
Block::WarpedWallHangingSign,
Block::MangroveWallHangingSign,
@@ -49,6 +51,7 @@ pub static ALL_SIGNS: LazyLock<HashSet<Block>> = LazyLock::new(|| {
Block::AcaciaSign,
Block::JungleSign,
Block::DarkOakSign,
+ Block::PaleOakSign,
Block::CrimsonSign,
Block::WarpedSign,
Block::MangroveSign,
@@ -60,6 +63,7 @@ pub static ALL_SIGNS: LazyLock<HashSet<Block>> = LazyLock::new(|| {
Block::AcaciaWallSign,
Block::JungleWallSign,
Block::DarkOakWallSign,
+ Block::PaleOakWallSign,
Block::CrimsonWallSign,
Block::WarpedWallSign,
Block::MangroveWallSign,
@@ -72,6 +76,7 @@ pub static ALL_SIGNS: LazyLock<HashSet<Block>> = LazyLock::new(|| {
Block::CherryHangingSign,
Block::JungleHangingSign,
Block::DarkOakHangingSign,
+ Block::PaleOakHangingSign,
Block::CrimsonHangingSign,
Block::WarpedHangingSign,
Block::MangroveHangingSign,
@@ -83,6 +88,7 @@ pub static ALL_SIGNS: LazyLock<HashSet<Block>> = LazyLock::new(|| {
Block::CherryWallHangingSign,
Block::JungleWallHangingSign,
Block::DarkOakWallHangingSign,
+ Block::PaleOakWallHangingSign,
Block::CrimsonWallHangingSign,
Block::WarpedWallHangingSign,
Block::MangroveWallHangingSign,
@@ -137,6 +143,7 @@ pub static AZALEA_GROWS_ON: LazyLock<HashSet<Block>> = LazyLock::new(|| {
Block::Mycelium,
Block::RootedDirt,
Block::MossBlock,
+ Block::PaleMossBlock,
Block::Mud,
Block::MuddyMangroveRoots,
Block::Sand,
@@ -183,6 +190,7 @@ pub static AZALEA_ROOT_REPLACEABLE: LazyLock<HashSet<Block>> = LazyLock::new(||
Block::Mycelium,
Block::RootedDirt,
Block::MossBlock,
+ Block::PaleMossBlock,
Block::Mud,
Block::MuddyMangroveRoots,
Block::Terracotta,
@@ -234,6 +242,7 @@ pub static BAMBOO_PLANTABLE_ON: LazyLock<HashSet<Block>> = LazyLock::new(|| {
Block::Mycelium,
Block::RootedDirt,
Block::MossBlock,
+ Block::PaleMossBlock,
Block::Mud,
Block::MuddyMangroveRoots,
])
@@ -325,6 +334,37 @@ pub static BEDS: LazyLock<HashSet<Block>> = LazyLock::new(|| {
Block::YellowBed,
])
});
+pub static BEE_ATTRACTIVE: LazyLock<HashSet<Block>> = LazyLock::new(|| {
+ HashSet::from_iter(vec![
+ Block::Dandelion,
+ Block::OpenEyeblossom,
+ Block::Poppy,
+ Block::BlueOrchid,
+ Block::Allium,
+ Block::AzureBluet,
+ Block::RedTulip,
+ Block::OrangeTulip,
+ Block::WhiteTulip,
+ Block::PinkTulip,
+ Block::OxeyeDaisy,
+ Block::Cornflower,
+ Block::LilyOfTheValley,
+ Block::WitherRose,
+ Block::Torchflower,
+ Block::Sunflower,
+ Block::Lilac,
+ Block::Peony,
+ Block::RoseBush,
+ Block::PitcherPlant,
+ Block::FloweringAzaleaLeaves,
+ Block::FloweringAzalea,
+ Block::MangrovePropagule,
+ Block::CherryLeaves,
+ Block::PinkPetals,
+ Block::ChorusFlower,
+ Block::SporeBlossom,
+ ])
+});
pub static BEE_GROWABLES: LazyLock<HashSet<Block>> = LazyLock::new(|| {
HashSet::from_iter(vec![
Block::SweetBerryBush,
@@ -354,6 +394,7 @@ pub static BIG_DRIPLEAF_PLACEABLE: LazyLock<HashSet<Block>> = LazyLock::new(|| {
Block::Mycelium,
Block::RootedDirt,
Block::MossBlock,
+ Block::PaleMossBlock,
Block::Mud,
Block::MuddyMangroveRoots,
])
@@ -376,6 +417,7 @@ pub static BUTTONS: LazyLock<HashSet<Block>> = LazyLock::new(|| {
Block::JungleButton,
Block::AcaciaButton,
Block::DarkOakButton,
+ Block::PaleOakButton,
Block::CrimsonButton,
Block::WarpedButton,
Block::MangroveButton,
@@ -472,6 +514,7 @@ pub static CEILING_HANGING_SIGNS: LazyLock<HashSet<Block>> = LazyLock::new(|| {
Block::CherryHangingSign,
Block::JungleHangingSign,
Block::DarkOakHangingSign,
+ Block::PaleOakHangingSign,
Block::CrimsonHangingSign,
Block::WarpedHangingSign,
Block::MangroveHangingSign,
@@ -504,10 +547,12 @@ pub static COAL_ORES: LazyLock<HashSet<Block>> =
pub static COMBINATION_STEP_SOUND_BLOCKS: LazyLock<HashSet<Block>> = LazyLock::new(|| {
HashSet::from_iter(vec![
Block::MossCarpet,
+ Block::PaleMossCarpet,
Block::Snow,
Block::NetherSprouts,
Block::WarpedRoots,
Block::CrimsonRoots,
+ Block::ResinClump,
Block::WhiteCarpet,
Block::OrangeCarpet,
Block::MagentaCarpet,
@@ -531,6 +576,7 @@ pub static COMPLETES_FIND_TREE_TUTORIAL: LazyLock<HashSet<Block>> = LazyLock::ne
Block::JungleLeaves,
Block::OakLeaves,
Block::SpruceLeaves,
+ Block::PaleOakLeaves,
Block::DarkOakLeaves,
Block::AcaciaLeaves,
Block::BirchLeaves,
@@ -552,6 +598,10 @@ pub static COMPLETES_FIND_TREE_TUTORIAL: LazyLock<HashSet<Block>> = LazyLock::ne
Block::DarkOakWood,
Block::StrippedDarkOakLog,
Block::StrippedDarkOakWood,
+ Block::PaleOakLog,
+ Block::PaleOakWood,
+ Block::StrippedPaleOakLog,
+ Block::StrippedPaleOakWood,
Block::OakLog,
Block::OakWood,
Block::StrippedOakLog,
@@ -734,6 +784,7 @@ pub static DEAD_BUSH_MAY_PLACE_ON: LazyLock<HashSet<Block>> = LazyLock::new(|| {
Block::Mycelium,
Block::RootedDirt,
Block::MossBlock,
+ Block::PaleMossBlock,
Block::Mud,
Block::MuddyMangroveRoots,
])
@@ -751,6 +802,7 @@ pub static DIRT: LazyLock<HashSet<Block>> = LazyLock::new(|| {
Block::Mycelium,
Block::RootedDirt,
Block::MossBlock,
+ Block::PaleMossBlock,
Block::Mud,
Block::MuddyMangroveRoots,
])
@@ -774,6 +826,7 @@ pub static DOORS: LazyLock<HashSet<Block>> = LazyLock::new(|| {
Block::JungleDoor,
Block::AcaciaDoor,
Block::DarkOakDoor,
+ Block::PaleOakDoor,
Block::CrimsonDoor,
Block::WarpedDoor,
Block::MangroveDoor,
@@ -833,6 +886,7 @@ pub static ENCHANTMENT_POWER_TRANSMITTER: LazyLock<HashSet<Block>> = LazyLock::n
Block::Snow,
Block::Vine,
Block::GlowLichen,
+ Block::ResinClump,
Block::Light,
Block::TallGrass,
Block::LargeFern,
@@ -866,6 +920,7 @@ pub static ENDERMAN_HOLDABLE: LazyLock<HashSet<Block>> = LazyLock::new(|| {
Block::WarpedNylium,
Block::WarpedRoots,
Block::Dandelion,
+ Block::OpenEyeblossom,
Block::Poppy,
Block::BlueOrchid,
Block::Allium,
@@ -879,6 +934,7 @@ pub static ENDERMAN_HOLDABLE: LazyLock<HashSet<Block>> = LazyLock::new(|| {
Block::LilyOfTheValley,
Block::WitherRose,
Block::Torchflower,
+ Block::ClosedEyeblossom,
Block::Dirt,
Block::GrassBlock,
Block::Podzol,
@@ -886,6 +942,7 @@ pub static ENDERMAN_HOLDABLE: LazyLock<HashSet<Block>> = LazyLock::new(|| {
Block::Mycelium,
Block::RootedDirt,
Block::MossBlock,
+ Block::PaleMossBlock,
Block::Mud,
Block::MuddyMangroveRoots,
])
@@ -921,6 +978,7 @@ pub static FENCE_GATES: LazyLock<HashSet<Block>> = LazyLock::new(|| {
Block::AcaciaFenceGate,
Block::BirchFenceGate,
Block::DarkOakFenceGate,
+ Block::PaleOakFenceGate,
Block::JungleFenceGate,
Block::OakFenceGate,
Block::SpruceFenceGate,
@@ -937,6 +995,7 @@ pub static FENCES: LazyLock<HashSet<Block>> = LazyLock::new(|| {
Block::OakFence,
Block::AcaciaFence,
Block::DarkOakFence,
+ Block::PaleOakFence,
Block::SpruceFence,
Block::BirchFence,
Block::JungleFence,
@@ -952,6 +1011,8 @@ pub static FIRE: LazyLock<HashSet<Block>> =
pub static FLOWER_POTS: LazyLock<HashSet<Block>> = LazyLock::new(|| {
HashSet::from_iter(vec![
Block::FlowerPot,
+ Block::PottedOpenEyeblossom,
+ Block::PottedClosedEyeblossom,
Block::PottedPoppy,
Block::PottedBlueOrchid,
Block::PottedAllium,
@@ -968,6 +1029,7 @@ pub static FLOWER_POTS: LazyLock<HashSet<Block>> = LazyLock::new(|| {
Block::PottedJungleSapling,
Block::PottedAcaciaSapling,
Block::PottedDarkOakSapling,
+ Block::PottedPaleOakSapling,
Block::PottedRedMushroom,
Block::PottedBrownMushroom,
Block::PottedDeadBush,
@@ -990,6 +1052,11 @@ pub static FLOWER_POTS: LazyLock<HashSet<Block>> = LazyLock::new(|| {
});
pub static FLOWERS: LazyLock<HashSet<Block>> = LazyLock::new(|| {
HashSet::from_iter(vec![
+ Block::Sunflower,
+ Block::Lilac,
+ Block::Peony,
+ Block::RoseBush,
+ Block::PitcherPlant,
Block::FloweringAzaleaLeaves,
Block::FloweringAzalea,
Block::MangrovePropagule,
@@ -998,6 +1065,7 @@ pub static FLOWERS: LazyLock<HashSet<Block>> = LazyLock::new(|| {
Block::ChorusFlower,
Block::SporeBlossom,
Block::Dandelion,
+ Block::OpenEyeblossom,
Block::Poppy,
Block::BlueOrchid,
Block::Allium,
@@ -1011,11 +1079,7 @@ pub static FLOWERS: LazyLock<HashSet<Block>> = LazyLock::new(|| {
Block::LilyOfTheValley,
Block::WitherRose,
Block::Torchflower,
- Block::Sunflower,
- Block::Lilac,
- Block::Peony,
- Block::RoseBush,
- Block::PitcherPlant,
+ Block::ClosedEyeblossom,
])
});
pub static FOXES_SPAWNABLE_ON: LazyLock<HashSet<Block>> = LazyLock::new(|| {
@@ -1230,14 +1294,6 @@ pub static INCORRECT_FOR_GOLD_TOOL: LazyLock<HashSet<Block>> = LazyLock::new(||
Block::WaxedExposedCopperTrapdoor,
Block::WaxedWeatheredCopperTrapdoor,
Block::WaxedOxidizedCopperTrapdoor,
- Block::CopperDoor,
- Block::ExposedCopperDoor,
- Block::WeatheredCopperDoor,
- Block::OxidizedCopperDoor,
- Block::WaxedCopperDoor,
- Block::WaxedExposedCopperDoor,
- Block::WaxedWeatheredCopperDoor,
- Block::WaxedOxidizedCopperDoor,
])
});
pub static INCORRECT_FOR_IRON_TOOL: LazyLock<HashSet<Block>> = LazyLock::new(|| {
@@ -1367,14 +1423,6 @@ pub static INCORRECT_FOR_WOODEN_TOOL: LazyLock<HashSet<Block>> = LazyLock::new(|
Block::WaxedExposedCopperTrapdoor,
Block::WaxedWeatheredCopperTrapdoor,
Block::WaxedOxidizedCopperTrapdoor,
- Block::CopperDoor,
- Block::ExposedCopperDoor,
- Block::WeatheredCopperDoor,
- Block::OxidizedCopperDoor,
- Block::WaxedCopperDoor,
- Block::WaxedExposedCopperDoor,
- Block::WaxedWeatheredCopperDoor,
- Block::WaxedOxidizedCopperDoor,
])
});
pub static INFINIBURN_END: LazyLock<HashSet<Block>> = LazyLock::new(|| {
@@ -1420,6 +1468,7 @@ pub static LAVA_POOL_STONE_CANNOT_REPLACE: LazyLock<HashSet<Block>> = LazyLock::
Block::JungleLeaves,
Block::OakLeaves,
Block::SpruceLeaves,
+ Block::PaleOakLeaves,
Block::DarkOakLeaves,
Block::AcaciaLeaves,
Block::BirchLeaves,
@@ -1439,6 +1488,10 @@ pub static LAVA_POOL_STONE_CANNOT_REPLACE: LazyLock<HashSet<Block>> = LazyLock::
Block::DarkOakWood,
Block::StrippedDarkOakLog,
Block::StrippedDarkOakWood,
+ Block::PaleOakLog,
+ Block::PaleOakWood,
+ Block::StrippedPaleOakLog,
+ Block::StrippedPaleOakWood,
Block::OakLog,
Block::OakWood,
Block::StrippedOakLog,
@@ -1474,6 +1527,7 @@ pub static LEAVES: LazyLock<HashSet<Block>> = LazyLock::new(|| {
Block::JungleLeaves,
Block::OakLeaves,
Block::SpruceLeaves,
+ Block::PaleOakLeaves,
Block::DarkOakLeaves,
Block::AcaciaLeaves,
Block::BirchLeaves,
@@ -1497,6 +1551,10 @@ pub static LOGS: LazyLock<HashSet<Block>> = LazyLock::new(|| {
Block::DarkOakWood,
Block::StrippedDarkOakLog,
Block::StrippedDarkOakWood,
+ Block::PaleOakLog,
+ Block::PaleOakWood,
+ Block::StrippedPaleOakLog,
+ Block::StrippedPaleOakWood,
Block::OakLog,
Block::OakWood,
Block::StrippedOakLog,
@@ -1533,6 +1591,10 @@ pub static LOGS_THAT_BURN: LazyLock<HashSet<Block>> = LazyLock::new(|| {
Block::DarkOakWood,
Block::StrippedDarkOakLog,
Block::StrippedDarkOakWood,
+ Block::PaleOakLog,
+ Block::PaleOakWood,
+ Block::StrippedPaleOakLog,
+ Block::StrippedPaleOakWood,
Block::OakLog,
Block::OakWood,
Block::StrippedOakLog,
@@ -1583,6 +1645,7 @@ pub static LUSH_GROUND_REPLACEABLE: LazyLock<HashSet<Block>> = LazyLock::new(||
Block::Mycelium,
Block::RootedDirt,
Block::MossBlock,
+ Block::PaleMossBlock,
Block::Mud,
Block::MuddyMangroveRoots,
])
@@ -1706,6 +1769,7 @@ pub static MINEABLE_AXE: LazyLock<HashSet<Block>> = LazyLock::new(|| {
Block::BambooMosaicSlab,
Block::BambooMosaicStairs,
Block::ChiseledBookshelf,
+ Block::CreakingHeart,
Block::WhiteBanner,
Block::OrangeBanner,
Block::MagentaBanner,
@@ -1741,6 +1805,7 @@ pub static MINEABLE_AXE: LazyLock<HashSet<Block>> = LazyLock::new(|| {
Block::AcaciaFenceGate,
Block::BirchFenceGate,
Block::DarkOakFenceGate,
+ Block::PaleOakFenceGate,
Block::JungleFenceGate,
Block::OakFenceGate,
Block::SpruceFenceGate,
@@ -1755,6 +1820,7 @@ pub static MINEABLE_AXE: LazyLock<HashSet<Block>> = LazyLock::new(|| {
Block::JunglePlanks,
Block::AcaciaPlanks,
Block::DarkOakPlanks,
+ Block::PaleOakPlanks,
Block::CrimsonPlanks,
Block::WarpedPlanks,
Block::MangrovePlanks,
@@ -1766,6 +1832,7 @@ pub static MINEABLE_AXE: LazyLock<HashSet<Block>> = LazyLock::new(|| {
Block::JungleSapling,
Block::AcaciaSapling,
Block::DarkOakSapling,
+ Block::PaleOakSapling,
Block::Azalea,
Block::FloweringAzalea,
Block::MangrovePropagule,
@@ -1776,6 +1843,7 @@ pub static MINEABLE_AXE: LazyLock<HashSet<Block>> = LazyLock::new(|| {
Block::JungleButton,
Block::AcaciaButton,
Block::DarkOakButton,
+ Block::PaleOakButton,
Block::CrimsonButton,
Block::WarpedButton,
Block::MangroveButton,
@@ -1787,6 +1855,7 @@ pub static MINEABLE_AXE: LazyLock<HashSet<Block>> = LazyLock::new(|| {
Block::JungleDoor,
Block::AcaciaDoor,
Block::DarkOakDoor,
+ Block::PaleOakDoor,
Block::CrimsonDoor,
Block::WarpedDoor,
Block::MangroveDoor,
@@ -1795,6 +1864,7 @@ pub static MINEABLE_AXE: LazyLock<HashSet<Block>> = LazyLock::new(|| {
Block::OakFence,
Block::AcaciaFence,
Block::DarkOakFence,
+ Block::PaleOakFence,
Block::SpruceFence,
Block::BirchFence,
Block::JungleFence,
@@ -1809,6 +1879,7 @@ pub static MINEABLE_AXE: LazyLock<HashSet<Block>> = LazyLock::new(|| {
Block::JunglePressurePlate,
Block::AcaciaPressurePlate,
Block::DarkOakPressurePlate,
+ Block::PaleOakPressurePlate,
Block::CrimsonPressurePlate,
Block::WarpedPressurePlate,
Block::MangrovePressurePlate,
@@ -1820,6 +1891,7 @@ pub static MINEABLE_AXE: LazyLock<HashSet<Block>> = LazyLock::new(|| {
Block::JungleSlab,
Block::AcaciaSlab,
Block::DarkOakSlab,
+ Block::PaleOakSlab,
Block::CrimsonSlab,
Block::WarpedSlab,
Block::MangroveSlab,
@@ -1831,6 +1903,7 @@ pub static MINEABLE_AXE: LazyLock<HashSet<Block>> = LazyLock::new(|| {
Block::JungleStairs,
Block::AcaciaStairs,
Block::DarkOakStairs,
+ Block::PaleOakStairs,
Block::CrimsonStairs,
Block::WarpedStairs,
Block::MangroveStairs,
@@ -1839,6 +1912,7 @@ pub static MINEABLE_AXE: LazyLock<HashSet<Block>> = LazyLock::new(|| {
Block::AcaciaTrapdoor,
Block::BirchTrapdoor,
Block::DarkOakTrapdoor,
+ Block::PaleOakTrapdoor,
Block::JungleTrapdoor,
Block::OakTrapdoor,
Block::SpruceTrapdoor,
@@ -1863,6 +1937,7 @@ pub static MINEABLE_AXE: LazyLock<HashSet<Block>> = LazyLock::new(|| {
Block::AcaciaSign,
Block::JungleSign,
Block::DarkOakSign,
+ Block::PaleOakSign,
Block::CrimsonSign,
Block::WarpedSign,
Block::MangroveSign,
@@ -1874,6 +1949,7 @@ pub static MINEABLE_AXE: LazyLock<HashSet<Block>> = LazyLock::new(|| {
Block::AcaciaWallSign,
Block::JungleWallSign,
Block::DarkOakWallSign,
+ Block::PaleOakWallSign,
Block::CrimsonWallSign,
Block::WarpedWallSign,
Block::MangroveWallSign,
@@ -1886,6 +1962,7 @@ pub static MINEABLE_AXE: LazyLock<HashSet<Block>> = LazyLock::new(|| {
Block::CherryHangingSign,
Block::JungleHangingSign,
Block::DarkOakHangingSign,
+ Block::PaleOakHangingSign,
Block::CrimsonHangingSign,
Block::WarpedHangingSign,
Block::MangroveHangingSign,
@@ -1897,6 +1974,7 @@ pub static MINEABLE_AXE: LazyLock<HashSet<Block>> = LazyLock::new(|| {
Block::CherryWallHangingSign,
Block::JungleWallHangingSign,
Block::DarkOakWallHangingSign,
+ Block::PaleOakWallHangingSign,
Block::CrimsonWallHangingSign,
Block::WarpedWallHangingSign,
Block::MangroveWallHangingSign,
@@ -1905,6 +1983,10 @@ pub static MINEABLE_AXE: LazyLock<HashSet<Block>> = LazyLock::new(|| {
Block::DarkOakWood,
Block::StrippedDarkOakLog,
Block::StrippedDarkOakWood,
+ Block::PaleOakLog,
+ Block::PaleOakWood,
+ Block::StrippedPaleOakLog,
+ Block::StrippedPaleOakWood,
Block::OakLog,
Block::OakWood,
Block::StrippedOakLog,
@@ -1948,6 +2030,7 @@ pub static MINEABLE_HOE: LazyLock<HashSet<Block>> = LazyLock::new(|| {
Block::JungleLeaves,
Block::OakLeaves,
Block::SpruceLeaves,
+ Block::PaleOakLeaves,
Block::DarkOakLeaves,
Block::AcaciaLeaves,
Block::BirchLeaves,
@@ -1958,6 +2041,8 @@ pub static MINEABLE_HOE: LazyLock<HashSet<Block>> = LazyLock::new(|| {
Block::CalibratedSculkSensor,
Block::MossBlock,
Block::MossCarpet,
+ Block::PaleMossBlock,
+ Block::PaleMossCarpet,
Block::Sculk,
Block::SculkCatalyst,
Block::SculkVein,
@@ -2346,6 +2431,11 @@ pub static MINEABLE_PICKAXE: LazyLock<HashSet<Block>> = LazyLock::new(|| {
Block::WaxedWeatheredCopperTrapdoor,
Block::WaxedOxidizedCopperTrapdoor,
Block::HeavyCore,
+ Block::ResinBricks,
+ Block::ResinBrickSlab,
+ Block::ResinBrickWall,
+ Block::ResinBrickStairs,
+ Block::ChiseledResinBricks,
Block::StoneButton,
Block::PolishedBlackstoneButton,
Block::CobblestoneWall,
@@ -2373,6 +2463,7 @@ pub static MINEABLE_PICKAXE: LazyLock<HashSet<Block>> = LazyLock::new(|| {
Block::TuffWall,
Block::PolishedTuffWall,
Block::TuffBrickWall,
+ Block::ResinBrickWall,
Block::ShulkerBox,
Block::BlackShulkerBox,
Block::BlueShulkerBox,
@@ -2459,6 +2550,7 @@ pub static MOB_INTERACTABLE_DOORS: LazyLock<HashSet<Block>> = LazyLock::new(|| {
Block::JungleDoor,
Block::AcaciaDoor,
Block::DarkOakDoor,
+ Block::PaleOakDoor,
Block::CrimsonDoor,
Block::WarpedDoor,
Block::MangroveDoor,
@@ -2485,6 +2577,7 @@ pub static MOSS_REPLACEABLE: LazyLock<HashSet<Block>> = LazyLock::new(|| {
Block::Mycelium,
Block::RootedDirt,
Block::MossBlock,
+ Block::PaleMossBlock,
Block::Mud,
Block::MuddyMangroveRoots,
])
@@ -2600,14 +2693,6 @@ pub static NEEDS_STONE_TOOL: LazyLock<HashSet<Block>> = LazyLock::new(|| {
Block::WaxedExposedCopperTrapdoor,
Block::WaxedWeatheredCopperTrapdoor,
Block::WaxedOxidizedCopperTrapdoor,
- Block::CopperDoor,
- Block::ExposedCopperDoor,
- Block::WeatheredCopperDoor,
- Block::OxidizedCopperDoor,
- Block::WaxedCopperDoor,
- Block::WaxedExposedCopperDoor,
- Block::WaxedWeatheredCopperDoor,
- Block::WaxedOxidizedCopperDoor,
])
});
pub static NETHER_CARVER_REPLACEABLES: LazyLock<HashSet<Block>> = LazyLock::new(|| {
@@ -2630,6 +2715,7 @@ pub static NETHER_CARVER_REPLACEABLES: LazyLock<HashSet<Block>> = LazyLock::new(
Block::Mycelium,
Block::RootedDirt,
Block::MossBlock,
+ Block::PaleMossBlock,
Block::Mud,
Block::MuddyMangroveRoots,
Block::CrimsonNylium,
@@ -2676,7 +2762,6 @@ pub static OVERWORLD_CARVER_REPLACEABLES: LazyLock<HashSet<Block>> = LazyLock::n
Block::Sandstone,
Block::RedSandstone,
Block::Calcite,
- Block::Snow,
Block::PackedIce,
Block::RawIronBlock,
Block::RawCopperBlock,
@@ -2693,6 +2778,7 @@ pub static OVERWORLD_CARVER_REPLACEABLES: LazyLock<HashSet<Block>> = LazyLock::n
Block::Mycelium,
Block::RootedDirt,
Block::MossBlock,
+ Block::PaleMossBlock,
Block::Mud,
Block::MuddyMangroveRoots,
Block::Sand,
@@ -2720,6 +2806,9 @@ pub static OVERWORLD_CARVER_REPLACEABLES: LazyLock<HashSet<Block>> = LazyLock::n
Block::DeepslateIronOre,
Block::CopperOre,
Block::DeepslateCopperOre,
+ Block::Snow,
+ Block::SnowBlock,
+ Block::PowderSnow,
])
});
pub static OVERWORLD_NATURAL_LOGS: LazyLock<HashSet<Block>> = LazyLock::new(|| {
@@ -2730,10 +2819,19 @@ pub static OVERWORLD_NATURAL_LOGS: LazyLock<HashSet<Block>> = LazyLock::new(|| {
Block::JungleLog,
Block::SpruceLog,
Block::DarkOakLog,
+ Block::PaleOakLog,
Block::MangroveLog,
Block::CherryLog,
])
});
+pub static PALE_OAK_LOGS: LazyLock<HashSet<Block>> = LazyLock::new(|| {
+ HashSet::from_iter(vec![
+ Block::PaleOakLog,
+ Block::PaleOakWood,
+ Block::StrippedPaleOakLog,
+ Block::StrippedPaleOakWood,
+ ])
+});
pub static PARROTS_SPAWNABLE_ON: LazyLock<HashSet<Block>> = LazyLock::new(|| {
HashSet::from_iter(vec![
Block::GrassBlock,
@@ -2741,6 +2839,7 @@ pub static PARROTS_SPAWNABLE_ON: LazyLock<HashSet<Block>> = LazyLock::new(|| {
Block::JungleLeaves,
Block::OakLeaves,
Block::SpruceLeaves,
+ Block::PaleOakLeaves,
Block::DarkOakLeaves,
Block::AcaciaLeaves,
Block::BirchLeaves,
@@ -2760,6 +2859,10 @@ pub static PARROTS_SPAWNABLE_ON: LazyLock<HashSet<Block>> = LazyLock::new(|| {
Block::DarkOakWood,
Block::StrippedDarkOakLog,
Block::StrippedDarkOakWood,
+ Block::PaleOakLog,
+ Block::PaleOakWood,
+ Block::StrippedPaleOakLog,
+ Block::StrippedPaleOakWood,
Block::OakLog,
Block::OakWood,
Block::StrippedOakLog,
@@ -2807,6 +2910,7 @@ pub static PLANKS: LazyLock<HashSet<Block>> = LazyLock::new(|| {
Block::JunglePlanks,
Block::AcaciaPlanks,
Block::DarkOakPlanks,
+ Block::PaleOakPlanks,
Block::CrimsonPlanks,
Block::WarpedPlanks,
Block::MangrovePlanks,
@@ -2833,6 +2937,7 @@ pub static PRESSURE_PLATES: LazyLock<HashSet<Block>> = LazyLock::new(|| {
Block::JunglePressurePlate,
Block::AcaciaPressurePlate,
Block::DarkOakPressurePlate,
+ Block::PaleOakPressurePlate,
Block::CrimsonPressurePlate,
Block::WarpedPressurePlate,
Block::MangrovePressurePlate,
@@ -2883,6 +2988,7 @@ pub static REPLACEABLE: LazyLock<HashSet<Block>> = LazyLock::new(|| {
Block::Snow,
Block::Vine,
Block::GlowLichen,
+ Block::ResinClump,
Block::Light,
Block::TallGrass,
Block::LargeFern,
@@ -2898,6 +3004,7 @@ pub static REPLACEABLE: LazyLock<HashSet<Block>> = LazyLock::new(|| {
});
pub static REPLACEABLE_BY_TREES: LazyLock<HashSet<Block>> = LazyLock::new(|| {
HashSet::from_iter(vec![
+ Block::PaleMossCarpet,
Block::ShortGrass,
Block::Fern,
Block::DeadBush,
@@ -2920,6 +3027,7 @@ pub static REPLACEABLE_BY_TREES: LazyLock<HashSet<Block>> = LazyLock::new(|| {
Block::JungleLeaves,
Block::OakLeaves,
Block::SpruceLeaves,
+ Block::PaleOakLeaves,
Block::DarkOakLeaves,
Block::AcaciaLeaves,
Block::BirchLeaves,
@@ -2927,6 +3035,22 @@ pub static REPLACEABLE_BY_TREES: LazyLock<HashSet<Block>> = LazyLock::new(|| {
Block::FloweringAzaleaLeaves,
Block::MangroveLeaves,
Block::CherryLeaves,
+ Block::Dandelion,
+ Block::OpenEyeblossom,
+ Block::Poppy,
+ Block::BlueOrchid,
+ Block::Allium,
+ Block::AzureBluet,
+ Block::RedTulip,
+ Block::OrangeTulip,
+ Block::WhiteTulip,
+ Block::PinkTulip,
+ Block::OxeyeDaisy,
+ Block::Cornflower,
+ Block::LilyOfTheValley,
+ Block::WitherRose,
+ Block::Torchflower,
+ Block::ClosedEyeblossom,
])
});
pub static SAND: LazyLock<HashSet<Block>> = LazyLock::new(|| {
@@ -2945,6 +3069,7 @@ pub static SAPLINGS: LazyLock<HashSet<Block>> = LazyLock::new(|| {
Block::JungleSapling,
Block::AcaciaSapling,
Block::DarkOakSapling,
+ Block::PaleOakSapling,
Block::Azalea,
Block::FloweringAzalea,
Block::MangrovePropagule,
@@ -2978,6 +3103,7 @@ pub static SCULK_REPLACEABLE: LazyLock<HashSet<Block>> = LazyLock::new(|| {
Block::Mycelium,
Block::RootedDirt,
Block::MossBlock,
+ Block::PaleMossBlock,
Block::Mud,
Block::MuddyMangroveRoots,
Block::Terracotta,
@@ -3037,6 +3163,7 @@ pub static SCULK_REPLACEABLE_WORLD_GEN: LazyLock<HashSet<Block>> = LazyLock::new
Block::Mycelium,
Block::RootedDirt,
Block::MossBlock,
+ Block::PaleMossBlock,
Block::Mud,
Block::MuddyMangroveRoots,
Block::Terracotta,
@@ -3092,6 +3219,7 @@ pub static SIGNS: LazyLock<HashSet<Block>> = LazyLock::new(|| {
Block::AcaciaSign,
Block::JungleSign,
Block::DarkOakSign,
+ Block::PaleOakSign,
Block::CrimsonSign,
Block::WarpedSign,
Block::MangroveSign,
@@ -3103,6 +3231,7 @@ pub static SIGNS: LazyLock<HashSet<Block>> = LazyLock::new(|| {
Block::AcaciaWallSign,
Block::JungleWallSign,
Block::DarkOakWallSign,
+ Block::PaleOakWallSign,
Block::CrimsonWallSign,
Block::WarpedWallSign,
Block::MangroveWallSign,
@@ -3161,12 +3290,14 @@ pub static SLABS: LazyLock<HashSet<Block>> = LazyLock::new(|| {
Block::TuffSlab,
Block::PolishedTuffSlab,
Block::TuffBrickSlab,
+ Block::ResinBrickSlab,
Block::OakSlab,
Block::SpruceSlab,
Block::BirchSlab,
Block::JungleSlab,
Block::AcaciaSlab,
Block::DarkOakSlab,
+ Block::PaleOakSlab,
Block::CrimsonSlab,
Block::WarpedSlab,
Block::MangroveSlab,
@@ -3179,6 +3310,7 @@ pub static SMALL_DRIPLEAF_PLACEABLE: LazyLock<HashSet<Block>> =
pub static SMALL_FLOWERS: LazyLock<HashSet<Block>> = LazyLock::new(|| {
HashSet::from_iter(vec![
Block::Dandelion,
+ Block::OpenEyeblossom,
Block::Poppy,
Block::BlueOrchid,
Block::Allium,
@@ -3192,6 +3324,7 @@ pub static SMALL_FLOWERS: LazyLock<HashSet<Block>> = LazyLock::new(|| {
Block::LilyOfTheValley,
Block::WitherRose,
Block::Torchflower,
+ Block::ClosedEyeblossom,
])
});
pub static SMELTS_TO_GLASS: LazyLock<HashSet<Block>> =
@@ -3210,6 +3343,7 @@ pub static SNAPS_GOAT_HORN: LazyLock<HashSet<Block>> = LazyLock::new(|| {
Block::JungleLog,
Block::SpruceLog,
Block::DarkOakLog,
+ Block::PaleOakLog,
Block::MangroveLog,
Block::CherryLog,
])
@@ -3222,6 +3356,7 @@ pub static SNIFFER_DIGGABLE_BLOCK: LazyLock<HashSet<Block>> = LazyLock::new(|| {
Block::CoarseDirt,
Block::RootedDirt,
Block::MossBlock,
+ Block::PaleMossBlock,
Block::Mud,
Block::MuddyMangroveRoots,
])
@@ -3293,12 +3428,14 @@ pub static STAIRS: LazyLock<HashSet<Block>> = LazyLock::new(|| {
Block::TuffStairs,
Block::PolishedTuffStairs,
Block::TuffBrickStairs,
+ Block::ResinBrickStairs,
Block::OakStairs,
Block::SpruceStairs,
Block::BirchStairs,
Block::JungleStairs,
Block::AcaciaStairs,
Block::DarkOakStairs,
+ Block::PaleOakStairs,
Block::CrimsonStairs,
Block::WarpedStairs,
Block::MangroveStairs,
@@ -3314,6 +3451,7 @@ pub static STANDING_SIGNS: LazyLock<HashSet<Block>> = LazyLock::new(|| {
Block::AcaciaSign,
Block::JungleSign,
Block::DarkOakSign,
+ Block::PaleOakSign,
Block::CrimsonSign,
Block::WarpedSign,
Block::MangroveSign,
@@ -3378,7 +3516,6 @@ pub static SWORD_EFFICIENT: LazyLock<HashSet<Block>> = LazyLock::new(|| {
Block::CaveVines,
Block::CaveVinesPlant,
Block::SporeBlossom,
- Block::MossCarpet,
Block::PinkPetals,
Block::BigDripleaf,
Block::BigDripleafStem,
@@ -3398,6 +3535,7 @@ pub static SWORD_EFFICIENT: LazyLock<HashSet<Block>> = LazyLock::new(|| {
Block::JungleLeaves,
Block::OakLeaves,
Block::SpruceLeaves,
+ Block::PaleOakLeaves,
Block::DarkOakLeaves,
Block::AcaciaLeaves,
Block::BirchLeaves,
@@ -3411,24 +3549,11 @@ pub static SWORD_EFFICIENT: LazyLock<HashSet<Block>> = LazyLock::new(|| {
Block::JungleSapling,
Block::AcaciaSapling,
Block::DarkOakSapling,
+ Block::PaleOakSapling,
Block::Azalea,
Block::FloweringAzalea,
Block::MangrovePropagule,
Block::CherrySapling,
- Block::Dandelion,
- Block::Poppy,
- Block::BlueOrchid,
- Block::Allium,
- Block::AzureBluet,
- Block::RedTulip,
- Block::OrangeTulip,
- Block::WhiteTulip,
- Block::PinkTulip,
- Block::OxeyeDaisy,
- Block::Cornflower,
- Block::LilyOfTheValley,
- Block::WitherRose,
- Block::Torchflower,
Block::Beetroots,
Block::Carrots,
Block::Potatoes,
@@ -3439,15 +3564,6 @@ pub static SWORD_EFFICIENT: LazyLock<HashSet<Block>> = LazyLock::new(|| {
Block::PitcherCrop,
])
});
-pub static TALL_FLOWERS: LazyLock<HashSet<Block>> = LazyLock::new(|| {
- HashSet::from_iter(vec![
- Block::Sunflower,
- Block::Lilac,
- Block::Peony,
- Block::RoseBush,
- Block::PitcherPlant,
- ])
-});
pub static TERRACOTTA: LazyLock<HashSet<Block>> = LazyLock::new(|| {
HashSet::from_iter(vec![
Block::Terracotta,
@@ -3485,6 +3601,7 @@ pub static TRAPDOORS: LazyLock<HashSet<Block>> = LazyLock::new(|| {
Block::AcaciaTrapdoor,
Block::BirchTrapdoor,
Block::DarkOakTrapdoor,
+ Block::PaleOakTrapdoor,
Block::JungleTrapdoor,
Block::OakTrapdoor,
Block::SpruceTrapdoor,
@@ -3520,6 +3637,7 @@ pub static UNSTABLE_BOTTOM_CENTER: LazyLock<HashSet<Block>> = LazyLock::new(|| {
Block::AcaciaFenceGate,
Block::BirchFenceGate,
Block::DarkOakFenceGate,
+ Block::PaleOakFenceGate,
Block::JungleFenceGate,
Block::OakFenceGate,
Block::SpruceFenceGate,
@@ -3552,6 +3670,7 @@ pub static WALL_HANGING_SIGNS: LazyLock<HashSet<Block>> = LazyLock::new(|| {
Block::CherryWallHangingSign,
Block::JungleWallHangingSign,
Block::DarkOakWallHangingSign,
+ Block::PaleOakWallHangingSign,
Block::CrimsonWallHangingSign,
Block::WarpedWallHangingSign,
Block::MangroveWallHangingSign,
@@ -3604,6 +3723,7 @@ pub static WALL_POST_OVERRIDE: LazyLock<HashSet<Block>> = LazyLock::new(|| {
Block::AcaciaSign,
Block::JungleSign,
Block::DarkOakSign,
+ Block::PaleOakSign,
Block::CrimsonSign,
Block::WarpedSign,
Block::MangroveSign,
@@ -3615,6 +3735,7 @@ pub static WALL_POST_OVERRIDE: LazyLock<HashSet<Block>> = LazyLock::new(|| {
Block::AcaciaWallSign,
Block::JungleWallSign,
Block::DarkOakWallSign,
+ Block::PaleOakWallSign,
Block::CrimsonWallSign,
Block::WarpedWallSign,
Block::MangroveWallSign,
@@ -3626,6 +3747,7 @@ pub static WALL_POST_OVERRIDE: LazyLock<HashSet<Block>> = LazyLock::new(|| {
Block::JunglePressurePlate,
Block::AcaciaPressurePlate,
Block::DarkOakPressurePlate,
+ Block::PaleOakPressurePlate,
Block::CrimsonPressurePlate,
Block::WarpedPressurePlate,
Block::MangrovePressurePlate,
@@ -3643,6 +3765,7 @@ pub static WALL_SIGNS: LazyLock<HashSet<Block>> = LazyLock::new(|| {
Block::AcaciaWallSign,
Block::JungleWallSign,
Block::DarkOakWallSign,
+ Block::PaleOakWallSign,
Block::CrimsonWallSign,
Block::WarpedWallSign,
Block::MangroveWallSign,
@@ -3677,6 +3800,7 @@ pub static WALLS: LazyLock<HashSet<Block>> = LazyLock::new(|| {
Block::TuffWall,
Block::PolishedTuffWall,
Block::TuffBrickWall,
+ Block::ResinBrickWall,
])
});
pub static WARPED_STEMS: LazyLock<HashSet<Block>> = LazyLock::new(|| {
@@ -3725,6 +3849,7 @@ pub static WOODEN_BUTTONS: LazyLock<HashSet<Block>> = LazyLock::new(|| {
Block::JungleButton,
Block::AcaciaButton,
Block::DarkOakButton,
+ Block::PaleOakButton,
Block::CrimsonButton,
Block::WarpedButton,
Block::MangroveButton,
@@ -3740,6 +3865,7 @@ pub static WOODEN_DOORS: LazyLock<HashSet<Block>> = LazyLock::new(|| {
Block::JungleDoor,
Block::AcaciaDoor,
Block::DarkOakDoor,
+ Block::PaleOakDoor,
Block::CrimsonDoor,
Block::WarpedDoor,
Block::MangroveDoor,
@@ -3752,6 +3878,7 @@ pub static WOODEN_FENCES: LazyLock<HashSet<Block>> = LazyLock::new(|| {
Block::OakFence,
Block::AcaciaFence,
Block::DarkOakFence,
+ Block::PaleOakFence,
Block::SpruceFence,
Block::BirchFence,
Block::JungleFence,
@@ -3770,6 +3897,7 @@ pub static WOODEN_PRESSURE_PLATES: LazyLock<HashSet<Block>> = LazyLock::new(|| {
Block::JunglePressurePlate,
Block::AcaciaPressurePlate,
Block::DarkOakPressurePlate,
+ Block::PaleOakPressurePlate,
Block::CrimsonPressurePlate,
Block::WarpedPressurePlate,
Block::MangrovePressurePlate,
@@ -3785,6 +3913,7 @@ pub static WOODEN_SLABS: LazyLock<HashSet<Block>> = LazyLock::new(|| {
Block::JungleSlab,
Block::AcaciaSlab,
Block::DarkOakSlab,
+ Block::PaleOakSlab,
Block::CrimsonSlab,
Block::WarpedSlab,
Block::MangroveSlab,
@@ -3800,6 +3929,7 @@ pub static WOODEN_STAIRS: LazyLock<HashSet<Block>> = LazyLock::new(|| {
Block::JungleStairs,
Block::AcaciaStairs,
Block::DarkOakStairs,
+ Block::PaleOakStairs,
Block::CrimsonStairs,
Block::WarpedStairs,
Block::MangroveStairs,
@@ -3812,6 +3942,7 @@ pub static WOODEN_TRAPDOORS: LazyLock<HashSet<Block>> = LazyLock::new(|| {
Block::AcaciaTrapdoor,
Block::BirchTrapdoor,
Block::DarkOakTrapdoor,
+ Block::PaleOakTrapdoor,
Block::JungleTrapdoor,
Block::OakTrapdoor,
Block::SpruceTrapdoor,
diff --git a/azalea-registry/src/tags/items.rs b/azalea-registry/src/tags/items.rs
index 421b43af..f20b5f66 100644
--- a/azalea-registry/src/tags/items.rs
+++ b/azalea-registry/src/tags/items.rs
@@ -84,14 +84,8 @@ pub static BEDS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
});
pub static BEE_FOOD: LazyLock<HashSet<Item>> = LazyLock::new(|| {
HashSet::from_iter(vec![
- Item::FloweringAzaleaLeaves,
- Item::FloweringAzalea,
- Item::MangrovePropagule,
- Item::CherryLeaves,
- Item::PinkPetals,
- Item::ChorusFlower,
- Item::SporeBlossom,
Item::Dandelion,
+ Item::OpenEyeblossom,
Item::Poppy,
Item::BlueOrchid,
Item::Allium,
@@ -110,6 +104,13 @@ pub static BEE_FOOD: LazyLock<HashSet<Item>> = LazyLock::new(|| {
Item::Peony,
Item::RoseBush,
Item::PitcherPlant,
+ Item::FloweringAzaleaLeaves,
+ Item::FloweringAzalea,
+ Item::MangrovePropagule,
+ Item::CherryLeaves,
+ Item::PinkPetals,
+ Item::ChorusFlower,
+ Item::SporeBlossom,
])
});
pub static BIRCH_LOGS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
@@ -128,6 +129,7 @@ pub static BOATS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
Item::JungleBoat,
Item::AcaciaBoat,
Item::DarkOakBoat,
+ Item::PaleOakBoat,
Item::MangroveBoat,
Item::BambooRaft,
Item::CherryBoat,
@@ -137,6 +139,7 @@ pub static BOATS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
Item::JungleChestBoat,
Item::AcaciaChestBoat,
Item::DarkOakChestBoat,
+ Item::PaleOakChestBoat,
Item::MangroveChestBoat,
Item::BambooChestRaft,
Item::CherryChestBoat,
@@ -218,6 +221,7 @@ pub static BUTTONS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
Item::JungleButton,
Item::AcaciaButton,
Item::DarkOakButton,
+ Item::PaleOakButton,
Item::CrimsonButton,
Item::WarpedButton,
Item::MangroveButton,
@@ -278,6 +282,7 @@ pub static CHEST_BOATS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
Item::JungleChestBoat,
Item::AcaciaChestBoat,
Item::DarkOakChestBoat,
+ Item::PaleOakChestBoat,
Item::MangroveChestBoat,
Item::BambooChestRaft,
Item::CherryChestBoat,
@@ -314,6 +319,7 @@ pub static COMPLETES_FIND_TREE_TUTORIAL: LazyLock<HashSet<Item>> = LazyLock::new
Item::JungleLeaves,
Item::OakLeaves,
Item::SpruceLeaves,
+ Item::PaleOakLeaves,
Item::DarkOakLeaves,
Item::AcaciaLeaves,
Item::BirchLeaves,
@@ -335,6 +341,10 @@ pub static COMPLETES_FIND_TREE_TUTORIAL: LazyLock<HashSet<Item>> = LazyLock::new
Item::DarkOakWood,
Item::StrippedDarkOakLog,
Item::StrippedDarkOakWood,
+ Item::PaleOakLog,
+ Item::PaleOakWood,
+ Item::StrippedPaleOakLog,
+ Item::StrippedPaleOakWood,
Item::OakLog,
Item::OakWood,
Item::StrippedOakLog,
@@ -507,6 +517,7 @@ pub static DIRT: LazyLock<HashSet<Item>> = LazyLock::new(|| {
Item::Mycelium,
Item::RootedDirt,
Item::MossBlock,
+ Item::PaleMossBlock,
Item::Mud,
Item::MuddyMangroveRoots,
])
@@ -528,6 +539,7 @@ pub static DOORS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
Item::JungleDoor,
Item::AcaciaDoor,
Item::DarkOakDoor,
+ Item::PaleOakDoor,
Item::CrimsonDoor,
Item::WarpedDoor,
Item::MangroveDoor,
@@ -535,6 +547,8 @@ pub static DOORS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
Item::CherryDoor,
])
});
+pub static DROWNED_PREFERRED_WEAPONS: LazyLock<HashSet<Item>> =
+ LazyLock::new(|| HashSet::from_iter(vec![Item::Trident]));
pub static DUPLICATES_ALLAYS: LazyLock<HashSet<Item>> =
LazyLock::new(|| HashSet::from_iter(vec![Item::AmethystShard]));
pub static DYEABLE: LazyLock<HashSet<Item>> = LazyLock::new(|| {
@@ -934,6 +948,7 @@ pub static FENCE_GATES: LazyLock<HashSet<Item>> = LazyLock::new(|| {
Item::AcaciaFenceGate,
Item::BirchFenceGate,
Item::DarkOakFenceGate,
+ Item::PaleOakFenceGate,
Item::JungleFenceGate,
Item::OakFenceGate,
Item::SpruceFenceGate,
@@ -950,6 +965,7 @@ pub static FENCES: LazyLock<HashSet<Item>> = LazyLock::new(|| {
Item::OakFence,
Item::AcaciaFence,
Item::DarkOakFence,
+ Item::PaleOakFence,
Item::SpruceFence,
Item::BirchFence,
Item::JungleFence,
@@ -970,36 +986,6 @@ pub static FISHES: LazyLock<HashSet<Item>> = LazyLock::new(|| {
Item::TropicalFish,
])
});
-pub static FLOWERS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
- HashSet::from_iter(vec![
- Item::FloweringAzaleaLeaves,
- Item::FloweringAzalea,
- Item::MangrovePropagule,
- Item::CherryLeaves,
- Item::PinkPetals,
- Item::ChorusFlower,
- Item::SporeBlossom,
- Item::Dandelion,
- Item::Poppy,
- Item::BlueOrchid,
- Item::Allium,
- Item::AzureBluet,
- Item::RedTulip,
- Item::OrangeTulip,
- Item::WhiteTulip,
- Item::PinkTulip,
- Item::OxeyeDaisy,
- Item::Cornflower,
- Item::LilyOfTheValley,
- Item::WitherRose,
- Item::Torchflower,
- Item::Sunflower,
- Item::Lilac,
- Item::Peony,
- Item::RoseBush,
- Item::PitcherPlant,
- ])
-});
pub static FOOT_ARMOR: LazyLock<HashSet<Item>> = LazyLock::new(|| {
HashSet::from_iter(vec![
Item::LeatherBoots,
@@ -1047,6 +1033,7 @@ pub static HANGING_SIGNS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
Item::CherryHangingSign,
Item::JungleHangingSign,
Item::DarkOakHangingSign,
+ Item::PaleOakHangingSign,
Item::CrimsonHangingSign,
Item::WarpedHangingSign,
Item::MangroveHangingSign,
@@ -1115,6 +1102,7 @@ pub static LEAVES: LazyLock<HashSet<Item>> = LazyLock::new(|| {
Item::JungleLeaves,
Item::OakLeaves,
Item::SpruceLeaves,
+ Item::PaleOakLeaves,
Item::DarkOakLeaves,
Item::AcaciaLeaves,
Item::BirchLeaves,
@@ -1154,6 +1142,10 @@ pub static LOGS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
Item::DarkOakWood,
Item::StrippedDarkOakLog,
Item::StrippedDarkOakWood,
+ Item::PaleOakLog,
+ Item::PaleOakWood,
+ Item::StrippedPaleOakLog,
+ Item::StrippedPaleOakWood,
Item::OakLog,
Item::OakWood,
Item::StrippedOakLog,
@@ -1190,6 +1182,10 @@ pub static LOGS_THAT_BURN: LazyLock<HashSet<Item>> = LazyLock::new(|| {
Item::DarkOakWood,
Item::StrippedDarkOakLog,
Item::StrippedDarkOakWood,
+ Item::PaleOakLog,
+ Item::PaleOakWood,
+ Item::StrippedPaleOakLog,
+ Item::StrippedPaleOakWood,
Item::OakLog,
Item::OakWood,
Item::StrippedOakLog,
@@ -1302,6 +1298,14 @@ pub static OAK_LOGS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
});
pub static OCELOT_FOOD: LazyLock<HashSet<Item>> =
LazyLock::new(|| HashSet::from_iter(vec![Item::Cod, Item::Salmon]));
+pub static PALE_OAK_LOGS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
+ HashSet::from_iter(vec![
+ Item::PaleOakLog,
+ Item::PaleOakWood,
+ Item::StrippedPaleOakLog,
+ Item::StrippedPaleOakWood,
+ ])
+});
pub static PANDA_EATS_FROM_GROUND: LazyLock<HashSet<Item>> =
LazyLock::new(|| HashSet::from_iter(vec![Item::Cake, Item::Bamboo]));
pub static PANDA_FOOD: LazyLock<HashSet<Item>> =
@@ -1361,6 +1365,8 @@ pub static PIGLIN_LOVED: LazyLock<HashSet<Item>> = LazyLock::new(|| {
Item::DeepslateGoldOre,
])
});
+pub static PIGLIN_PREFERRED_WEAPONS: LazyLock<HashSet<Item>> =
+ LazyLock::new(|| HashSet::from_iter(vec![Item::Crossbow]));
pub static PIGLIN_REPELLENTS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
HashSet::from_iter(vec![Item::SoulTorch, Item::SoulLantern, Item::SoulCampfire])
});
@@ -1372,6 +1378,8 @@ pub static PIGLIN_SAFE_ARMOR: LazyLock<HashSet<Item>> = LazyLock::new(|| {
Item::GoldenBoots,
])
});
+pub static PILLAGER_PREFERRED_WEAPONS: LazyLock<HashSet<Item>> =
+ LazyLock::new(|| HashSet::from_iter(vec![Item::Crossbow]));
pub static PLANKS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
HashSet::from_iter(vec![
Item::OakPlanks,
@@ -1380,6 +1388,7 @@ pub static PLANKS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
Item::JunglePlanks,
Item::AcaciaPlanks,
Item::DarkOakPlanks,
+ Item::PaleOakPlanks,
Item::CrimsonPlanks,
Item::WarpedPlanks,
Item::MangrovePlanks,
@@ -1431,6 +1440,7 @@ pub static SAPLINGS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
Item::JungleSapling,
Item::AcaciaSapling,
Item::DarkOakSapling,
+ Item::PaleOakSapling,
Item::Azalea,
Item::FloweringAzalea,
Item::MangrovePropagule,
@@ -1478,6 +1488,7 @@ pub static SIGNS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
Item::AcaciaSign,
Item::JungleSign,
Item::DarkOakSign,
+ Item::PaleOakSign,
Item::CrimsonSign,
Item::WarpedSign,
Item::MangroveSign,
@@ -1485,6 +1496,8 @@ pub static SIGNS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
Item::CherrySign,
])
});
+pub static SKELETON_PREFERRED_WEAPONS: LazyLock<HashSet<Item>> =
+ LazyLock::new(|| HashSet::from_iter(vec![Item::Bow]));
pub static SKULLS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
HashSet::from_iter(vec![
Item::PlayerHead,
@@ -1547,12 +1560,14 @@ pub static SLABS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
Item::TuffSlab,
Item::PolishedTuffSlab,
Item::TuffBrickSlab,
+ Item::ResinBrickSlab,
Item::OakSlab,
Item::SpruceSlab,
Item::BirchSlab,
Item::JungleSlab,
Item::AcaciaSlab,
Item::DarkOakSlab,
+ Item::PaleOakSlab,
Item::CrimsonSlab,
Item::WarpedSlab,
Item::MangroveSlab,
@@ -1563,6 +1578,7 @@ pub static SLABS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
pub static SMALL_FLOWERS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
HashSet::from_iter(vec![
Item::Dandelion,
+ Item::OpenEyeblossom,
Item::Poppy,
Item::BlueOrchid,
Item::Allium,
@@ -1576,6 +1592,7 @@ pub static SMALL_FLOWERS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
Item::LilyOfTheValley,
Item::WitherRose,
Item::Torchflower,
+ Item::ClosedEyeblossom,
])
});
pub static SMELTS_TO_GLASS: LazyLock<HashSet<Item>> =
@@ -1639,12 +1656,14 @@ pub static STAIRS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
Item::TuffStairs,
Item::PolishedTuffStairs,
Item::TuffBrickStairs,
+ Item::ResinBrickStairs,
Item::OakStairs,
Item::SpruceStairs,
Item::BirchStairs,
Item::JungleStairs,
Item::AcaciaStairs,
Item::DarkOakStairs,
+ Item::PaleOakStairs,
Item::CrimsonStairs,
Item::WarpedStairs,
Item::MangroveStairs,
@@ -1690,15 +1709,6 @@ pub static SWORDS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
Item::IronSword,
])
});
-pub static TALL_FLOWERS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
- HashSet::from_iter(vec![
- Item::Sunflower,
- Item::Lilac,
- Item::Peony,
- Item::RoseBush,
- Item::PitcherPlant,
- ])
-});
pub static TERRACOTTA: LazyLock<HashSet<Item>> = LazyLock::new(|| {
HashSet::from_iter(vec![
Item::Terracotta,
@@ -1734,6 +1744,7 @@ pub static TRAPDOORS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
Item::AcaciaTrapdoor,
Item::BirchTrapdoor,
Item::DarkOakTrapdoor,
+ Item::PaleOakTrapdoor,
Item::JungleTrapdoor,
Item::OakTrapdoor,
Item::SpruceTrapdoor,
@@ -1746,38 +1757,17 @@ pub static TRAPDOORS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
});
pub static TRIM_MATERIALS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
HashSet::from_iter(vec![
- Item::IronIngot,
+ Item::AmethystShard,
Item::CopperIngot,
+ Item::Diamond,
+ Item::Emerald,
Item::GoldIngot,
+ Item::IronIngot,
Item::LapisLazuli,
- Item::Emerald,
- Item::Diamond,
Item::NetheriteIngot,
- Item::Redstone,
Item::Quartz,
- Item::AmethystShard,
- ])
-});
-pub static TRIM_TEMPLATES: LazyLock<HashSet<Item>> = LazyLock::new(|| {
- HashSet::from_iter(vec![
- Item::WardArmorTrimSmithingTemplate,
- Item::SpireArmorTrimSmithingTemplate,
- Item::CoastArmorTrimSmithingTemplate,
- Item::EyeArmorTrimSmithingTemplate,
- Item::DuneArmorTrimSmithingTemplate,
- Item::WildArmorTrimSmithingTemplate,
- Item::RibArmorTrimSmithingTemplate,
- Item::TideArmorTrimSmithingTemplate,
- Item::SentryArmorTrimSmithingTemplate,
- Item::VexArmorTrimSmithingTemplate,
- Item::SnoutArmorTrimSmithingTemplate,
- Item::WayfinderArmorTrimSmithingTemplate,
- Item::ShaperArmorTrimSmithingTemplate,
- Item::SilenceArmorTrimSmithingTemplate,
- Item::RaiserArmorTrimSmithingTemplate,
- Item::HostArmorTrimSmithingTemplate,
- Item::FlowArmorTrimSmithingTemplate,
- Item::BoltArmorTrimSmithingTemplate,
+ Item::Redstone,
+ Item::ResinBrick,
])
});
pub static TRIMMABLE_ARMOR: LazyLock<HashSet<Item>> = LazyLock::new(|| {
@@ -1861,6 +1851,7 @@ pub static WALLS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
Item::TuffWall,
Item::PolishedTuffWall,
Item::TuffBrickWall,
+ Item::ResinBrickWall,
])
});
pub static WARPED_STEMS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
@@ -1873,6 +1864,8 @@ pub static WARPED_STEMS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
});
pub static WART_BLOCKS: LazyLock<HashSet<Item>> =
LazyLock::new(|| HashSet::from_iter(vec![Item::NetherWartBlock, Item::WarpedWartBlock]));
+pub static WITHER_SKELETON_DISLIKED_WEAPONS: LazyLock<HashSet<Item>> =
+ LazyLock::new(|| HashSet::from_iter(vec![Item::Bow, Item::Crossbow]));
pub static WOLF_FOOD: LazyLock<HashSet<Item>> = LazyLock::new(|| {
HashSet::from_iter(vec![
Item::Cod,
@@ -1903,6 +1896,7 @@ pub static WOODEN_BUTTONS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
Item::JungleButton,
Item::AcaciaButton,
Item::DarkOakButton,
+ Item::PaleOakButton,
Item::CrimsonButton,
Item::WarpedButton,
Item::MangroveButton,
@@ -1918,6 +1912,7 @@ pub static WOODEN_DOORS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
Item::JungleDoor,
Item::AcaciaDoor,
Item::DarkOakDoor,
+ Item::PaleOakDoor,
Item::CrimsonDoor,
Item::WarpedDoor,
Item::MangroveDoor,
@@ -1930,6 +1925,7 @@ pub static WOODEN_FENCES: LazyLock<HashSet<Item>> = LazyLock::new(|| {
Item::OakFence,
Item::AcaciaFence,
Item::DarkOakFence,
+ Item::PaleOakFence,
Item::SpruceFence,
Item::BirchFence,
Item::JungleFence,
@@ -1948,6 +1944,7 @@ pub static WOODEN_PRESSURE_PLATES: LazyLock<HashSet<Item>> = LazyLock::new(|| {
Item::JunglePressurePlate,
Item::AcaciaPressurePlate,
Item::DarkOakPressurePlate,
+ Item::PaleOakPressurePlate,
Item::CrimsonPressurePlate,
Item::WarpedPressurePlate,
Item::MangrovePressurePlate,
@@ -1963,6 +1960,7 @@ pub static WOODEN_SLABS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
Item::JungleSlab,
Item::AcaciaSlab,
Item::DarkOakSlab,
+ Item::PaleOakSlab,
Item::CrimsonSlab,
Item::WarpedSlab,
Item::MangroveSlab,
@@ -1978,6 +1976,7 @@ pub static WOODEN_STAIRS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
Item::JungleStairs,
Item::AcaciaStairs,
Item::DarkOakStairs,
+ Item::PaleOakStairs,
Item::CrimsonStairs,
Item::WarpedStairs,
Item::MangroveStairs,
@@ -1993,6 +1992,7 @@ pub static WOODEN_TOOL_MATERIALS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
Item::JunglePlanks,
Item::AcaciaPlanks,
Item::DarkOakPlanks,
+ Item::PaleOakPlanks,
Item::CrimsonPlanks,
Item::WarpedPlanks,
Item::MangrovePlanks,
@@ -2005,6 +2005,7 @@ pub static WOODEN_TRAPDOORS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
Item::AcaciaTrapdoor,
Item::BirchTrapdoor,
Item::DarkOakTrapdoor,
+ Item::PaleOakTrapdoor,
Item::JungleTrapdoor,
Item::OakTrapdoor,
Item::SpruceTrapdoor,
diff --git a/azalea-world/Cargo.toml b/azalea-world/Cargo.toml
index 37bcd5a5..a1e1a769 100644
--- a/azalea-world/Cargo.toml
+++ b/azalea-world/Cargo.toml
@@ -4,7 +4,7 @@ edition = "2021"
license = "MIT"
name = "azalea-world"
repository = "https://github.com/azalea-rs/azalea/tree/main/azalea-world"
-version = "0.10.3+mc1.21.3"
+version = "0.10.3+mc1.21.4"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
diff --git a/azalea/Cargo.toml b/azalea/Cargo.toml
index c0953f54..504280cf 100644
--- a/azalea/Cargo.toml
+++ b/azalea/Cargo.toml
@@ -4,7 +4,7 @@ edition = "2021"
license = "MIT"
name = "azalea"
repository = "https://github.com/azalea-rs/azalea/tree/main/azalea"
-version = "0.10.3+mc1.21.3"
+version = "0.10.3+mc1.21.4"
[package.metadata.release]
pre-release-replacements = [