1
2
Fork 0
mirror of https://github.com/mat-1/azalea.git synced 2025-08-02 06:16:04 +00:00
* start updating to 1.21.4

* fix block codegen and stop using block data from burger

* 1.21.4-rc1

* 1.21.4
This commit is contained in:
mat 2024-12-03 14:42:23 -06:00 committed by GitHub
parent ea5a1c1ec1
commit b71a7af53a
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
36 changed files with 993 additions and 770 deletions

42
Cargo.lock generated
View file

@ -190,7 +190,7 @@ checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26"
[[package]] [[package]]
name = "azalea" name = "azalea"
version = "0.10.3+mc1.21.3" version = "0.10.3+mc1.21.4-rc1"
dependencies = [ dependencies = [
"anyhow", "anyhow",
"azalea-auth", "azalea-auth",
@ -229,7 +229,7 @@ dependencies = [
[[package]] [[package]]
name = "azalea-auth" name = "azalea-auth"
version = "0.10.3+mc1.21.3" version = "0.10.3+mc1.21.4-rc1"
dependencies = [ dependencies = [
"azalea-buf", "azalea-buf",
"azalea-crypto", "azalea-crypto",
@ -249,7 +249,7 @@ dependencies = [
[[package]] [[package]]
name = "azalea-block" name = "azalea-block"
version = "0.10.3+mc1.21.3" version = "0.10.3+mc1.21.4-rc1"
dependencies = [ dependencies = [
"azalea-block-macros", "azalea-block-macros",
"azalea-buf", "azalea-buf",
@ -258,7 +258,7 @@ dependencies = [
[[package]] [[package]]
name = "azalea-block-macros" name = "azalea-block-macros"
version = "0.10.3+mc1.21.3" version = "0.10.3+mc1.21.4-rc1"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
@ -267,7 +267,7 @@ dependencies = [
[[package]] [[package]]
name = "azalea-brigadier" name = "azalea-brigadier"
version = "0.10.3+mc1.21.3" version = "0.10.3+mc1.21.4-rc1"
dependencies = [ dependencies = [
"azalea-buf", "azalea-buf",
"azalea-chat", "azalea-chat",
@ -278,7 +278,7 @@ dependencies = [
[[package]] [[package]]
name = "azalea-buf" name = "azalea-buf"
version = "0.10.3+mc1.21.3" version = "0.10.3+mc1.21.4-rc1"
dependencies = [ dependencies = [
"azalea-buf-macros", "azalea-buf-macros",
"byteorder", "byteorder",
@ -291,7 +291,7 @@ dependencies = [
[[package]] [[package]]
name = "azalea-buf-macros" name = "azalea-buf-macros"
version = "0.10.3+mc1.21.3" version = "0.10.3+mc1.21.4-rc1"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
@ -300,7 +300,7 @@ dependencies = [
[[package]] [[package]]
name = "azalea-chat" name = "azalea-chat"
version = "0.10.3+mc1.21.3" version = "0.10.3+mc1.21.4-rc1"
dependencies = [ dependencies = [
"azalea-buf", "azalea-buf",
"azalea-language", "azalea-language",
@ -313,7 +313,7 @@ dependencies = [
[[package]] [[package]]
name = "azalea-client" name = "azalea-client"
version = "0.10.3+mc1.21.3" version = "0.10.3+mc1.21.4-rc1"
dependencies = [ dependencies = [
"anyhow", "anyhow",
"azalea-auth", "azalea-auth",
@ -347,7 +347,7 @@ dependencies = [
[[package]] [[package]]
name = "azalea-core" name = "azalea-core"
version = "0.10.3+mc1.21.3" version = "0.10.3+mc1.21.4-rc1"
dependencies = [ dependencies = [
"azalea-buf", "azalea-buf",
"azalea-registry", "azalea-registry",
@ -361,7 +361,7 @@ dependencies = [
[[package]] [[package]]
name = "azalea-crypto" name = "azalea-crypto"
version = "0.10.3+mc1.21.3" version = "0.10.3+mc1.21.4-rc1"
dependencies = [ dependencies = [
"aes", "aes",
"azalea-buf", "azalea-buf",
@ -378,7 +378,7 @@ dependencies = [
[[package]] [[package]]
name = "azalea-entity" name = "azalea-entity"
version = "0.10.3+mc1.21.3" version = "0.10.3+mc1.21.4-rc1"
dependencies = [ dependencies = [
"azalea-block", "azalea-block",
"azalea-buf", "azalea-buf",
@ -401,7 +401,7 @@ dependencies = [
[[package]] [[package]]
name = "azalea-inventory" name = "azalea-inventory"
version = "0.10.3+mc1.21.3" version = "0.10.3+mc1.21.4-rc1"
dependencies = [ dependencies = [
"azalea-buf", "azalea-buf",
"azalea-chat", "azalea-chat",
@ -414,7 +414,7 @@ dependencies = [
[[package]] [[package]]
name = "azalea-inventory-macros" name = "azalea-inventory-macros"
version = "0.10.3+mc1.21.3" version = "0.10.3+mc1.21.4-rc1"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
@ -423,7 +423,7 @@ dependencies = [
[[package]] [[package]]
name = "azalea-language" name = "azalea-language"
version = "0.10.3+mc1.21.3" version = "0.10.3+mc1.21.4-rc1"
dependencies = [ dependencies = [
"serde", "serde",
"serde_json", "serde_json",
@ -431,7 +431,7 @@ dependencies = [
[[package]] [[package]]
name = "azalea-physics" name = "azalea-physics"
version = "0.10.3+mc1.21.3" version = "0.10.3+mc1.21.4-rc1"
dependencies = [ dependencies = [
"azalea-block", "azalea-block",
"azalea-core", "azalea-core",
@ -447,7 +447,7 @@ dependencies = [
[[package]] [[package]]
name = "azalea-protocol" name = "azalea-protocol"
version = "0.10.3+mc1.21.3" version = "0.10.3+mc1.21.4-rc1"
dependencies = [ dependencies = [
"anyhow", "anyhow",
"async-recursion", "async-recursion",
@ -484,7 +484,7 @@ dependencies = [
[[package]] [[package]]
name = "azalea-protocol-macros" name = "azalea-protocol-macros"
version = "0.10.3+mc1.21.3" version = "0.10.3+mc1.21.4-rc1"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
@ -493,7 +493,7 @@ dependencies = [
[[package]] [[package]]
name = "azalea-registry" name = "azalea-registry"
version = "0.10.3+mc1.21.3" version = "0.10.3+mc1.21.4-rc1"
dependencies = [ dependencies = [
"azalea-buf", "azalea-buf",
"azalea-registry-macros", "azalea-registry-macros",
@ -503,7 +503,7 @@ dependencies = [
[[package]] [[package]]
name = "azalea-registry-macros" name = "azalea-registry-macros"
version = "0.10.3+mc1.21.3" version = "0.10.3+mc1.21.4-rc1"
dependencies = [ dependencies = [
"quote", "quote",
"syn", "syn",
@ -511,7 +511,7 @@ dependencies = [
[[package]] [[package]]
name = "azalea-world" name = "azalea-world"
version = "0.10.3+mc1.21.3" version = "0.10.3+mc1.21.4-rc1"
dependencies = [ dependencies = [
"azalea-block", "azalea-block",
"azalea-buf", "azalea-buf",

View file

@ -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. --> <!-- 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] > [!WARNING]
> Azalea is still very unfinished, though most crates are in a somewhat useable state > Azalea is still very unfinished, though most crates are in a somewhat useable state

View file

@ -4,7 +4,7 @@ edition = "2021"
license = "MIT" license = "MIT"
name = "azalea-auth" name = "azalea-auth"
repository = "https://github.com/azalea-rs/azalea/tree/main/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 # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html

View file

@ -4,7 +4,7 @@ edition = "2021"
license = "MIT" license = "MIT"
name = "azalea-block" name = "azalea-block"
repository = "https://github.com/azalea-rs/azalea/tree/main/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] [lib]

View file

@ -4,7 +4,7 @@ edition = "2021"
license = "MIT" license = "MIT"
name = "azalea-block-macros" name = "azalea-block-macros"
repository = "https://github.com/azalea-rs/azalea/tree/main/azalea-block/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] [lib]
proc-macro = true proc-macro = true

View file

@ -326,11 +326,8 @@ make_block_states! {
"south" => South(bool), "south" => South(bool),
"up" => Up(bool), "up" => Up(bool),
"west" => West(bool), "west" => West(bool),
"creaking" => Creaking { "active" => Active(bool),
Disabled, "natural" => Natural(bool),
Dormant,
Active,
},
"half" => TopBottom { "half" => TopBottom {
Top, Top,
Bottom, Bottom,
@ -914,6 +911,31 @@ make_block_states! {
_7, _7,
}, },
"in_wall" => InWall(bool), "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 { "age" => NetherWartAge {
_0, _0,
_1, _1,
@ -941,26 +963,6 @@ make_block_states! {
}, },
"disarmed" => Disarmed(bool), "disarmed" => Disarmed(bool),
"conditional" => Conditional(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 { "age" => CarrotsAge {
_0, _0,
_1, _1,
@ -1192,11 +1194,6 @@ make_block_states! {
_14, _14,
_15, _15,
}, },
"type" => Type {
Top,
Bottom,
Double,
},
"rotation" => WhiteBannerRotation { "rotation" => WhiteBannerRotation {
_0, _0,
_1, _1,
@ -2441,8 +2438,9 @@ make_block_states! {
soul_fire => BlockBehavior::new(), {}, soul_fire => BlockBehavior::new(), {},
spawner => BlockBehavior::new().requires_correct_tool_for_drops().strength(5.0, 5.0), {}, spawner => BlockBehavior::new().requires_correct_tool_for_drops().strength(5.0, 5.0), {},
creaking_heart => BlockBehavior::new(), { creaking_heart => BlockBehavior::new(), {
"active": Active(false),
"axis": Axis::Y, "axis": Axis::Y,
"creaking": Creaking::Disabled, "natural": Natural(false),
}, },
oak_stairs => BlockBehavior::new().strength(2.0, 3.0), { oak_stairs => BlockBehavior::new().strength(2.0, 3.0), {
"facing": FacingCardinal::North, "facing": FacingCardinal::North,
@ -2972,6 +2970,15 @@ make_block_states! {
"waterlogged": Waterlogged(false), "waterlogged": Waterlogged(false),
"west": West(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), { oak_fence_gate => BlockBehavior::new().strength(2.0, 3.0), {
"facing": FacingCardinal::North, "facing": FacingCardinal::North,
"in_wall": InWall(false), "in_wall": InWall(false),
@ -3000,6 +3007,27 @@ make_block_states! {
"snowy": Snowy(false), "snowy": Snowy(false),
}, },
lily_pad => BlockBehavior::new(), {}, 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_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), { nether_brick_fence => BlockBehavior::new().requires_correct_tool_for_drops().strength(2.0, 6.0), {
"east": East(false), "east": East(false),
@ -5546,5 +5574,9 @@ make_block_states! {
pale_hanging_moss => BlockBehavior::new(), { pale_hanging_moss => BlockBehavior::new(), {
"tip": Tip(true), "tip": Tip(true),
}, },
open_eyeblossom => BlockBehavior::new(), {},
closed_eyeblossom => BlockBehavior::new(), {},
potted_open_eyeblossom => BlockBehavior::new(), {},
potted_closed_eyeblossom => BlockBehavior::new(), {},
} }
} }

View file

@ -4,7 +4,7 @@ edition = "2021"
license = "MIT" license = "MIT"
name = "azalea-brigadier" name = "azalea-brigadier"
repository = "https://github.com/azalea-rs/azalea/tree/main/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 # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html

View file

@ -4,7 +4,7 @@ edition = "2021"
license = "MIT" license = "MIT"
name = "azalea-buf" name = "azalea-buf"
repository = "https://github.com/azalea-rs/azalea/tree/main/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 # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html

View file

@ -4,7 +4,7 @@ edition = "2021"
license = "MIT" license = "MIT"
name = "azalea-buf-macros" name = "azalea-buf-macros"
repository = "https://github.com/azalea-rs/azalea/tree/main/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"
[lib] [lib]
proc-macro = true proc-macro = true

View file

@ -4,7 +4,7 @@ edition = "2021"
license = "MIT" license = "MIT"
name = "azalea-chat" name = "azalea-chat"
repository = "https://github.com/azalea-rs/azalea/tree/main/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 # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html

View file

@ -4,7 +4,7 @@ edition = "2021"
license = "MIT" license = "MIT"
name = "azalea-client" name = "azalea-client"
repository = "https://github.com/azalea-rs/azalea/tree/main/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 # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html

View file

@ -4,7 +4,7 @@ edition = "2021"
license = "MIT" license = "MIT"
name = "azalea-core" name = "azalea-core"
repository = "https://github.com/azalea-rs/azalea/tree/main/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 # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html

View file

@ -3,7 +3,7 @@ description = "Cryptography features used in Minecraft."
edition = "2021" edition = "2021"
license = "MIT" license = "MIT"
name = "azalea-crypto" 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" 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 # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html

View file

@ -1,6 +1,6 @@
[package] [package]
name = "azalea-entity" name = "azalea-entity"
version = "0.10.3+mc1.21.3" version = "0.10.3+mc1.21.4"
edition = "2021" edition = "2021"
description = "Things related to Minecraft entities used by Azalea" description = "Things related to Minecraft entities used by Azalea"
repository = "https://github.com/azalea-rs/azalea/tree/main/azalea-entity" repository = "https://github.com/azalea-rs/azalea/tree/main/azalea-entity"

View file

@ -2564,6 +2564,10 @@ impl Default for CowMetadataBundle {
pub struct CanMove(pub bool); pub struct CanMove(pub bool);
#[derive(Component, Deref, DerefMut, Clone)] #[derive(Component, Deref, DerefMut, Clone)]
pub struct IsActive(pub bool); 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)] #[derive(Component)]
pub struct Creaking; pub struct Creaking;
impl Creaking { impl Creaking {
@ -2579,6 +2583,12 @@ impl Creaking {
17 => { 17 => {
entity.insert(IsActive(d.value.into_boolean()?)); 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(()) Ok(())
@ -2591,6 +2601,8 @@ pub struct CreakingMetadataBundle {
parent: AbstractMonsterMetadataBundle, parent: AbstractMonsterMetadataBundle,
can_move: CanMove, can_move: CanMove,
is_active: IsActive, is_active: IsActive,
is_tearing_down: IsTearingDown,
creaking_home_pos: CreakingHomePos,
} }
impl Default for CreakingMetadataBundle { impl Default for CreakingMetadataBundle {
fn default() -> Self { fn default() -> Self {
@ -2638,79 +2650,8 @@ impl Default for CreakingMetadataBundle {
}, },
can_move: CanMove(true), can_move: CanMove(true),
is_active: IsActive(false), is_active: IsActive(false),
} is_tearing_down: IsTearingDown(false),
} creaking_home_pos: CreakingHomePos(None),
}
#[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),
},
} }
} }
} }
@ -8398,7 +8339,7 @@ impl Default for RavagerMetadataBundle {
#[derive(Component, Deref, DerefMut, Clone)] #[derive(Component, Deref, DerefMut, Clone)]
pub struct SalmonFromBucket(pub bool); pub struct SalmonFromBucket(pub bool);
#[derive(Component, Deref, DerefMut, Clone)] #[derive(Component, Deref, DerefMut, Clone)]
pub struct SalmonKind(pub String); pub struct SalmonKind(pub i32);
#[derive(Component)] #[derive(Component)]
pub struct Salmon; pub struct Salmon;
impl Salmon { impl Salmon {
@ -8412,7 +8353,7 @@ impl Salmon {
entity.insert(SalmonFromBucket(d.value.into_boolean()?)); entity.insert(SalmonFromBucket(d.value.into_boolean()?));
} }
17 => { 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)] #[derive(Component, Deref, DerefMut, Clone)]
pub struct HomePos(pub BlockPos); pub struct TurtleHomePos(pub BlockPos);
#[derive(Component, Deref, DerefMut, Clone)] #[derive(Component, Deref, DerefMut, Clone)]
pub struct HasEgg(pub bool); pub struct HasEgg(pub bool);
#[derive(Component, Deref, DerefMut, Clone)] #[derive(Component, Deref, DerefMut, Clone)]
@ -10530,7 +10471,7 @@ impl Turtle {
match d.index { match d.index {
0..=16 => AbstractAnimal::apply_metadata(entity, d)?, 0..=16 => AbstractAnimal::apply_metadata(entity, d)?,
17 => { 17 => {
entity.insert(HomePos(d.value.into_block_pos()?)); entity.insert(TurtleHomePos(d.value.into_block_pos()?));
} }
18 => { 18 => {
entity.insert(HasEgg(d.value.into_boolean()?)); entity.insert(HasEgg(d.value.into_boolean()?));
@ -10557,7 +10498,7 @@ impl Turtle {
pub struct TurtleMetadataBundle { pub struct TurtleMetadataBundle {
_marker: Turtle, _marker: Turtle,
parent: AbstractAnimalMetadataBundle, parent: AbstractAnimalMetadataBundle,
home_pos: HomePos, turtle_home_pos: TurtleHomePos,
has_egg: HasEgg, has_egg: HasEgg,
laying_egg: LayingEgg, laying_egg: LayingEgg,
travel_pos: TravelPos, travel_pos: TravelPos,
@ -10612,7 +10553,7 @@ impl Default for TurtleMetadataBundle {
abstract_ageable_baby: AbstractAgeableBaby(false), 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), has_egg: HasEgg(false),
laying_egg: LayingEgg(false), laying_egg: LayingEgg(false),
travel_pos: TravelPos(BlockPos::new(0, 0, 0)), travel_pos: TravelPos(BlockPos::new(0, 0, 0)),
@ -12703,11 +12644,6 @@ pub fn apply_metadata(
Creaking::apply_metadata(entity, d)?; Creaking::apply_metadata(entity, d)?;
} }
} }
azalea_registry::EntityKind::CreakingTransient => {
for d in items {
CreakingTransient::apply_metadata(entity, d)?;
}
}
azalea_registry::EntityKind::Creeper => { azalea_registry::EntityKind::Creeper => {
for d in items { for d in items {
Creeper::apply_metadata(entity, d)?; Creeper::apply_metadata(entity, d)?;
@ -13402,9 +13338,6 @@ pub fn apply_default_metadata(
azalea_registry::EntityKind::Creaking => { azalea_registry::EntityKind::Creaking => {
entity.insert(CreakingMetadataBundle::default()); entity.insert(CreakingMetadataBundle::default());
} }
azalea_registry::EntityKind::CreakingTransient => {
entity.insert(CreakingTransientMetadataBundle::default());
}
azalea_registry::EntityKind::Creeper => { azalea_registry::EntityKind::Creeper => {
entity.insert(CreeperMetadataBundle::default()); entity.insert(CreeperMetadataBundle::default());
} }

View file

@ -163,6 +163,7 @@ impl From<ParticleKind> for Particle {
ParticleKind::Fishing => Self::Fishing, ParticleKind::Fishing => Self::Fishing,
ParticleKind::Flame => Self::Flame, ParticleKind::Flame => Self::Flame,
ParticleKind::CherryLeaves => Self::CherryLeaves, ParticleKind::CherryLeaves => Self::CherryLeaves,
ParticleKind::PaleOakLeaves => Self::PaleOakLeaves,
ParticleKind::SculkSoul => Self::SculkSoul, ParticleKind::SculkSoul => Self::SculkSoul,
ParticleKind::SculkCharge => Self::SculkCharge(SculkChargeParticle::default()), ParticleKind::SculkCharge => Self::SculkCharge(SculkChargeParticle::default()),
ParticleKind::SculkChargePop => Self::SculkChargePop, ParticleKind::SculkChargePop => Self::SculkChargePop,

View file

@ -4,7 +4,7 @@ edition = "2021"
license = "MIT" license = "MIT"
name = "azalea-inventory" name = "azalea-inventory"
repository = "https://github.com/azalea-rs/azalea/tree/main/azalea-inventory-macros" 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 # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html

View file

@ -4,7 +4,7 @@ edition = "2021"
license = "MIT" license = "MIT"
name = "azalea-inventory-macros" name = "azalea-inventory-macros"
repository = "https://github.com/azalea-rs/azalea/tree/main/azalea-inventory/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] [lib]
proc-macro = true proc-macro = true

View file

@ -4,7 +4,7 @@ edition = "2021"
license = "MIT" license = "MIT"
name = "azalea-language" name = "azalea-language"
repository = "https://github.com/azalea-rs/azalea/tree/main/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 # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html

View file

@ -1429,6 +1429,7 @@
"block.minecraft.chiseled_polished_blackstone": "Chiseled Polished Blackstone", "block.minecraft.chiseled_polished_blackstone": "Chiseled Polished Blackstone",
"block.minecraft.chiseled_quartz_block": "Chiseled Quartz Block", "block.minecraft.chiseled_quartz_block": "Chiseled Quartz Block",
"block.minecraft.chiseled_red_sandstone": "Chiseled Red Sandstone", "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_sandstone": "Chiseled Sandstone",
"block.minecraft.chiseled_stone_bricks": "Chiseled Stone Bricks", "block.minecraft.chiseled_stone_bricks": "Chiseled Stone Bricks",
"block.minecraft.chiseled_tuff": "Chiseled Tuff", "block.minecraft.chiseled_tuff": "Chiseled Tuff",
@ -1436,6 +1437,7 @@
"block.minecraft.chorus_flower": "Chorus Flower", "block.minecraft.chorus_flower": "Chorus Flower",
"block.minecraft.chorus_plant": "Chorus Plant", "block.minecraft.chorus_plant": "Chorus Plant",
"block.minecraft.clay": "Clay", "block.minecraft.clay": "Clay",
"block.minecraft.closed_eyeblossom": "Closed Eyeblossom",
"block.minecraft.coal_block": "Block of Coal", "block.minecraft.coal_block": "Block of Coal",
"block.minecraft.coal_ore": "Coal Ore", "block.minecraft.coal_ore": "Coal Ore",
"block.minecraft.coarse_dirt": "Coarse Dirt", "block.minecraft.coarse_dirt": "Coarse Dirt",
@ -1856,6 +1858,7 @@
"block.minecraft.obsidian": "Obsidian", "block.minecraft.obsidian": "Obsidian",
"block.minecraft.ochre_froglight": "Ochre Froglight", "block.minecraft.ochre_froglight": "Ochre Froglight",
"block.minecraft.ominous_banner": "Ominous Banner", "block.minecraft.ominous_banner": "Ominous Banner",
"block.minecraft.open_eyeblossom": "Open Eyeblossom",
"block.minecraft.orange_banner": "Orange Banner", "block.minecraft.orange_banner": "Orange Banner",
"block.minecraft.orange_bed": "Orange Bed", "block.minecraft.orange_bed": "Orange Bed",
"block.minecraft.orange_candle": "Orange Candle", "block.minecraft.orange_candle": "Orange Candle",
@ -1971,6 +1974,7 @@
"block.minecraft.potted_brown_mushroom": "Potted Brown Mushroom", "block.minecraft.potted_brown_mushroom": "Potted Brown Mushroom",
"block.minecraft.potted_cactus": "Potted Cactus", "block.minecraft.potted_cactus": "Potted Cactus",
"block.minecraft.potted_cherry_sapling": "Potted Cherry Sapling", "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_cornflower": "Potted Cornflower",
"block.minecraft.potted_crimson_fungus": "Potted Crimson Fungus", "block.minecraft.potted_crimson_fungus": "Potted Crimson Fungus",
"block.minecraft.potted_crimson_roots": "Potted Crimson Roots", "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_lily_of_the_valley": "Potted Lily of the Valley",
"block.minecraft.potted_mangrove_propagule": "Potted Mangrove Propagule", "block.minecraft.potted_mangrove_propagule": "Potted Mangrove Propagule",
"block.minecraft.potted_oak_sapling": "Potted Oak Sapling", "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_orange_tulip": "Potted Orange Tulip",
"block.minecraft.potted_oxeye_daisy": "Potted Oxeye Daisy", "block.minecraft.potted_oxeye_daisy": "Potted Oxeye Daisy",
"block.minecraft.potted_pale_oak_sapling": "Potted Pale Oak Sapling", "block.minecraft.potted_pale_oak_sapling": "Potted Pale Oak Sapling",
@ -2068,6 +2073,12 @@
"block.minecraft.reinforced_deepslate": "Reinforced Deepslate", "block.minecraft.reinforced_deepslate": "Reinforced Deepslate",
"block.minecraft.repeater": "Redstone Repeater", "block.minecraft.repeater": "Redstone Repeater",
"block.minecraft.repeating_command_block": "Repeating Command Block", "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.respawn_anchor": "Respawn Anchor",
"block.minecraft.rooted_dirt": "Rooted Dirt", "block.minecraft.rooted_dirt": "Rooted Dirt",
"block.minecraft.rose_bush": "Rose Bush", "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.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.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.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.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.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", "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_bundle": "Red Bundle",
"item.minecraft.red_dye": "Red Dye", "item.minecraft.red_dye": "Red Dye",
"item.minecraft.redstone": "Redstone Dust", "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": "Smithing Template",
"item.minecraft.rib_armor_trim_smithing_template.new": "Rib Armor Trim", "item.minecraft.rib_armor_trim_smithing_template.new": "Rib Armor Trim",
"item.minecraft.rotten_flesh": "Rotten Flesh", "item.minecraft.rotten_flesh": "Rotten Flesh",
@ -4569,6 +4583,9 @@
"item.modifiers.mainhand": "When in Main Hand:", "item.modifiers.mainhand": "When in Main Hand:",
"item.modifiers.offhand": "When in Off Hand:", "item.modifiers.offhand": "When in Off Hand:",
"item.nbt_tags": "NBT: %s tag(s)", "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", "item.unbreakable": "Unbreakable",
"itemGroup.buildingBlocks": "Building Blocks", "itemGroup.buildingBlocks": "Building Blocks",
"itemGroup.coloredBlocks": "Colored Blocks", "itemGroup.coloredBlocks": "Colored Blocks",
@ -5999,6 +6016,7 @@
"structure_block.size.z": "structure size z", "structure_block.size.z": "structure size z",
"structure_block.structure_name": "Structure Name", "structure_block.structure_name": "Structure Name",
"subtitles.ambient.cave": "Eerie noise", "subtitles.ambient.cave": "Eerie noise",
"subtitles.ambient.sound": "Eerie noise",
"subtitles.block.amethyst_block.chime": "Amethyst chimes", "subtitles.block.amethyst_block.chime": "Amethyst chimes",
"subtitles.block.amethyst_block.resonate": "Amethyst resonates", "subtitles.block.amethyst_block.resonate": "Amethyst resonates",
"subtitles.block.anvil.destroy": "Anvil destroyed", "subtitles.block.anvil.destroy": "Anvil destroyed",
@ -6050,7 +6068,7 @@
"subtitles.block.copper_trapdoor.open": "Trapdoor opens", "subtitles.block.copper_trapdoor.open": "Trapdoor opens",
"subtitles.block.crafter.craft": "Crafter crafts", "subtitles.block.crafter.craft": "Crafter crafts",
"subtitles.block.crafter.fail": "Crafter fails crafting", "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.idle": "Eerie noise",
"subtitles.block.creaking_heart.spawn": "Creaking Heart awakens", "subtitles.block.creaking_heart.spawn": "Creaking Heart awakens",
"subtitles.block.decorated_pot.insert": "Decorated Pot fills", "subtitles.block.decorated_pot.insert": "Decorated Pot fills",
@ -6062,12 +6080,16 @@
"subtitles.block.enchantment_table.use": "Enchanting Table used", "subtitles.block.enchantment_table.use": "Enchanting Table used",
"subtitles.block.end_portal_frame.fill": "Eye of Ender attaches", "subtitles.block.end_portal_frame.fill": "Eye of Ender attaches",
"subtitles.block.end_portal.spawn": "End Portal opens", "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.fence_gate.toggle": "Fence Gate creaks",
"subtitles.block.fire.ambient": "Fire crackles", "subtitles.block.fire.ambient": "Fire crackles",
"subtitles.block.fire.extinguish": "Fire extinguished", "subtitles.block.fire.extinguish": "Fire extinguished",
"subtitles.block.frogspawn.hatch": "Tadpole hatches", "subtitles.block.frogspawn.hatch": "Tadpole hatches",
"subtitles.block.furnace.fire_crackle": "Furnace crackles", "subtitles.block.furnace.fire_crackle": "Furnace crackles",
"subtitles.block.generic.break": "Block broken", "subtitles.block.generic.break": "Block broken",
"subtitles.block.generic.fall": "Something falls on a block",
"subtitles.block.generic.footsteps": "Footsteps", "subtitles.block.generic.footsteps": "Footsteps",
"subtitles.block.generic.hit": "Block breaking", "subtitles.block.generic.hit": "Block breaking",
"subtitles.block.generic.place": "Block placed", "subtitles.block.generic.place": "Block placed",
@ -6240,15 +6262,15 @@
"subtitles.entity.cow.death": "Cow dies", "subtitles.entity.cow.death": "Cow dies",
"subtitles.entity.cow.hurt": "Cow hurts", "subtitles.entity.cow.hurt": "Cow hurts",
"subtitles.entity.cow.milk": "Cow gets milked", "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.ambient": "Creaking creaks",
"subtitles.entity.creaking.angry": "Creaking sees player",
"subtitles.entity.creaking.attack": "Creaking attacks", "subtitles.entity.creaking.attack": "Creaking attacks",
"subtitles.entity.creaking.deactivate": "Creaking deactivates", "subtitles.entity.creaking.deactivate": "Creaking calms",
"subtitles.entity.creaking.death": "Creaking dies", "subtitles.entity.creaking.death": "Creaking crumbles",
"subtitles.entity.creaking.freeze": "Creaking stops", "subtitles.entity.creaking.freeze": "Creaking stops",
"subtitles.entity.creaking.spawn": "Creaking lives", "subtitles.entity.creaking.spawn": "Creaking manifests",
"subtitles.entity.creaking.sway": "Creaking is shielded", "subtitles.entity.creaking.sway": "Creaking is hit",
"subtitles.entity.creaking.twitch": "Creaking twitches",
"subtitles.entity.creaking.unfreeze": "Creaking moves", "subtitles.entity.creaking.unfreeze": "Creaking moves",
"subtitles.entity.creeper.death": "Creeper dies", "subtitles.entity.creeper.death": "Creeper dies",
"subtitles.entity.creeper.hurt": "Creeper hurts", "subtitles.entity.creeper.hurt": "Creeper hurts",
@ -6315,6 +6337,7 @@
"subtitles.entity.firework_rocket.blast": "Firework blasts", "subtitles.entity.firework_rocket.blast": "Firework blasts",
"subtitles.entity.firework_rocket.launch": "Firework launches", "subtitles.entity.firework_rocket.launch": "Firework launches",
"subtitles.entity.firework_rocket.twinkle": "Firework twinkles", "subtitles.entity.firework_rocket.twinkle": "Firework twinkles",
"subtitles.entity.fish.swim": "Splashes",
"subtitles.entity.fishing_bobber.retrieve": "Bobber retrieved", "subtitles.entity.fishing_bobber.retrieve": "Bobber retrieved",
"subtitles.entity.fishing_bobber.splash": "Fishing Bobber splashes", "subtitles.entity.fishing_bobber.splash": "Fishing Bobber splashes",
"subtitles.entity.fishing_bobber.throw": "Bobber thrown", "subtitles.entity.fishing_bobber.throw": "Bobber thrown",
@ -6434,6 +6457,8 @@
"subtitles.entity.magma_cube.death": "Magma Cube dies", "subtitles.entity.magma_cube.death": "Magma Cube dies",
"subtitles.entity.magma_cube.hurt": "Magma Cube hurts", "subtitles.entity.magma_cube.hurt": "Magma Cube hurts",
"subtitles.entity.magma_cube.squish": "Magma Cube squishes", "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.minecart.riding": "Minecart rolls",
"subtitles.entity.mooshroom.convert": "Mooshroom transforms", "subtitles.entity.mooshroom.convert": "Mooshroom transforms",
"subtitles.entity.mooshroom.eat": "Mooshroom eats", "subtitles.entity.mooshroom.eat": "Mooshroom eats",
@ -6590,6 +6615,7 @@
"subtitles.entity.skeleton_horse.ambient": "Skeleton Horse cries", "subtitles.entity.skeleton_horse.ambient": "Skeleton Horse cries",
"subtitles.entity.skeleton_horse.death": "Skeleton Horse dies", "subtitles.entity.skeleton_horse.death": "Skeleton Horse dies",
"subtitles.entity.skeleton_horse.hurt": "Skeleton Horse hurts", "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_horse.swim": "Skeleton Horse swims",
"subtitles.entity.skeleton.ambient": "Skeleton rattles", "subtitles.entity.skeleton.ambient": "Skeleton rattles",
"subtitles.entity.skeleton.converted_to_stray": "Skeleton converts to Stray", "subtitles.entity.skeleton.converted_to_stray": "Skeleton converts to Stray",
@ -6802,6 +6828,7 @@
"subtitles.item.crossbow.load": "Crossbow loads", "subtitles.item.crossbow.load": "Crossbow loads",
"subtitles.item.crossbow.shoot": "Crossbow fires", "subtitles.item.crossbow.shoot": "Crossbow fires",
"subtitles.item.dye.use": "Dye stains", "subtitles.item.dye.use": "Dye stains",
"subtitles.item.elytra.flying": "Swoosh",
"subtitles.item.firecharge.use": "Fireball whooshes", "subtitles.item.firecharge.use": "Fireball whooshes",
"subtitles.item.flintandsteel.use": "Flint and Steel click", "subtitles.item.flintandsteel.use": "Flint and Steel click",
"subtitles.item.glow_ink_sac.use": "Glow Ink Sac splotches", "subtitles.item.glow_ink_sac.use": "Glow Ink Sac splotches",
@ -6936,6 +6963,7 @@
"trim_material.minecraft.netherite": "Netherite Material", "trim_material.minecraft.netherite": "Netherite Material",
"trim_material.minecraft.quartz": "Quartz Material", "trim_material.minecraft.quartz": "Quartz Material",
"trim_material.minecraft.redstone": "Redstone Material", "trim_material.minecraft.redstone": "Redstone Material",
"trim_material.minecraft.resin": "Resin Material",
"trim_pattern.minecraft.bolt": "Bolt Armor Trim", "trim_pattern.minecraft.bolt": "Bolt Armor Trim",
"trim_pattern.minecraft.coast": "Coast Armor Trim", "trim_pattern.minecraft.coast": "Coast Armor Trim",
"trim_pattern.minecraft.dune": "Dune Armor Trim", "trim_pattern.minecraft.dune": "Dune Armor Trim",

View file

@ -4,7 +4,7 @@ edition = "2021"
license = "MIT" license = "MIT"
name = "azalea-physics" name = "azalea-physics"
repository = "https://github.com/azalea-rs/azalea/tree/main/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 # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html

File diff suppressed because it is too large Load diff

View file

@ -4,7 +4,7 @@ edition = "2021"
license = "MIT" license = "MIT"
name = "azalea-protocol" name = "azalea-protocol"
repository = "https://github.com/azalea-rs/azalea/tree/main/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 # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html

View file

@ -3,7 +3,7 @@ description = "Macros internally used in azalea-protocol."
edition = "2021" edition = "2021"
license = "MIT" license = "MIT"
name = "azalea-protocol-macros" 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" repository = "https://github.com/azalea-rs/azalea/tree/main/azalea-protocol/azalea-protocol-macros"
[lib] [lib]

View file

@ -5,6 +5,7 @@ use azalea_protocol_macros::ClientboundGamePacket;
#[derive(Clone, Debug, AzBuf, ClientboundGamePacket)] #[derive(Clone, Debug, AzBuf, ClientboundGamePacket)]
pub struct ClientboundLevelParticles { pub struct ClientboundLevelParticles {
pub override_limiter: bool, pub override_limiter: bool,
pub always_show: bool,
pub x: f64, pub x: f64,
pub y: f64, pub y: f64,
pub z: f64, pub z: f64,
@ -27,13 +28,14 @@ mod tests {
#[test] #[test]
fn test_c_level_particles_packet() { fn test_c_level_particles_packet() {
let slice = &[ 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, 64, 36, 19, 1, 192, 139, 224, 69, 64, 91, 192, 0, 0, 0, 0, 0, 63, 229, 66, 62,
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, 20, 132, 232, 141, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62, 25, 153, 154, 0, 0, 0, 70,
0, 0, 0, 0, 0, 63, 128, 0, 0, 1, 9,
][..]; ][..];
let mut bytes = Cursor::new(slice); 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); assert_eq!(bytes.position(), slice.len() as u64);
} }
} }

View file

@ -172,13 +172,15 @@ declare_state_packets!(GamePacket,
move_player_status_only, move_player_status_only,
move_vehicle, move_vehicle,
paddle_boat, paddle_boat,
pick_item, pick_item_from_block,
pick_item_from_entity,
ping_request, ping_request,
place_recipe, place_recipe,
player_abilities, player_abilities,
player_action, player_action,
player_command, player_command,
player_input, player_input,
player_loaded,
pong, pong,
recipe_book_change_settings, recipe_book_change_settings,
recipe_book_seen_recipe, recipe_book_seen_recipe,

View file

@ -2,7 +2,7 @@ use azalea_buf::AzBuf;
use azalea_protocol_macros::ServerboundGamePacket; use azalea_protocol_macros::ServerboundGamePacket;
#[derive(Clone, Debug, AzBuf, ServerboundGamePacket)] #[derive(Clone, Debug, AzBuf, ServerboundGamePacket)]
pub struct ServerboundPickItem { pub struct ServerboundPickItemFromBlock {
#[var] #[var]
pub slot: u32, pub slot: u32,
} }

View file

@ -11,8 +11,8 @@ use azalea_buf::{AzaleaReadVar, AzaleaWrite, AzaleaWriteVar, BufReadError};
use crate::read::ReadPacketError; use crate::read::ReadPacketError;
pub const PROTOCOL_VERSION: i32 = 768; pub const PROTOCOL_VERSION: i32 = 769;
pub const VERSION_NAME: &str = "1.21.3"; pub const VERSION_NAME: &str = "1.21.4";
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] #[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
pub enum ConnectionProtocol { pub enum ConnectionProtocol {

View file

@ -351,7 +351,7 @@ where
} }
if log::log_enabled!(log::Level::Trace) { 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 = { let buf_string: String = {
if !DO_NOT_CUT_OFF_PACKET_LOGS && buf.len() > 500 { if !DO_NOT_CUT_OFF_PACKET_LOGS && buf.len() > 500 {

View file

@ -4,7 +4,7 @@ edition = "2021"
license = "MIT" license = "MIT"
name = "azalea-registry" name = "azalea-registry"
repository = "https://github.com/azalea-rs/azalea/tree/main/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 # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html

View file

@ -4,7 +4,7 @@ edition = "2021"
license = "MIT" license = "MIT"
name = "azalea-registry-macros" name = "azalea-registry-macros"
repository = "https://github.com/azalea-rs/azalea/tree/main/azalea-registry/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] [lib]
proc-macro = true proc-macro = true

View file

@ -600,12 +600,19 @@ enum Block {
MelonStem => "minecraft:melon_stem", MelonStem => "minecraft:melon_stem",
Vine => "minecraft:vine", Vine => "minecraft:vine",
GlowLichen => "minecraft:glow_lichen", GlowLichen => "minecraft:glow_lichen",
ResinClump => "minecraft:resin_clump",
OakFenceGate => "minecraft:oak_fence_gate", OakFenceGate => "minecraft:oak_fence_gate",
BrickStairs => "minecraft:brick_stairs", BrickStairs => "minecraft:brick_stairs",
StoneBrickStairs => "minecraft:stone_brick_stairs", StoneBrickStairs => "minecraft:stone_brick_stairs",
MudBrickStairs => "minecraft:mud_brick_stairs", MudBrickStairs => "minecraft:mud_brick_stairs",
Mycelium => "minecraft:mycelium", Mycelium => "minecraft:mycelium",
LilyPad => "minecraft:lily_pad", 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", NetherBricks => "minecraft:nether_bricks",
NetherBrickFence => "minecraft:nether_brick_fence", NetherBrickFence => "minecraft:nether_brick_fence",
NetherBrickStairs => "minecraft:nether_brick_stairs", NetherBrickStairs => "minecraft:nether_brick_stairs",
@ -1351,6 +1358,10 @@ enum Block {
PaleMossBlock => "minecraft:pale_moss_block", PaleMossBlock => "minecraft:pale_moss_block",
PaleMossCarpet => "minecraft:pale_moss_carpet", PaleMossCarpet => "minecraft:pale_moss_carpet",
PaleHangingMoss => "minecraft:pale_hanging_moss", 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", CommandBlockMinecart => "minecraft:command_block_minecart",
Cow => "minecraft:cow", Cow => "minecraft:cow",
Creaking => "minecraft:creaking", Creaking => "minecraft:creaking",
CreakingTransient => "minecraft:creaking_transient",
Creeper => "minecraft:creeper", Creeper => "minecraft:creeper",
DarkOakBoat => "minecraft:dark_oak_boat", DarkOakBoat => "minecraft:dark_oak_boat",
DarkOakChestBoat => "minecraft:dark_oak_chest_boat", DarkOakChestBoat => "minecraft:dark_oak_chest_boat",
@ -2155,6 +2165,8 @@ enum Item {
RedWool => "minecraft:red_wool", RedWool => "minecraft:red_wool",
BlackWool => "minecraft:black_wool", BlackWool => "minecraft:black_wool",
Dandelion => "minecraft:dandelion", Dandelion => "minecraft:dandelion",
OpenEyeblossom => "minecraft:open_eyeblossom",
ClosedEyeblossom => "minecraft:closed_eyeblossom",
Poppy => "minecraft:poppy", Poppy => "minecraft:poppy",
BlueOrchid => "minecraft:blue_orchid", BlueOrchid => "minecraft:blue_orchid",
Allium => "minecraft:allium", Allium => "minecraft:allium",
@ -2303,6 +2315,13 @@ enum Item {
Melon => "minecraft:melon", Melon => "minecraft:melon",
Vine => "minecraft:vine", Vine => "minecraft:vine",
GlowLichen => "minecraft:glow_lichen", 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", BrickStairs => "minecraft:brick_stairs",
StoneBrickStairs => "minecraft:stone_brick_stairs", StoneBrickStairs => "minecraft:stone_brick_stairs",
MudBrickStairs => "minecraft:mud_brick_stairs", MudBrickStairs => "minecraft:mud_brick_stairs",
@ -3087,6 +3106,7 @@ enum Item {
FireworkStar => "minecraft:firework_star", FireworkStar => "minecraft:firework_star",
EnchantedBook => "minecraft:enchanted_book", EnchantedBook => "minecraft:enchanted_book",
NetherBrick => "minecraft:nether_brick", NetherBrick => "minecraft:nether_brick",
ResinBrick => "minecraft:resin_brick",
PrismarineShard => "minecraft:prismarine_shard", PrismarineShard => "minecraft:prismarine_shard",
PrismarineCrystals => "minecraft:prismarine_crystals", PrismarineCrystals => "minecraft:prismarine_crystals",
Rabbit => "minecraft:rabbit", Rabbit => "minecraft:rabbit",
@ -3669,6 +3689,7 @@ enum ParticleKind {
Flame => "minecraft:flame", Flame => "minecraft:flame",
Infested => "minecraft:infested", Infested => "minecraft:infested",
CherryLeaves => "minecraft:cherry_leaves", CherryLeaves => "minecraft:cherry_leaves",
PaleOakLeaves => "minecraft:pale_oak_leaves",
SculkSoul => "minecraft:sculk_soul", SculkSoul => "minecraft:sculk_soul",
SculkCharge => "minecraft:sculk_charge", SculkCharge => "minecraft:sculk_charge",
SculkChargePop => "minecraft:sculk_charge_pop", SculkChargePop => "minecraft:sculk_charge_pop",
@ -4316,6 +4337,7 @@ enum SoundEvent {
EntityCreakingUnfreeze => "minecraft:entity.creaking.unfreeze", EntityCreakingUnfreeze => "minecraft:entity.creaking.unfreeze",
EntityCreakingSpawn => "minecraft:entity.creaking.spawn", EntityCreakingSpawn => "minecraft:entity.creaking.spawn",
EntityCreakingSway => "minecraft:entity.creaking.sway", EntityCreakingSway => "minecraft:entity.creaking.sway",
EntityCreakingTwitch => "minecraft:entity.creaking.twitch",
BlockCreakingHeartBreak => "minecraft:block.creaking_heart.break", BlockCreakingHeartBreak => "minecraft:block.creaking_heart.break",
BlockCreakingHeartFall => "minecraft:block.creaking_heart.fall", BlockCreakingHeartFall => "minecraft:block.creaking_heart.fall",
BlockCreakingHeartHit => "minecraft:block.creaking_heart.hit", BlockCreakingHeartHit => "minecraft:block.creaking_heart.hit",
@ -4454,6 +4476,11 @@ enum SoundEvent {
EntityEvokerPrepareWololo => "minecraft:entity.evoker.prepare_wololo", EntityEvokerPrepareWololo => "minecraft:entity.evoker.prepare_wololo",
EntityExperienceBottleThrow => "minecraft:entity.experience_bottle.throw", EntityExperienceBottleThrow => "minecraft:entity.experience_bottle.throw",
EntityExperienceOrbPickup => "minecraft:entity.experience_orb.pickup", 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", BlockFenceGateClose => "minecraft:block.fence_gate.close",
BlockFenceGateOpen => "minecraft:block.fence_gate.open", BlockFenceGateOpen => "minecraft:block.fence_gate.open",
ItemFirechargeUse => "minecraft:item.firecharge.use", ItemFirechargeUse => "minecraft:item.firecharge.use",
@ -5254,6 +5281,15 @@ enum SoundEvent {
BlockSpawnerHit => "minecraft:block.spawner.hit", BlockSpawnerHit => "minecraft:block.spawner.hit",
BlockSpawnerPlace => "minecraft:block.spawner.place", BlockSpawnerPlace => "minecraft:block.spawner.place",
BlockSpawnerStep => "minecraft:block.spawner.step", 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", BlockSporeBlossomBreak => "minecraft:block.spore_blossom.break",
BlockSporeBlossomFall => "minecraft:block.spore_blossom.fall", BlockSporeBlossomFall => "minecraft:block.spore_blossom.fall",
BlockSporeBlossomHit => "minecraft:block.spore_blossom.hit", BlockSporeBlossomHit => "minecraft:block.spore_blossom.hit",
@ -6106,7 +6142,6 @@ enum BlockKind {
CaveVinesPlant => "minecraft:cave_vines_plant", CaveVinesPlant => "minecraft:cave_vines_plant",
CeilingHangingSign => "minecraft:ceiling_hanging_sign", CeilingHangingSign => "minecraft:ceiling_hanging_sign",
Chain => "minecraft:chain", Chain => "minecraft:chain",
CherryLeaves => "minecraft:cherry_leaves",
Chest => "minecraft:chest", Chest => "minecraft:chest",
ChiseledBookShelf => "minecraft:chiseled_book_shelf", ChiseledBookShelf => "minecraft:chiseled_book_shelf",
ChorusFlower => "minecraft:chorus_flower", ChorusFlower => "minecraft:chorus_flower",
@ -6144,6 +6179,7 @@ enum BlockKind {
EndPortal => "minecraft:end_portal", EndPortal => "minecraft:end_portal",
EndPortalFrame => "minecraft:end_portal_frame", EndPortalFrame => "minecraft:end_portal_frame",
EndRod => "minecraft:end_rod", EndRod => "minecraft:end_rod",
Eyeblossom => "minecraft:eyeblossom",
Farm => "minecraft:farm", Farm => "minecraft:farm",
BonemealableFeaturePlacer => "minecraft:bonemealable_feature_placer", BonemealableFeaturePlacer => "minecraft:bonemealable_feature_placer",
Fence => "minecraft:fence", Fence => "minecraft:fence",
@ -6195,6 +6231,7 @@ enum BlockKind {
MossyCarpet => "minecraft:mossy_carpet", MossyCarpet => "minecraft:mossy_carpet",
MovingPiston => "minecraft:moving_piston", MovingPiston => "minecraft:moving_piston",
Mud => "minecraft:mud", Mud => "minecraft:mud",
Multiface => "minecraft:multiface",
Mushroom => "minecraft:mushroom", Mushroom => "minecraft:mushroom",
Mycelium => "minecraft:mycelium", Mycelium => "minecraft:mycelium",
NetherPortal => "minecraft:nether_portal", NetherPortal => "minecraft:nether_portal",
@ -6205,6 +6242,7 @@ enum BlockKind {
Nylium => "minecraft:nylium", Nylium => "minecraft:nylium",
Observer => "minecraft:observer", Observer => "minecraft:observer",
Piglinwallskull => "minecraft:piglinwallskull", Piglinwallskull => "minecraft:piglinwallskull",
ParticleLeaves => "minecraft:particle_leaves",
PinkPetals => "minecraft:pink_petals", PinkPetals => "minecraft:pink_petals",
PistonBase => "minecraft:piston_base", PistonBase => "minecraft:piston_base",
PistonHead => "minecraft:piston_head", PistonHead => "minecraft:piston_head",

View file

@ -24,6 +24,7 @@ pub static ALL_HANGING_SIGNS: LazyLock<HashSet<Block>> = LazyLock::new(|| {
Block::CherryHangingSign, Block::CherryHangingSign,
Block::JungleHangingSign, Block::JungleHangingSign,
Block::DarkOakHangingSign, Block::DarkOakHangingSign,
Block::PaleOakHangingSign,
Block::CrimsonHangingSign, Block::CrimsonHangingSign,
Block::WarpedHangingSign, Block::WarpedHangingSign,
Block::MangroveHangingSign, Block::MangroveHangingSign,
@ -35,6 +36,7 @@ pub static ALL_HANGING_SIGNS: LazyLock<HashSet<Block>> = LazyLock::new(|| {
Block::CherryWallHangingSign, Block::CherryWallHangingSign,
Block::JungleWallHangingSign, Block::JungleWallHangingSign,
Block::DarkOakWallHangingSign, Block::DarkOakWallHangingSign,
Block::PaleOakWallHangingSign,
Block::CrimsonWallHangingSign, Block::CrimsonWallHangingSign,
Block::WarpedWallHangingSign, Block::WarpedWallHangingSign,
Block::MangroveWallHangingSign, Block::MangroveWallHangingSign,
@ -49,6 +51,7 @@ pub static ALL_SIGNS: LazyLock<HashSet<Block>> = LazyLock::new(|| {
Block::AcaciaSign, Block::AcaciaSign,
Block::JungleSign, Block::JungleSign,
Block::DarkOakSign, Block::DarkOakSign,
Block::PaleOakSign,
Block::CrimsonSign, Block::CrimsonSign,
Block::WarpedSign, Block::WarpedSign,
Block::MangroveSign, Block::MangroveSign,
@ -60,6 +63,7 @@ pub static ALL_SIGNS: LazyLock<HashSet<Block>> = LazyLock::new(|| {
Block::AcaciaWallSign, Block::AcaciaWallSign,
Block::JungleWallSign, Block::JungleWallSign,
Block::DarkOakWallSign, Block::DarkOakWallSign,
Block::PaleOakWallSign,
Block::CrimsonWallSign, Block::CrimsonWallSign,
Block::WarpedWallSign, Block::WarpedWallSign,
Block::MangroveWallSign, Block::MangroveWallSign,
@ -72,6 +76,7 @@ pub static ALL_SIGNS: LazyLock<HashSet<Block>> = LazyLock::new(|| {
Block::CherryHangingSign, Block::CherryHangingSign,
Block::JungleHangingSign, Block::JungleHangingSign,
Block::DarkOakHangingSign, Block::DarkOakHangingSign,
Block::PaleOakHangingSign,
Block::CrimsonHangingSign, Block::CrimsonHangingSign,
Block::WarpedHangingSign, Block::WarpedHangingSign,
Block::MangroveHangingSign, Block::MangroveHangingSign,
@ -83,6 +88,7 @@ pub static ALL_SIGNS: LazyLock<HashSet<Block>> = LazyLock::new(|| {
Block::CherryWallHangingSign, Block::CherryWallHangingSign,
Block::JungleWallHangingSign, Block::JungleWallHangingSign,
Block::DarkOakWallHangingSign, Block::DarkOakWallHangingSign,
Block::PaleOakWallHangingSign,
Block::CrimsonWallHangingSign, Block::CrimsonWallHangingSign,
Block::WarpedWallHangingSign, Block::WarpedWallHangingSign,
Block::MangroveWallHangingSign, Block::MangroveWallHangingSign,
@ -137,6 +143,7 @@ pub static AZALEA_GROWS_ON: LazyLock<HashSet<Block>> = LazyLock::new(|| {
Block::Mycelium, Block::Mycelium,
Block::RootedDirt, Block::RootedDirt,
Block::MossBlock, Block::MossBlock,
Block::PaleMossBlock,
Block::Mud, Block::Mud,
Block::MuddyMangroveRoots, Block::MuddyMangroveRoots,
Block::Sand, Block::Sand,
@ -183,6 +190,7 @@ pub static AZALEA_ROOT_REPLACEABLE: LazyLock<HashSet<Block>> = LazyLock::new(||
Block::Mycelium, Block::Mycelium,
Block::RootedDirt, Block::RootedDirt,
Block::MossBlock, Block::MossBlock,
Block::PaleMossBlock,
Block::Mud, Block::Mud,
Block::MuddyMangroveRoots, Block::MuddyMangroveRoots,
Block::Terracotta, Block::Terracotta,
@ -234,6 +242,7 @@ pub static BAMBOO_PLANTABLE_ON: LazyLock<HashSet<Block>> = LazyLock::new(|| {
Block::Mycelium, Block::Mycelium,
Block::RootedDirt, Block::RootedDirt,
Block::MossBlock, Block::MossBlock,
Block::PaleMossBlock,
Block::Mud, Block::Mud,
Block::MuddyMangroveRoots, Block::MuddyMangroveRoots,
]) ])
@ -325,6 +334,37 @@ pub static BEDS: LazyLock<HashSet<Block>> = LazyLock::new(|| {
Block::YellowBed, 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(|| { pub static BEE_GROWABLES: LazyLock<HashSet<Block>> = LazyLock::new(|| {
HashSet::from_iter(vec![ HashSet::from_iter(vec![
Block::SweetBerryBush, Block::SweetBerryBush,
@ -354,6 +394,7 @@ pub static BIG_DRIPLEAF_PLACEABLE: LazyLock<HashSet<Block>> = LazyLock::new(|| {
Block::Mycelium, Block::Mycelium,
Block::RootedDirt, Block::RootedDirt,
Block::MossBlock, Block::MossBlock,
Block::PaleMossBlock,
Block::Mud, Block::Mud,
Block::MuddyMangroveRoots, Block::MuddyMangroveRoots,
]) ])
@ -376,6 +417,7 @@ pub static BUTTONS: LazyLock<HashSet<Block>> = LazyLock::new(|| {
Block::JungleButton, Block::JungleButton,
Block::AcaciaButton, Block::AcaciaButton,
Block::DarkOakButton, Block::DarkOakButton,
Block::PaleOakButton,
Block::CrimsonButton, Block::CrimsonButton,
Block::WarpedButton, Block::WarpedButton,
Block::MangroveButton, Block::MangroveButton,
@ -472,6 +514,7 @@ pub static CEILING_HANGING_SIGNS: LazyLock<HashSet<Block>> = LazyLock::new(|| {
Block::CherryHangingSign, Block::CherryHangingSign,
Block::JungleHangingSign, Block::JungleHangingSign,
Block::DarkOakHangingSign, Block::DarkOakHangingSign,
Block::PaleOakHangingSign,
Block::CrimsonHangingSign, Block::CrimsonHangingSign,
Block::WarpedHangingSign, Block::WarpedHangingSign,
Block::MangroveHangingSign, Block::MangroveHangingSign,
@ -504,10 +547,12 @@ pub static COAL_ORES: LazyLock<HashSet<Block>> =
pub static COMBINATION_STEP_SOUND_BLOCKS: LazyLock<HashSet<Block>> = LazyLock::new(|| { pub static COMBINATION_STEP_SOUND_BLOCKS: LazyLock<HashSet<Block>> = LazyLock::new(|| {
HashSet::from_iter(vec![ HashSet::from_iter(vec![
Block::MossCarpet, Block::MossCarpet,
Block::PaleMossCarpet,
Block::Snow, Block::Snow,
Block::NetherSprouts, Block::NetherSprouts,
Block::WarpedRoots, Block::WarpedRoots,
Block::CrimsonRoots, Block::CrimsonRoots,
Block::ResinClump,
Block::WhiteCarpet, Block::WhiteCarpet,
Block::OrangeCarpet, Block::OrangeCarpet,
Block::MagentaCarpet, Block::MagentaCarpet,
@ -531,6 +576,7 @@ pub static COMPLETES_FIND_TREE_TUTORIAL: LazyLock<HashSet<Block>> = LazyLock::ne
Block::JungleLeaves, Block::JungleLeaves,
Block::OakLeaves, Block::OakLeaves,
Block::SpruceLeaves, Block::SpruceLeaves,
Block::PaleOakLeaves,
Block::DarkOakLeaves, Block::DarkOakLeaves,
Block::AcaciaLeaves, Block::AcaciaLeaves,
Block::BirchLeaves, Block::BirchLeaves,
@ -552,6 +598,10 @@ pub static COMPLETES_FIND_TREE_TUTORIAL: LazyLock<HashSet<Block>> = LazyLock::ne
Block::DarkOakWood, Block::DarkOakWood,
Block::StrippedDarkOakLog, Block::StrippedDarkOakLog,
Block::StrippedDarkOakWood, Block::StrippedDarkOakWood,
Block::PaleOakLog,
Block::PaleOakWood,
Block::StrippedPaleOakLog,
Block::StrippedPaleOakWood,
Block::OakLog, Block::OakLog,
Block::OakWood, Block::OakWood,
Block::StrippedOakLog, Block::StrippedOakLog,
@ -734,6 +784,7 @@ pub static DEAD_BUSH_MAY_PLACE_ON: LazyLock<HashSet<Block>> = LazyLock::new(|| {
Block::Mycelium, Block::Mycelium,
Block::RootedDirt, Block::RootedDirt,
Block::MossBlock, Block::MossBlock,
Block::PaleMossBlock,
Block::Mud, Block::Mud,
Block::MuddyMangroveRoots, Block::MuddyMangroveRoots,
]) ])
@ -751,6 +802,7 @@ pub static DIRT: LazyLock<HashSet<Block>> = LazyLock::new(|| {
Block::Mycelium, Block::Mycelium,
Block::RootedDirt, Block::RootedDirt,
Block::MossBlock, Block::MossBlock,
Block::PaleMossBlock,
Block::Mud, Block::Mud,
Block::MuddyMangroveRoots, Block::MuddyMangroveRoots,
]) ])
@ -774,6 +826,7 @@ pub static DOORS: LazyLock<HashSet<Block>> = LazyLock::new(|| {
Block::JungleDoor, Block::JungleDoor,
Block::AcaciaDoor, Block::AcaciaDoor,
Block::DarkOakDoor, Block::DarkOakDoor,
Block::PaleOakDoor,
Block::CrimsonDoor, Block::CrimsonDoor,
Block::WarpedDoor, Block::WarpedDoor,
Block::MangroveDoor, Block::MangroveDoor,
@ -833,6 +886,7 @@ pub static ENCHANTMENT_POWER_TRANSMITTER: LazyLock<HashSet<Block>> = LazyLock::n
Block::Snow, Block::Snow,
Block::Vine, Block::Vine,
Block::GlowLichen, Block::GlowLichen,
Block::ResinClump,
Block::Light, Block::Light,
Block::TallGrass, Block::TallGrass,
Block::LargeFern, Block::LargeFern,
@ -866,6 +920,7 @@ pub static ENDERMAN_HOLDABLE: LazyLock<HashSet<Block>> = LazyLock::new(|| {
Block::WarpedNylium, Block::WarpedNylium,
Block::WarpedRoots, Block::WarpedRoots,
Block::Dandelion, Block::Dandelion,
Block::OpenEyeblossom,
Block::Poppy, Block::Poppy,
Block::BlueOrchid, Block::BlueOrchid,
Block::Allium, Block::Allium,
@ -879,6 +934,7 @@ pub static ENDERMAN_HOLDABLE: LazyLock<HashSet<Block>> = LazyLock::new(|| {
Block::LilyOfTheValley, Block::LilyOfTheValley,
Block::WitherRose, Block::WitherRose,
Block::Torchflower, Block::Torchflower,
Block::ClosedEyeblossom,
Block::Dirt, Block::Dirt,
Block::GrassBlock, Block::GrassBlock,
Block::Podzol, Block::Podzol,
@ -886,6 +942,7 @@ pub static ENDERMAN_HOLDABLE: LazyLock<HashSet<Block>> = LazyLock::new(|| {
Block::Mycelium, Block::Mycelium,
Block::RootedDirt, Block::RootedDirt,
Block::MossBlock, Block::MossBlock,
Block::PaleMossBlock,
Block::Mud, Block::Mud,
Block::MuddyMangroveRoots, Block::MuddyMangroveRoots,
]) ])
@ -921,6 +978,7 @@ pub static FENCE_GATES: LazyLock<HashSet<Block>> = LazyLock::new(|| {
Block::AcaciaFenceGate, Block::AcaciaFenceGate,
Block::BirchFenceGate, Block::BirchFenceGate,
Block::DarkOakFenceGate, Block::DarkOakFenceGate,
Block::PaleOakFenceGate,
Block::JungleFenceGate, Block::JungleFenceGate,
Block::OakFenceGate, Block::OakFenceGate,
Block::SpruceFenceGate, Block::SpruceFenceGate,
@ -937,6 +995,7 @@ pub static FENCES: LazyLock<HashSet<Block>> = LazyLock::new(|| {
Block::OakFence, Block::OakFence,
Block::AcaciaFence, Block::AcaciaFence,
Block::DarkOakFence, Block::DarkOakFence,
Block::PaleOakFence,
Block::SpruceFence, Block::SpruceFence,
Block::BirchFence, Block::BirchFence,
Block::JungleFence, Block::JungleFence,
@ -952,6 +1011,8 @@ pub static FIRE: LazyLock<HashSet<Block>> =
pub static FLOWER_POTS: LazyLock<HashSet<Block>> = LazyLock::new(|| { pub static FLOWER_POTS: LazyLock<HashSet<Block>> = LazyLock::new(|| {
HashSet::from_iter(vec![ HashSet::from_iter(vec![
Block::FlowerPot, Block::FlowerPot,
Block::PottedOpenEyeblossom,
Block::PottedClosedEyeblossom,
Block::PottedPoppy, Block::PottedPoppy,
Block::PottedBlueOrchid, Block::PottedBlueOrchid,
Block::PottedAllium, Block::PottedAllium,
@ -968,6 +1029,7 @@ pub static FLOWER_POTS: LazyLock<HashSet<Block>> = LazyLock::new(|| {
Block::PottedJungleSapling, Block::PottedJungleSapling,
Block::PottedAcaciaSapling, Block::PottedAcaciaSapling,
Block::PottedDarkOakSapling, Block::PottedDarkOakSapling,
Block::PottedPaleOakSapling,
Block::PottedRedMushroom, Block::PottedRedMushroom,
Block::PottedBrownMushroom, Block::PottedBrownMushroom,
Block::PottedDeadBush, Block::PottedDeadBush,
@ -990,6 +1052,11 @@ pub static FLOWER_POTS: LazyLock<HashSet<Block>> = LazyLock::new(|| {
}); });
pub static FLOWERS: LazyLock<HashSet<Block>> = LazyLock::new(|| { pub static FLOWERS: LazyLock<HashSet<Block>> = LazyLock::new(|| {
HashSet::from_iter(vec![ HashSet::from_iter(vec![
Block::Sunflower,
Block::Lilac,
Block::Peony,
Block::RoseBush,
Block::PitcherPlant,
Block::FloweringAzaleaLeaves, Block::FloweringAzaleaLeaves,
Block::FloweringAzalea, Block::FloweringAzalea,
Block::MangrovePropagule, Block::MangrovePropagule,
@ -998,6 +1065,7 @@ pub static FLOWERS: LazyLock<HashSet<Block>> = LazyLock::new(|| {
Block::ChorusFlower, Block::ChorusFlower,
Block::SporeBlossom, Block::SporeBlossom,
Block::Dandelion, Block::Dandelion,
Block::OpenEyeblossom,
Block::Poppy, Block::Poppy,
Block::BlueOrchid, Block::BlueOrchid,
Block::Allium, Block::Allium,
@ -1011,11 +1079,7 @@ pub static FLOWERS: LazyLock<HashSet<Block>> = LazyLock::new(|| {
Block::LilyOfTheValley, Block::LilyOfTheValley,
Block::WitherRose, Block::WitherRose,
Block::Torchflower, Block::Torchflower,
Block::Sunflower, Block::ClosedEyeblossom,
Block::Lilac,
Block::Peony,
Block::RoseBush,
Block::PitcherPlant,
]) ])
}); });
pub static FOXES_SPAWNABLE_ON: LazyLock<HashSet<Block>> = LazyLock::new(|| { 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::WaxedExposedCopperTrapdoor,
Block::WaxedWeatheredCopperTrapdoor, Block::WaxedWeatheredCopperTrapdoor,
Block::WaxedOxidizedCopperTrapdoor, 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(|| { 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::WaxedExposedCopperTrapdoor,
Block::WaxedWeatheredCopperTrapdoor, Block::WaxedWeatheredCopperTrapdoor,
Block::WaxedOxidizedCopperTrapdoor, 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(|| { 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::JungleLeaves,
Block::OakLeaves, Block::OakLeaves,
Block::SpruceLeaves, Block::SpruceLeaves,
Block::PaleOakLeaves,
Block::DarkOakLeaves, Block::DarkOakLeaves,
Block::AcaciaLeaves, Block::AcaciaLeaves,
Block::BirchLeaves, Block::BirchLeaves,
@ -1439,6 +1488,10 @@ pub static LAVA_POOL_STONE_CANNOT_REPLACE: LazyLock<HashSet<Block>> = LazyLock::
Block::DarkOakWood, Block::DarkOakWood,
Block::StrippedDarkOakLog, Block::StrippedDarkOakLog,
Block::StrippedDarkOakWood, Block::StrippedDarkOakWood,
Block::PaleOakLog,
Block::PaleOakWood,
Block::StrippedPaleOakLog,
Block::StrippedPaleOakWood,
Block::OakLog, Block::OakLog,
Block::OakWood, Block::OakWood,
Block::StrippedOakLog, Block::StrippedOakLog,
@ -1474,6 +1527,7 @@ pub static LEAVES: LazyLock<HashSet<Block>> = LazyLock::new(|| {
Block::JungleLeaves, Block::JungleLeaves,
Block::OakLeaves, Block::OakLeaves,
Block::SpruceLeaves, Block::SpruceLeaves,
Block::PaleOakLeaves,
Block::DarkOakLeaves, Block::DarkOakLeaves,
Block::AcaciaLeaves, Block::AcaciaLeaves,
Block::BirchLeaves, Block::BirchLeaves,
@ -1497,6 +1551,10 @@ pub static LOGS: LazyLock<HashSet<Block>> = LazyLock::new(|| {
Block::DarkOakWood, Block::DarkOakWood,
Block::StrippedDarkOakLog, Block::StrippedDarkOakLog,
Block::StrippedDarkOakWood, Block::StrippedDarkOakWood,
Block::PaleOakLog,
Block::PaleOakWood,
Block::StrippedPaleOakLog,
Block::StrippedPaleOakWood,
Block::OakLog, Block::OakLog,
Block::OakWood, Block::OakWood,
Block::StrippedOakLog, Block::StrippedOakLog,
@ -1533,6 +1591,10 @@ pub static LOGS_THAT_BURN: LazyLock<HashSet<Block>> = LazyLock::new(|| {
Block::DarkOakWood, Block::DarkOakWood,
Block::StrippedDarkOakLog, Block::StrippedDarkOakLog,
Block::StrippedDarkOakWood, Block::StrippedDarkOakWood,
Block::PaleOakLog,
Block::PaleOakWood,
Block::StrippedPaleOakLog,
Block::StrippedPaleOakWood,
Block::OakLog, Block::OakLog,
Block::OakWood, Block::OakWood,
Block::StrippedOakLog, Block::StrippedOakLog,
@ -1583,6 +1645,7 @@ pub static LUSH_GROUND_REPLACEABLE: LazyLock<HashSet<Block>> = LazyLock::new(||
Block::Mycelium, Block::Mycelium,
Block::RootedDirt, Block::RootedDirt,
Block::MossBlock, Block::MossBlock,
Block::PaleMossBlock,
Block::Mud, Block::Mud,
Block::MuddyMangroveRoots, Block::MuddyMangroveRoots,
]) ])
@ -1706,6 +1769,7 @@ pub static MINEABLE_AXE: LazyLock<HashSet<Block>> = LazyLock::new(|| {
Block::BambooMosaicSlab, Block::BambooMosaicSlab,
Block::BambooMosaicStairs, Block::BambooMosaicStairs,
Block::ChiseledBookshelf, Block::ChiseledBookshelf,
Block::CreakingHeart,
Block::WhiteBanner, Block::WhiteBanner,
Block::OrangeBanner, Block::OrangeBanner,
Block::MagentaBanner, Block::MagentaBanner,
@ -1741,6 +1805,7 @@ pub static MINEABLE_AXE: LazyLock<HashSet<Block>> = LazyLock::new(|| {
Block::AcaciaFenceGate, Block::AcaciaFenceGate,
Block::BirchFenceGate, Block::BirchFenceGate,
Block::DarkOakFenceGate, Block::DarkOakFenceGate,
Block::PaleOakFenceGate,
Block::JungleFenceGate, Block::JungleFenceGate,
Block::OakFenceGate, Block::OakFenceGate,
Block::SpruceFenceGate, Block::SpruceFenceGate,
@ -1755,6 +1820,7 @@ pub static MINEABLE_AXE: LazyLock<HashSet<Block>> = LazyLock::new(|| {
Block::JunglePlanks, Block::JunglePlanks,
Block::AcaciaPlanks, Block::AcaciaPlanks,
Block::DarkOakPlanks, Block::DarkOakPlanks,
Block::PaleOakPlanks,
Block::CrimsonPlanks, Block::CrimsonPlanks,
Block::WarpedPlanks, Block::WarpedPlanks,
Block::MangrovePlanks, Block::MangrovePlanks,
@ -1766,6 +1832,7 @@ pub static MINEABLE_AXE: LazyLock<HashSet<Block>> = LazyLock::new(|| {
Block::JungleSapling, Block::JungleSapling,
Block::AcaciaSapling, Block::AcaciaSapling,
Block::DarkOakSapling, Block::DarkOakSapling,
Block::PaleOakSapling,
Block::Azalea, Block::Azalea,
Block::FloweringAzalea, Block::FloweringAzalea,
Block::MangrovePropagule, Block::MangrovePropagule,
@ -1776,6 +1843,7 @@ pub static MINEABLE_AXE: LazyLock<HashSet<Block>> = LazyLock::new(|| {
Block::JungleButton, Block::JungleButton,
Block::AcaciaButton, Block::AcaciaButton,
Block::DarkOakButton, Block::DarkOakButton,
Block::PaleOakButton,
Block::CrimsonButton, Block::CrimsonButton,
Block::WarpedButton, Block::WarpedButton,
Block::MangroveButton, Block::MangroveButton,
@ -1787,6 +1855,7 @@ pub static MINEABLE_AXE: LazyLock<HashSet<Block>> = LazyLock::new(|| {
Block::JungleDoor, Block::JungleDoor,
Block::AcaciaDoor, Block::AcaciaDoor,
Block::DarkOakDoor, Block::DarkOakDoor,
Block::PaleOakDoor,
Block::CrimsonDoor, Block::CrimsonDoor,
Block::WarpedDoor, Block::WarpedDoor,
Block::MangroveDoor, Block::MangroveDoor,
@ -1795,6 +1864,7 @@ pub static MINEABLE_AXE: LazyLock<HashSet<Block>> = LazyLock::new(|| {
Block::OakFence, Block::OakFence,
Block::AcaciaFence, Block::AcaciaFence,
Block::DarkOakFence, Block::DarkOakFence,
Block::PaleOakFence,
Block::SpruceFence, Block::SpruceFence,
Block::BirchFence, Block::BirchFence,
Block::JungleFence, Block::JungleFence,
@ -1809,6 +1879,7 @@ pub static MINEABLE_AXE: LazyLock<HashSet<Block>> = LazyLock::new(|| {
Block::JunglePressurePlate, Block::JunglePressurePlate,
Block::AcaciaPressurePlate, Block::AcaciaPressurePlate,
Block::DarkOakPressurePlate, Block::DarkOakPressurePlate,
Block::PaleOakPressurePlate,
Block::CrimsonPressurePlate, Block::CrimsonPressurePlate,
Block::WarpedPressurePlate, Block::WarpedPressurePlate,
Block::MangrovePressurePlate, Block::MangrovePressurePlate,
@ -1820,6 +1891,7 @@ pub static MINEABLE_AXE: LazyLock<HashSet<Block>> = LazyLock::new(|| {
Block::JungleSlab, Block::JungleSlab,
Block::AcaciaSlab, Block::AcaciaSlab,
Block::DarkOakSlab, Block::DarkOakSlab,
Block::PaleOakSlab,
Block::CrimsonSlab, Block::CrimsonSlab,
Block::WarpedSlab, Block::WarpedSlab,
Block::MangroveSlab, Block::MangroveSlab,
@ -1831,6 +1903,7 @@ pub static MINEABLE_AXE: LazyLock<HashSet<Block>> = LazyLock::new(|| {
Block::JungleStairs, Block::JungleStairs,
Block::AcaciaStairs, Block::AcaciaStairs,
Block::DarkOakStairs, Block::DarkOakStairs,
Block::PaleOakStairs,
Block::CrimsonStairs, Block::CrimsonStairs,
Block::WarpedStairs, Block::WarpedStairs,
Block::MangroveStairs, Block::MangroveStairs,
@ -1839,6 +1912,7 @@ pub static MINEABLE_AXE: LazyLock<HashSet<Block>> = LazyLock::new(|| {
Block::AcaciaTrapdoor, Block::AcaciaTrapdoor,
Block::BirchTrapdoor, Block::BirchTrapdoor,
Block::DarkOakTrapdoor, Block::DarkOakTrapdoor,
Block::PaleOakTrapdoor,
Block::JungleTrapdoor, Block::JungleTrapdoor,
Block::OakTrapdoor, Block::OakTrapdoor,
Block::SpruceTrapdoor, Block::SpruceTrapdoor,
@ -1863,6 +1937,7 @@ pub static MINEABLE_AXE: LazyLock<HashSet<Block>> = LazyLock::new(|| {
Block::AcaciaSign, Block::AcaciaSign,
Block::JungleSign, Block::JungleSign,
Block::DarkOakSign, Block::DarkOakSign,
Block::PaleOakSign,
Block::CrimsonSign, Block::CrimsonSign,
Block::WarpedSign, Block::WarpedSign,
Block::MangroveSign, Block::MangroveSign,
@ -1874,6 +1949,7 @@ pub static MINEABLE_AXE: LazyLock<HashSet<Block>> = LazyLock::new(|| {
Block::AcaciaWallSign, Block::AcaciaWallSign,
Block::JungleWallSign, Block::JungleWallSign,
Block::DarkOakWallSign, Block::DarkOakWallSign,
Block::PaleOakWallSign,
Block::CrimsonWallSign, Block::CrimsonWallSign,
Block::WarpedWallSign, Block::WarpedWallSign,
Block::MangroveWallSign, Block::MangroveWallSign,
@ -1886,6 +1962,7 @@ pub static MINEABLE_AXE: LazyLock<HashSet<Block>> = LazyLock::new(|| {
Block::CherryHangingSign, Block::CherryHangingSign,
Block::JungleHangingSign, Block::JungleHangingSign,
Block::DarkOakHangingSign, Block::DarkOakHangingSign,
Block::PaleOakHangingSign,
Block::CrimsonHangingSign, Block::CrimsonHangingSign,
Block::WarpedHangingSign, Block::WarpedHangingSign,
Block::MangroveHangingSign, Block::MangroveHangingSign,
@ -1897,6 +1974,7 @@ pub static MINEABLE_AXE: LazyLock<HashSet<Block>> = LazyLock::new(|| {
Block::CherryWallHangingSign, Block::CherryWallHangingSign,
Block::JungleWallHangingSign, Block::JungleWallHangingSign,
Block::DarkOakWallHangingSign, Block::DarkOakWallHangingSign,
Block::PaleOakWallHangingSign,
Block::CrimsonWallHangingSign, Block::CrimsonWallHangingSign,
Block::WarpedWallHangingSign, Block::WarpedWallHangingSign,
Block::MangroveWallHangingSign, Block::MangroveWallHangingSign,
@ -1905,6 +1983,10 @@ pub static MINEABLE_AXE: LazyLock<HashSet<Block>> = LazyLock::new(|| {
Block::DarkOakWood, Block::DarkOakWood,
Block::StrippedDarkOakLog, Block::StrippedDarkOakLog,
Block::StrippedDarkOakWood, Block::StrippedDarkOakWood,
Block::PaleOakLog,
Block::PaleOakWood,
Block::StrippedPaleOakLog,
Block::StrippedPaleOakWood,
Block::OakLog, Block::OakLog,
Block::OakWood, Block::OakWood,
Block::StrippedOakLog, Block::StrippedOakLog,
@ -1948,6 +2030,7 @@ pub static MINEABLE_HOE: LazyLock<HashSet<Block>> = LazyLock::new(|| {
Block::JungleLeaves, Block::JungleLeaves,
Block::OakLeaves, Block::OakLeaves,
Block::SpruceLeaves, Block::SpruceLeaves,
Block::PaleOakLeaves,
Block::DarkOakLeaves, Block::DarkOakLeaves,
Block::AcaciaLeaves, Block::AcaciaLeaves,
Block::BirchLeaves, Block::BirchLeaves,
@ -1958,6 +2041,8 @@ pub static MINEABLE_HOE: LazyLock<HashSet<Block>> = LazyLock::new(|| {
Block::CalibratedSculkSensor, Block::CalibratedSculkSensor,
Block::MossBlock, Block::MossBlock,
Block::MossCarpet, Block::MossCarpet,
Block::PaleMossBlock,
Block::PaleMossCarpet,
Block::Sculk, Block::Sculk,
Block::SculkCatalyst, Block::SculkCatalyst,
Block::SculkVein, Block::SculkVein,
@ -2346,6 +2431,11 @@ pub static MINEABLE_PICKAXE: LazyLock<HashSet<Block>> = LazyLock::new(|| {
Block::WaxedWeatheredCopperTrapdoor, Block::WaxedWeatheredCopperTrapdoor,
Block::WaxedOxidizedCopperTrapdoor, Block::WaxedOxidizedCopperTrapdoor,
Block::HeavyCore, Block::HeavyCore,
Block::ResinBricks,
Block::ResinBrickSlab,
Block::ResinBrickWall,
Block::ResinBrickStairs,
Block::ChiseledResinBricks,
Block::StoneButton, Block::StoneButton,
Block::PolishedBlackstoneButton, Block::PolishedBlackstoneButton,
Block::CobblestoneWall, Block::CobblestoneWall,
@ -2373,6 +2463,7 @@ pub static MINEABLE_PICKAXE: LazyLock<HashSet<Block>> = LazyLock::new(|| {
Block::TuffWall, Block::TuffWall,
Block::PolishedTuffWall, Block::PolishedTuffWall,
Block::TuffBrickWall, Block::TuffBrickWall,
Block::ResinBrickWall,
Block::ShulkerBox, Block::ShulkerBox,
Block::BlackShulkerBox, Block::BlackShulkerBox,
Block::BlueShulkerBox, Block::BlueShulkerBox,
@ -2459,6 +2550,7 @@ pub static MOB_INTERACTABLE_DOORS: LazyLock<HashSet<Block>> = LazyLock::new(|| {
Block::JungleDoor, Block::JungleDoor,
Block::AcaciaDoor, Block::AcaciaDoor,
Block::DarkOakDoor, Block::DarkOakDoor,
Block::PaleOakDoor,
Block::CrimsonDoor, Block::CrimsonDoor,
Block::WarpedDoor, Block::WarpedDoor,
Block::MangroveDoor, Block::MangroveDoor,
@ -2485,6 +2577,7 @@ pub static MOSS_REPLACEABLE: LazyLock<HashSet<Block>> = LazyLock::new(|| {
Block::Mycelium, Block::Mycelium,
Block::RootedDirt, Block::RootedDirt,
Block::MossBlock, Block::MossBlock,
Block::PaleMossBlock,
Block::Mud, Block::Mud,
Block::MuddyMangroveRoots, Block::MuddyMangroveRoots,
]) ])
@ -2600,14 +2693,6 @@ pub static NEEDS_STONE_TOOL: LazyLock<HashSet<Block>> = LazyLock::new(|| {
Block::WaxedExposedCopperTrapdoor, Block::WaxedExposedCopperTrapdoor,
Block::WaxedWeatheredCopperTrapdoor, Block::WaxedWeatheredCopperTrapdoor,
Block::WaxedOxidizedCopperTrapdoor, 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(|| { 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::Mycelium,
Block::RootedDirt, Block::RootedDirt,
Block::MossBlock, Block::MossBlock,
Block::PaleMossBlock,
Block::Mud, Block::Mud,
Block::MuddyMangroveRoots, Block::MuddyMangroveRoots,
Block::CrimsonNylium, Block::CrimsonNylium,
@ -2676,7 +2762,6 @@ pub static OVERWORLD_CARVER_REPLACEABLES: LazyLock<HashSet<Block>> = LazyLock::n
Block::Sandstone, Block::Sandstone,
Block::RedSandstone, Block::RedSandstone,
Block::Calcite, Block::Calcite,
Block::Snow,
Block::PackedIce, Block::PackedIce,
Block::RawIronBlock, Block::RawIronBlock,
Block::RawCopperBlock, Block::RawCopperBlock,
@ -2693,6 +2778,7 @@ pub static OVERWORLD_CARVER_REPLACEABLES: LazyLock<HashSet<Block>> = LazyLock::n
Block::Mycelium, Block::Mycelium,
Block::RootedDirt, Block::RootedDirt,
Block::MossBlock, Block::MossBlock,
Block::PaleMossBlock,
Block::Mud, Block::Mud,
Block::MuddyMangroveRoots, Block::MuddyMangroveRoots,
Block::Sand, Block::Sand,
@ -2720,6 +2806,9 @@ pub static OVERWORLD_CARVER_REPLACEABLES: LazyLock<HashSet<Block>> = LazyLock::n
Block::DeepslateIronOre, Block::DeepslateIronOre,
Block::CopperOre, Block::CopperOre,
Block::DeepslateCopperOre, Block::DeepslateCopperOre,
Block::Snow,
Block::SnowBlock,
Block::PowderSnow,
]) ])
}); });
pub static OVERWORLD_NATURAL_LOGS: LazyLock<HashSet<Block>> = LazyLock::new(|| { 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::JungleLog,
Block::SpruceLog, Block::SpruceLog,
Block::DarkOakLog, Block::DarkOakLog,
Block::PaleOakLog,
Block::MangroveLog, Block::MangroveLog,
Block::CherryLog, 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(|| { pub static PARROTS_SPAWNABLE_ON: LazyLock<HashSet<Block>> = LazyLock::new(|| {
HashSet::from_iter(vec![ HashSet::from_iter(vec![
Block::GrassBlock, Block::GrassBlock,
@ -2741,6 +2839,7 @@ pub static PARROTS_SPAWNABLE_ON: LazyLock<HashSet<Block>> = LazyLock::new(|| {
Block::JungleLeaves, Block::JungleLeaves,
Block::OakLeaves, Block::OakLeaves,
Block::SpruceLeaves, Block::SpruceLeaves,
Block::PaleOakLeaves,
Block::DarkOakLeaves, Block::DarkOakLeaves,
Block::AcaciaLeaves, Block::AcaciaLeaves,
Block::BirchLeaves, Block::BirchLeaves,
@ -2760,6 +2859,10 @@ pub static PARROTS_SPAWNABLE_ON: LazyLock<HashSet<Block>> = LazyLock::new(|| {
Block::DarkOakWood, Block::DarkOakWood,
Block::StrippedDarkOakLog, Block::StrippedDarkOakLog,
Block::StrippedDarkOakWood, Block::StrippedDarkOakWood,
Block::PaleOakLog,
Block::PaleOakWood,
Block::StrippedPaleOakLog,
Block::StrippedPaleOakWood,
Block::OakLog, Block::OakLog,
Block::OakWood, Block::OakWood,
Block::StrippedOakLog, Block::StrippedOakLog,
@ -2807,6 +2910,7 @@ pub static PLANKS: LazyLock<HashSet<Block>> = LazyLock::new(|| {
Block::JunglePlanks, Block::JunglePlanks,
Block::AcaciaPlanks, Block::AcaciaPlanks,
Block::DarkOakPlanks, Block::DarkOakPlanks,
Block::PaleOakPlanks,
Block::CrimsonPlanks, Block::CrimsonPlanks,
Block::WarpedPlanks, Block::WarpedPlanks,
Block::MangrovePlanks, Block::MangrovePlanks,
@ -2833,6 +2937,7 @@ pub static PRESSURE_PLATES: LazyLock<HashSet<Block>> = LazyLock::new(|| {
Block::JunglePressurePlate, Block::JunglePressurePlate,
Block::AcaciaPressurePlate, Block::AcaciaPressurePlate,
Block::DarkOakPressurePlate, Block::DarkOakPressurePlate,
Block::PaleOakPressurePlate,
Block::CrimsonPressurePlate, Block::CrimsonPressurePlate,
Block::WarpedPressurePlate, Block::WarpedPressurePlate,
Block::MangrovePressurePlate, Block::MangrovePressurePlate,
@ -2883,6 +2988,7 @@ pub static REPLACEABLE: LazyLock<HashSet<Block>> = LazyLock::new(|| {
Block::Snow, Block::Snow,
Block::Vine, Block::Vine,
Block::GlowLichen, Block::GlowLichen,
Block::ResinClump,
Block::Light, Block::Light,
Block::TallGrass, Block::TallGrass,
Block::LargeFern, Block::LargeFern,
@ -2898,6 +3004,7 @@ pub static REPLACEABLE: LazyLock<HashSet<Block>> = LazyLock::new(|| {
}); });
pub static REPLACEABLE_BY_TREES: LazyLock<HashSet<Block>> = LazyLock::new(|| { pub static REPLACEABLE_BY_TREES: LazyLock<HashSet<Block>> = LazyLock::new(|| {
HashSet::from_iter(vec![ HashSet::from_iter(vec![
Block::PaleMossCarpet,
Block::ShortGrass, Block::ShortGrass,
Block::Fern, Block::Fern,
Block::DeadBush, Block::DeadBush,
@ -2920,6 +3027,7 @@ pub static REPLACEABLE_BY_TREES: LazyLock<HashSet<Block>> = LazyLock::new(|| {
Block::JungleLeaves, Block::JungleLeaves,
Block::OakLeaves, Block::OakLeaves,
Block::SpruceLeaves, Block::SpruceLeaves,
Block::PaleOakLeaves,
Block::DarkOakLeaves, Block::DarkOakLeaves,
Block::AcaciaLeaves, Block::AcaciaLeaves,
Block::BirchLeaves, Block::BirchLeaves,
@ -2927,6 +3035,22 @@ pub static REPLACEABLE_BY_TREES: LazyLock<HashSet<Block>> = LazyLock::new(|| {
Block::FloweringAzaleaLeaves, Block::FloweringAzaleaLeaves,
Block::MangroveLeaves, Block::MangroveLeaves,
Block::CherryLeaves, 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(|| { pub static SAND: LazyLock<HashSet<Block>> = LazyLock::new(|| {
@ -2945,6 +3069,7 @@ pub static SAPLINGS: LazyLock<HashSet<Block>> = LazyLock::new(|| {
Block::JungleSapling, Block::JungleSapling,
Block::AcaciaSapling, Block::AcaciaSapling,
Block::DarkOakSapling, Block::DarkOakSapling,
Block::PaleOakSapling,
Block::Azalea, Block::Azalea,
Block::FloweringAzalea, Block::FloweringAzalea,
Block::MangrovePropagule, Block::MangrovePropagule,
@ -2978,6 +3103,7 @@ pub static SCULK_REPLACEABLE: LazyLock<HashSet<Block>> = LazyLock::new(|| {
Block::Mycelium, Block::Mycelium,
Block::RootedDirt, Block::RootedDirt,
Block::MossBlock, Block::MossBlock,
Block::PaleMossBlock,
Block::Mud, Block::Mud,
Block::MuddyMangroveRoots, Block::MuddyMangroveRoots,
Block::Terracotta, Block::Terracotta,
@ -3037,6 +3163,7 @@ pub static SCULK_REPLACEABLE_WORLD_GEN: LazyLock<HashSet<Block>> = LazyLock::new
Block::Mycelium, Block::Mycelium,
Block::RootedDirt, Block::RootedDirt,
Block::MossBlock, Block::MossBlock,
Block::PaleMossBlock,
Block::Mud, Block::Mud,
Block::MuddyMangroveRoots, Block::MuddyMangroveRoots,
Block::Terracotta, Block::Terracotta,
@ -3092,6 +3219,7 @@ pub static SIGNS: LazyLock<HashSet<Block>> = LazyLock::new(|| {
Block::AcaciaSign, Block::AcaciaSign,
Block::JungleSign, Block::JungleSign,
Block::DarkOakSign, Block::DarkOakSign,
Block::PaleOakSign,
Block::CrimsonSign, Block::CrimsonSign,
Block::WarpedSign, Block::WarpedSign,
Block::MangroveSign, Block::MangroveSign,
@ -3103,6 +3231,7 @@ pub static SIGNS: LazyLock<HashSet<Block>> = LazyLock::new(|| {
Block::AcaciaWallSign, Block::AcaciaWallSign,
Block::JungleWallSign, Block::JungleWallSign,
Block::DarkOakWallSign, Block::DarkOakWallSign,
Block::PaleOakWallSign,
Block::CrimsonWallSign, Block::CrimsonWallSign,
Block::WarpedWallSign, Block::WarpedWallSign,
Block::MangroveWallSign, Block::MangroveWallSign,
@ -3161,12 +3290,14 @@ pub static SLABS: LazyLock<HashSet<Block>> = LazyLock::new(|| {
Block::TuffSlab, Block::TuffSlab,
Block::PolishedTuffSlab, Block::PolishedTuffSlab,
Block::TuffBrickSlab, Block::TuffBrickSlab,
Block::ResinBrickSlab,
Block::OakSlab, Block::OakSlab,
Block::SpruceSlab, Block::SpruceSlab,
Block::BirchSlab, Block::BirchSlab,
Block::JungleSlab, Block::JungleSlab,
Block::AcaciaSlab, Block::AcaciaSlab,
Block::DarkOakSlab, Block::DarkOakSlab,
Block::PaleOakSlab,
Block::CrimsonSlab, Block::CrimsonSlab,
Block::WarpedSlab, Block::WarpedSlab,
Block::MangroveSlab, Block::MangroveSlab,
@ -3179,6 +3310,7 @@ pub static SMALL_DRIPLEAF_PLACEABLE: LazyLock<HashSet<Block>> =
pub static SMALL_FLOWERS: LazyLock<HashSet<Block>> = LazyLock::new(|| { pub static SMALL_FLOWERS: LazyLock<HashSet<Block>> = LazyLock::new(|| {
HashSet::from_iter(vec![ HashSet::from_iter(vec![
Block::Dandelion, Block::Dandelion,
Block::OpenEyeblossom,
Block::Poppy, Block::Poppy,
Block::BlueOrchid, Block::BlueOrchid,
Block::Allium, Block::Allium,
@ -3192,6 +3324,7 @@ pub static SMALL_FLOWERS: LazyLock<HashSet<Block>> = LazyLock::new(|| {
Block::LilyOfTheValley, Block::LilyOfTheValley,
Block::WitherRose, Block::WitherRose,
Block::Torchflower, Block::Torchflower,
Block::ClosedEyeblossom,
]) ])
}); });
pub static SMELTS_TO_GLASS: LazyLock<HashSet<Block>> = 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::JungleLog,
Block::SpruceLog, Block::SpruceLog,
Block::DarkOakLog, Block::DarkOakLog,
Block::PaleOakLog,
Block::MangroveLog, Block::MangroveLog,
Block::CherryLog, Block::CherryLog,
]) ])
@ -3222,6 +3356,7 @@ pub static SNIFFER_DIGGABLE_BLOCK: LazyLock<HashSet<Block>> = LazyLock::new(|| {
Block::CoarseDirt, Block::CoarseDirt,
Block::RootedDirt, Block::RootedDirt,
Block::MossBlock, Block::MossBlock,
Block::PaleMossBlock,
Block::Mud, Block::Mud,
Block::MuddyMangroveRoots, Block::MuddyMangroveRoots,
]) ])
@ -3293,12 +3428,14 @@ pub static STAIRS: LazyLock<HashSet<Block>> = LazyLock::new(|| {
Block::TuffStairs, Block::TuffStairs,
Block::PolishedTuffStairs, Block::PolishedTuffStairs,
Block::TuffBrickStairs, Block::TuffBrickStairs,
Block::ResinBrickStairs,
Block::OakStairs, Block::OakStairs,
Block::SpruceStairs, Block::SpruceStairs,
Block::BirchStairs, Block::BirchStairs,
Block::JungleStairs, Block::JungleStairs,
Block::AcaciaStairs, Block::AcaciaStairs,
Block::DarkOakStairs, Block::DarkOakStairs,
Block::PaleOakStairs,
Block::CrimsonStairs, Block::CrimsonStairs,
Block::WarpedStairs, Block::WarpedStairs,
Block::MangroveStairs, Block::MangroveStairs,
@ -3314,6 +3451,7 @@ pub static STANDING_SIGNS: LazyLock<HashSet<Block>> = LazyLock::new(|| {
Block::AcaciaSign, Block::AcaciaSign,
Block::JungleSign, Block::JungleSign,
Block::DarkOakSign, Block::DarkOakSign,
Block::PaleOakSign,
Block::CrimsonSign, Block::CrimsonSign,
Block::WarpedSign, Block::WarpedSign,
Block::MangroveSign, Block::MangroveSign,
@ -3378,7 +3516,6 @@ pub static SWORD_EFFICIENT: LazyLock<HashSet<Block>> = LazyLock::new(|| {
Block::CaveVines, Block::CaveVines,
Block::CaveVinesPlant, Block::CaveVinesPlant,
Block::SporeBlossom, Block::SporeBlossom,
Block::MossCarpet,
Block::PinkPetals, Block::PinkPetals,
Block::BigDripleaf, Block::BigDripleaf,
Block::BigDripleafStem, Block::BigDripleafStem,
@ -3398,6 +3535,7 @@ pub static SWORD_EFFICIENT: LazyLock<HashSet<Block>> = LazyLock::new(|| {
Block::JungleLeaves, Block::JungleLeaves,
Block::OakLeaves, Block::OakLeaves,
Block::SpruceLeaves, Block::SpruceLeaves,
Block::PaleOakLeaves,
Block::DarkOakLeaves, Block::DarkOakLeaves,
Block::AcaciaLeaves, Block::AcaciaLeaves,
Block::BirchLeaves, Block::BirchLeaves,
@ -3411,24 +3549,11 @@ pub static SWORD_EFFICIENT: LazyLock<HashSet<Block>> = LazyLock::new(|| {
Block::JungleSapling, Block::JungleSapling,
Block::AcaciaSapling, Block::AcaciaSapling,
Block::DarkOakSapling, Block::DarkOakSapling,
Block::PaleOakSapling,
Block::Azalea, Block::Azalea,
Block::FloweringAzalea, Block::FloweringAzalea,
Block::MangrovePropagule, Block::MangrovePropagule,
Block::CherrySapling, 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::Beetroots,
Block::Carrots, Block::Carrots,
Block::Potatoes, Block::Potatoes,
@ -3439,15 +3564,6 @@ pub static SWORD_EFFICIENT: LazyLock<HashSet<Block>> = LazyLock::new(|| {
Block::PitcherCrop, 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(|| { pub static TERRACOTTA: LazyLock<HashSet<Block>> = LazyLock::new(|| {
HashSet::from_iter(vec![ HashSet::from_iter(vec![
Block::Terracotta, Block::Terracotta,
@ -3485,6 +3601,7 @@ pub static TRAPDOORS: LazyLock<HashSet<Block>> = LazyLock::new(|| {
Block::AcaciaTrapdoor, Block::AcaciaTrapdoor,
Block::BirchTrapdoor, Block::BirchTrapdoor,
Block::DarkOakTrapdoor, Block::DarkOakTrapdoor,
Block::PaleOakTrapdoor,
Block::JungleTrapdoor, Block::JungleTrapdoor,
Block::OakTrapdoor, Block::OakTrapdoor,
Block::SpruceTrapdoor, Block::SpruceTrapdoor,
@ -3520,6 +3637,7 @@ pub static UNSTABLE_BOTTOM_CENTER: LazyLock<HashSet<Block>> = LazyLock::new(|| {
Block::AcaciaFenceGate, Block::AcaciaFenceGate,
Block::BirchFenceGate, Block::BirchFenceGate,
Block::DarkOakFenceGate, Block::DarkOakFenceGate,
Block::PaleOakFenceGate,
Block::JungleFenceGate, Block::JungleFenceGate,
Block::OakFenceGate, Block::OakFenceGate,
Block::SpruceFenceGate, Block::SpruceFenceGate,
@ -3552,6 +3670,7 @@ pub static WALL_HANGING_SIGNS: LazyLock<HashSet<Block>> = LazyLock::new(|| {
Block::CherryWallHangingSign, Block::CherryWallHangingSign,
Block::JungleWallHangingSign, Block::JungleWallHangingSign,
Block::DarkOakWallHangingSign, Block::DarkOakWallHangingSign,
Block::PaleOakWallHangingSign,
Block::CrimsonWallHangingSign, Block::CrimsonWallHangingSign,
Block::WarpedWallHangingSign, Block::WarpedWallHangingSign,
Block::MangroveWallHangingSign, Block::MangroveWallHangingSign,
@ -3604,6 +3723,7 @@ pub static WALL_POST_OVERRIDE: LazyLock<HashSet<Block>> = LazyLock::new(|| {
Block::AcaciaSign, Block::AcaciaSign,
Block::JungleSign, Block::JungleSign,
Block::DarkOakSign, Block::DarkOakSign,
Block::PaleOakSign,
Block::CrimsonSign, Block::CrimsonSign,
Block::WarpedSign, Block::WarpedSign,
Block::MangroveSign, Block::MangroveSign,
@ -3615,6 +3735,7 @@ pub static WALL_POST_OVERRIDE: LazyLock<HashSet<Block>> = LazyLock::new(|| {
Block::AcaciaWallSign, Block::AcaciaWallSign,
Block::JungleWallSign, Block::JungleWallSign,
Block::DarkOakWallSign, Block::DarkOakWallSign,
Block::PaleOakWallSign,
Block::CrimsonWallSign, Block::CrimsonWallSign,
Block::WarpedWallSign, Block::WarpedWallSign,
Block::MangroveWallSign, Block::MangroveWallSign,
@ -3626,6 +3747,7 @@ pub static WALL_POST_OVERRIDE: LazyLock<HashSet<Block>> = LazyLock::new(|| {
Block::JunglePressurePlate, Block::JunglePressurePlate,
Block::AcaciaPressurePlate, Block::AcaciaPressurePlate,
Block::DarkOakPressurePlate, Block::DarkOakPressurePlate,
Block::PaleOakPressurePlate,
Block::CrimsonPressurePlate, Block::CrimsonPressurePlate,
Block::WarpedPressurePlate, Block::WarpedPressurePlate,
Block::MangrovePressurePlate, Block::MangrovePressurePlate,
@ -3643,6 +3765,7 @@ pub static WALL_SIGNS: LazyLock<HashSet<Block>> = LazyLock::new(|| {
Block::AcaciaWallSign, Block::AcaciaWallSign,
Block::JungleWallSign, Block::JungleWallSign,
Block::DarkOakWallSign, Block::DarkOakWallSign,
Block::PaleOakWallSign,
Block::CrimsonWallSign, Block::CrimsonWallSign,
Block::WarpedWallSign, Block::WarpedWallSign,
Block::MangroveWallSign, Block::MangroveWallSign,
@ -3677,6 +3800,7 @@ pub static WALLS: LazyLock<HashSet<Block>> = LazyLock::new(|| {
Block::TuffWall, Block::TuffWall,
Block::PolishedTuffWall, Block::PolishedTuffWall,
Block::TuffBrickWall, Block::TuffBrickWall,
Block::ResinBrickWall,
]) ])
}); });
pub static WARPED_STEMS: LazyLock<HashSet<Block>> = LazyLock::new(|| { 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::JungleButton,
Block::AcaciaButton, Block::AcaciaButton,
Block::DarkOakButton, Block::DarkOakButton,
Block::PaleOakButton,
Block::CrimsonButton, Block::CrimsonButton,
Block::WarpedButton, Block::WarpedButton,
Block::MangroveButton, Block::MangroveButton,
@ -3740,6 +3865,7 @@ pub static WOODEN_DOORS: LazyLock<HashSet<Block>> = LazyLock::new(|| {
Block::JungleDoor, Block::JungleDoor,
Block::AcaciaDoor, Block::AcaciaDoor,
Block::DarkOakDoor, Block::DarkOakDoor,
Block::PaleOakDoor,
Block::CrimsonDoor, Block::CrimsonDoor,
Block::WarpedDoor, Block::WarpedDoor,
Block::MangroveDoor, Block::MangroveDoor,
@ -3752,6 +3878,7 @@ pub static WOODEN_FENCES: LazyLock<HashSet<Block>> = LazyLock::new(|| {
Block::OakFence, Block::OakFence,
Block::AcaciaFence, Block::AcaciaFence,
Block::DarkOakFence, Block::DarkOakFence,
Block::PaleOakFence,
Block::SpruceFence, Block::SpruceFence,
Block::BirchFence, Block::BirchFence,
Block::JungleFence, Block::JungleFence,
@ -3770,6 +3897,7 @@ pub static WOODEN_PRESSURE_PLATES: LazyLock<HashSet<Block>> = LazyLock::new(|| {
Block::JunglePressurePlate, Block::JunglePressurePlate,
Block::AcaciaPressurePlate, Block::AcaciaPressurePlate,
Block::DarkOakPressurePlate, Block::DarkOakPressurePlate,
Block::PaleOakPressurePlate,
Block::CrimsonPressurePlate, Block::CrimsonPressurePlate,
Block::WarpedPressurePlate, Block::WarpedPressurePlate,
Block::MangrovePressurePlate, Block::MangrovePressurePlate,
@ -3785,6 +3913,7 @@ pub static WOODEN_SLABS: LazyLock<HashSet<Block>> = LazyLock::new(|| {
Block::JungleSlab, Block::JungleSlab,
Block::AcaciaSlab, Block::AcaciaSlab,
Block::DarkOakSlab, Block::DarkOakSlab,
Block::PaleOakSlab,
Block::CrimsonSlab, Block::CrimsonSlab,
Block::WarpedSlab, Block::WarpedSlab,
Block::MangroveSlab, Block::MangroveSlab,
@ -3800,6 +3929,7 @@ pub static WOODEN_STAIRS: LazyLock<HashSet<Block>> = LazyLock::new(|| {
Block::JungleStairs, Block::JungleStairs,
Block::AcaciaStairs, Block::AcaciaStairs,
Block::DarkOakStairs, Block::DarkOakStairs,
Block::PaleOakStairs,
Block::CrimsonStairs, Block::CrimsonStairs,
Block::WarpedStairs, Block::WarpedStairs,
Block::MangroveStairs, Block::MangroveStairs,
@ -3812,6 +3942,7 @@ pub static WOODEN_TRAPDOORS: LazyLock<HashSet<Block>> = LazyLock::new(|| {
Block::AcaciaTrapdoor, Block::AcaciaTrapdoor,
Block::BirchTrapdoor, Block::BirchTrapdoor,
Block::DarkOakTrapdoor, Block::DarkOakTrapdoor,
Block::PaleOakTrapdoor,
Block::JungleTrapdoor, Block::JungleTrapdoor,
Block::OakTrapdoor, Block::OakTrapdoor,
Block::SpruceTrapdoor, Block::SpruceTrapdoor,

View file

@ -84,14 +84,8 @@ pub static BEDS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
}); });
pub static BEE_FOOD: LazyLock<HashSet<Item>> = LazyLock::new(|| { pub static BEE_FOOD: LazyLock<HashSet<Item>> = LazyLock::new(|| {
HashSet::from_iter(vec![ HashSet::from_iter(vec![
Item::FloweringAzaleaLeaves,
Item::FloweringAzalea,
Item::MangrovePropagule,
Item::CherryLeaves,
Item::PinkPetals,
Item::ChorusFlower,
Item::SporeBlossom,
Item::Dandelion, Item::Dandelion,
Item::OpenEyeblossom,
Item::Poppy, Item::Poppy,
Item::BlueOrchid, Item::BlueOrchid,
Item::Allium, Item::Allium,
@ -110,6 +104,13 @@ pub static BEE_FOOD: LazyLock<HashSet<Item>> = LazyLock::new(|| {
Item::Peony, Item::Peony,
Item::RoseBush, Item::RoseBush,
Item::PitcherPlant, 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(|| { pub static BIRCH_LOGS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
@ -128,6 +129,7 @@ pub static BOATS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
Item::JungleBoat, Item::JungleBoat,
Item::AcaciaBoat, Item::AcaciaBoat,
Item::DarkOakBoat, Item::DarkOakBoat,
Item::PaleOakBoat,
Item::MangroveBoat, Item::MangroveBoat,
Item::BambooRaft, Item::BambooRaft,
Item::CherryBoat, Item::CherryBoat,
@ -137,6 +139,7 @@ pub static BOATS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
Item::JungleChestBoat, Item::JungleChestBoat,
Item::AcaciaChestBoat, Item::AcaciaChestBoat,
Item::DarkOakChestBoat, Item::DarkOakChestBoat,
Item::PaleOakChestBoat,
Item::MangroveChestBoat, Item::MangroveChestBoat,
Item::BambooChestRaft, Item::BambooChestRaft,
Item::CherryChestBoat, Item::CherryChestBoat,
@ -218,6 +221,7 @@ pub static BUTTONS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
Item::JungleButton, Item::JungleButton,
Item::AcaciaButton, Item::AcaciaButton,
Item::DarkOakButton, Item::DarkOakButton,
Item::PaleOakButton,
Item::CrimsonButton, Item::CrimsonButton,
Item::WarpedButton, Item::WarpedButton,
Item::MangroveButton, Item::MangroveButton,
@ -278,6 +282,7 @@ pub static CHEST_BOATS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
Item::JungleChestBoat, Item::JungleChestBoat,
Item::AcaciaChestBoat, Item::AcaciaChestBoat,
Item::DarkOakChestBoat, Item::DarkOakChestBoat,
Item::PaleOakChestBoat,
Item::MangroveChestBoat, Item::MangroveChestBoat,
Item::BambooChestRaft, Item::BambooChestRaft,
Item::CherryChestBoat, Item::CherryChestBoat,
@ -314,6 +319,7 @@ pub static COMPLETES_FIND_TREE_TUTORIAL: LazyLock<HashSet<Item>> = LazyLock::new
Item::JungleLeaves, Item::JungleLeaves,
Item::OakLeaves, Item::OakLeaves,
Item::SpruceLeaves, Item::SpruceLeaves,
Item::PaleOakLeaves,
Item::DarkOakLeaves, Item::DarkOakLeaves,
Item::AcaciaLeaves, Item::AcaciaLeaves,
Item::BirchLeaves, Item::BirchLeaves,
@ -335,6 +341,10 @@ pub static COMPLETES_FIND_TREE_TUTORIAL: LazyLock<HashSet<Item>> = LazyLock::new
Item::DarkOakWood, Item::DarkOakWood,
Item::StrippedDarkOakLog, Item::StrippedDarkOakLog,
Item::StrippedDarkOakWood, Item::StrippedDarkOakWood,
Item::PaleOakLog,
Item::PaleOakWood,
Item::StrippedPaleOakLog,
Item::StrippedPaleOakWood,
Item::OakLog, Item::OakLog,
Item::OakWood, Item::OakWood,
Item::StrippedOakLog, Item::StrippedOakLog,
@ -507,6 +517,7 @@ pub static DIRT: LazyLock<HashSet<Item>> = LazyLock::new(|| {
Item::Mycelium, Item::Mycelium,
Item::RootedDirt, Item::RootedDirt,
Item::MossBlock, Item::MossBlock,
Item::PaleMossBlock,
Item::Mud, Item::Mud,
Item::MuddyMangroveRoots, Item::MuddyMangroveRoots,
]) ])
@ -528,6 +539,7 @@ pub static DOORS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
Item::JungleDoor, Item::JungleDoor,
Item::AcaciaDoor, Item::AcaciaDoor,
Item::DarkOakDoor, Item::DarkOakDoor,
Item::PaleOakDoor,
Item::CrimsonDoor, Item::CrimsonDoor,
Item::WarpedDoor, Item::WarpedDoor,
Item::MangroveDoor, Item::MangroveDoor,
@ -535,6 +547,8 @@ pub static DOORS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
Item::CherryDoor, 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>> = pub static DUPLICATES_ALLAYS: LazyLock<HashSet<Item>> =
LazyLock::new(|| HashSet::from_iter(vec![Item::AmethystShard])); LazyLock::new(|| HashSet::from_iter(vec![Item::AmethystShard]));
pub static DYEABLE: LazyLock<HashSet<Item>> = LazyLock::new(|| { pub static DYEABLE: LazyLock<HashSet<Item>> = LazyLock::new(|| {
@ -934,6 +948,7 @@ pub static FENCE_GATES: LazyLock<HashSet<Item>> = LazyLock::new(|| {
Item::AcaciaFenceGate, Item::AcaciaFenceGate,
Item::BirchFenceGate, Item::BirchFenceGate,
Item::DarkOakFenceGate, Item::DarkOakFenceGate,
Item::PaleOakFenceGate,
Item::JungleFenceGate, Item::JungleFenceGate,
Item::OakFenceGate, Item::OakFenceGate,
Item::SpruceFenceGate, Item::SpruceFenceGate,
@ -950,6 +965,7 @@ pub static FENCES: LazyLock<HashSet<Item>> = LazyLock::new(|| {
Item::OakFence, Item::OakFence,
Item::AcaciaFence, Item::AcaciaFence,
Item::DarkOakFence, Item::DarkOakFence,
Item::PaleOakFence,
Item::SpruceFence, Item::SpruceFence,
Item::BirchFence, Item::BirchFence,
Item::JungleFence, Item::JungleFence,
@ -970,36 +986,6 @@ pub static FISHES: LazyLock<HashSet<Item>> = LazyLock::new(|| {
Item::TropicalFish, 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(|| { pub static FOOT_ARMOR: LazyLock<HashSet<Item>> = LazyLock::new(|| {
HashSet::from_iter(vec![ HashSet::from_iter(vec![
Item::LeatherBoots, Item::LeatherBoots,
@ -1047,6 +1033,7 @@ pub static HANGING_SIGNS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
Item::CherryHangingSign, Item::CherryHangingSign,
Item::JungleHangingSign, Item::JungleHangingSign,
Item::DarkOakHangingSign, Item::DarkOakHangingSign,
Item::PaleOakHangingSign,
Item::CrimsonHangingSign, Item::CrimsonHangingSign,
Item::WarpedHangingSign, Item::WarpedHangingSign,
Item::MangroveHangingSign, Item::MangroveHangingSign,
@ -1115,6 +1102,7 @@ pub static LEAVES: LazyLock<HashSet<Item>> = LazyLock::new(|| {
Item::JungleLeaves, Item::JungleLeaves,
Item::OakLeaves, Item::OakLeaves,
Item::SpruceLeaves, Item::SpruceLeaves,
Item::PaleOakLeaves,
Item::DarkOakLeaves, Item::DarkOakLeaves,
Item::AcaciaLeaves, Item::AcaciaLeaves,
Item::BirchLeaves, Item::BirchLeaves,
@ -1154,6 +1142,10 @@ pub static LOGS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
Item::DarkOakWood, Item::DarkOakWood,
Item::StrippedDarkOakLog, Item::StrippedDarkOakLog,
Item::StrippedDarkOakWood, Item::StrippedDarkOakWood,
Item::PaleOakLog,
Item::PaleOakWood,
Item::StrippedPaleOakLog,
Item::StrippedPaleOakWood,
Item::OakLog, Item::OakLog,
Item::OakWood, Item::OakWood,
Item::StrippedOakLog, Item::StrippedOakLog,
@ -1190,6 +1182,10 @@ pub static LOGS_THAT_BURN: LazyLock<HashSet<Item>> = LazyLock::new(|| {
Item::DarkOakWood, Item::DarkOakWood,
Item::StrippedDarkOakLog, Item::StrippedDarkOakLog,
Item::StrippedDarkOakWood, Item::StrippedDarkOakWood,
Item::PaleOakLog,
Item::PaleOakWood,
Item::StrippedPaleOakLog,
Item::StrippedPaleOakWood,
Item::OakLog, Item::OakLog,
Item::OakWood, Item::OakWood,
Item::StrippedOakLog, Item::StrippedOakLog,
@ -1302,6 +1298,14 @@ pub static OAK_LOGS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
}); });
pub static OCELOT_FOOD: LazyLock<HashSet<Item>> = pub static OCELOT_FOOD: LazyLock<HashSet<Item>> =
LazyLock::new(|| HashSet::from_iter(vec![Item::Cod, Item::Salmon])); 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>> = pub static PANDA_EATS_FROM_GROUND: LazyLock<HashSet<Item>> =
LazyLock::new(|| HashSet::from_iter(vec![Item::Cake, Item::Bamboo])); LazyLock::new(|| HashSet::from_iter(vec![Item::Cake, Item::Bamboo]));
pub static PANDA_FOOD: LazyLock<HashSet<Item>> = pub static PANDA_FOOD: LazyLock<HashSet<Item>> =
@ -1361,6 +1365,8 @@ pub static PIGLIN_LOVED: LazyLock<HashSet<Item>> = LazyLock::new(|| {
Item::DeepslateGoldOre, 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(|| { pub static PIGLIN_REPELLENTS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
HashSet::from_iter(vec![Item::SoulTorch, Item::SoulLantern, Item::SoulCampfire]) 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, 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(|| { pub static PLANKS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
HashSet::from_iter(vec![ HashSet::from_iter(vec![
Item::OakPlanks, Item::OakPlanks,
@ -1380,6 +1388,7 @@ pub static PLANKS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
Item::JunglePlanks, Item::JunglePlanks,
Item::AcaciaPlanks, Item::AcaciaPlanks,
Item::DarkOakPlanks, Item::DarkOakPlanks,
Item::PaleOakPlanks,
Item::CrimsonPlanks, Item::CrimsonPlanks,
Item::WarpedPlanks, Item::WarpedPlanks,
Item::MangrovePlanks, Item::MangrovePlanks,
@ -1431,6 +1440,7 @@ pub static SAPLINGS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
Item::JungleSapling, Item::JungleSapling,
Item::AcaciaSapling, Item::AcaciaSapling,
Item::DarkOakSapling, Item::DarkOakSapling,
Item::PaleOakSapling,
Item::Azalea, Item::Azalea,
Item::FloweringAzalea, Item::FloweringAzalea,
Item::MangrovePropagule, Item::MangrovePropagule,
@ -1478,6 +1488,7 @@ pub static SIGNS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
Item::AcaciaSign, Item::AcaciaSign,
Item::JungleSign, Item::JungleSign,
Item::DarkOakSign, Item::DarkOakSign,
Item::PaleOakSign,
Item::CrimsonSign, Item::CrimsonSign,
Item::WarpedSign, Item::WarpedSign,
Item::MangroveSign, Item::MangroveSign,
@ -1485,6 +1496,8 @@ pub static SIGNS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
Item::CherrySign, 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(|| { pub static SKULLS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
HashSet::from_iter(vec![ HashSet::from_iter(vec![
Item::PlayerHead, Item::PlayerHead,
@ -1547,12 +1560,14 @@ pub static SLABS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
Item::TuffSlab, Item::TuffSlab,
Item::PolishedTuffSlab, Item::PolishedTuffSlab,
Item::TuffBrickSlab, Item::TuffBrickSlab,
Item::ResinBrickSlab,
Item::OakSlab, Item::OakSlab,
Item::SpruceSlab, Item::SpruceSlab,
Item::BirchSlab, Item::BirchSlab,
Item::JungleSlab, Item::JungleSlab,
Item::AcaciaSlab, Item::AcaciaSlab,
Item::DarkOakSlab, Item::DarkOakSlab,
Item::PaleOakSlab,
Item::CrimsonSlab, Item::CrimsonSlab,
Item::WarpedSlab, Item::WarpedSlab,
Item::MangroveSlab, Item::MangroveSlab,
@ -1563,6 +1578,7 @@ pub static SLABS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
pub static SMALL_FLOWERS: LazyLock<HashSet<Item>> = LazyLock::new(|| { pub static SMALL_FLOWERS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
HashSet::from_iter(vec![ HashSet::from_iter(vec![
Item::Dandelion, Item::Dandelion,
Item::OpenEyeblossom,
Item::Poppy, Item::Poppy,
Item::BlueOrchid, Item::BlueOrchid,
Item::Allium, Item::Allium,
@ -1576,6 +1592,7 @@ pub static SMALL_FLOWERS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
Item::LilyOfTheValley, Item::LilyOfTheValley,
Item::WitherRose, Item::WitherRose,
Item::Torchflower, Item::Torchflower,
Item::ClosedEyeblossom,
]) ])
}); });
pub static SMELTS_TO_GLASS: LazyLock<HashSet<Item>> = pub static SMELTS_TO_GLASS: LazyLock<HashSet<Item>> =
@ -1639,12 +1656,14 @@ pub static STAIRS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
Item::TuffStairs, Item::TuffStairs,
Item::PolishedTuffStairs, Item::PolishedTuffStairs,
Item::TuffBrickStairs, Item::TuffBrickStairs,
Item::ResinBrickStairs,
Item::OakStairs, Item::OakStairs,
Item::SpruceStairs, Item::SpruceStairs,
Item::BirchStairs, Item::BirchStairs,
Item::JungleStairs, Item::JungleStairs,
Item::AcaciaStairs, Item::AcaciaStairs,
Item::DarkOakStairs, Item::DarkOakStairs,
Item::PaleOakStairs,
Item::CrimsonStairs, Item::CrimsonStairs,
Item::WarpedStairs, Item::WarpedStairs,
Item::MangroveStairs, Item::MangroveStairs,
@ -1690,15 +1709,6 @@ pub static SWORDS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
Item::IronSword, 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(|| { pub static TERRACOTTA: LazyLock<HashSet<Item>> = LazyLock::new(|| {
HashSet::from_iter(vec![ HashSet::from_iter(vec![
Item::Terracotta, Item::Terracotta,
@ -1734,6 +1744,7 @@ pub static TRAPDOORS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
Item::AcaciaTrapdoor, Item::AcaciaTrapdoor,
Item::BirchTrapdoor, Item::BirchTrapdoor,
Item::DarkOakTrapdoor, Item::DarkOakTrapdoor,
Item::PaleOakTrapdoor,
Item::JungleTrapdoor, Item::JungleTrapdoor,
Item::OakTrapdoor, Item::OakTrapdoor,
Item::SpruceTrapdoor, Item::SpruceTrapdoor,
@ -1746,38 +1757,17 @@ pub static TRAPDOORS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
}); });
pub static TRIM_MATERIALS: LazyLock<HashSet<Item>> = LazyLock::new(|| { pub static TRIM_MATERIALS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
HashSet::from_iter(vec![ HashSet::from_iter(vec![
Item::IronIngot,
Item::CopperIngot,
Item::GoldIngot,
Item::LapisLazuli,
Item::Emerald,
Item::Diamond,
Item::NetheriteIngot,
Item::Redstone,
Item::Quartz,
Item::AmethystShard, Item::AmethystShard,
]) Item::CopperIngot,
}); Item::Diamond,
pub static TRIM_TEMPLATES: LazyLock<HashSet<Item>> = LazyLock::new(|| { Item::Emerald,
HashSet::from_iter(vec![ Item::GoldIngot,
Item::WardArmorTrimSmithingTemplate, Item::IronIngot,
Item::SpireArmorTrimSmithingTemplate, Item::LapisLazuli,
Item::CoastArmorTrimSmithingTemplate, Item::NetheriteIngot,
Item::EyeArmorTrimSmithingTemplate, Item::Quartz,
Item::DuneArmorTrimSmithingTemplate, Item::Redstone,
Item::WildArmorTrimSmithingTemplate, Item::ResinBrick,
Item::RibArmorTrimSmithingTemplate,
Item::TideArmorTrimSmithingTemplate,
Item::SentryArmorTrimSmithingTemplate,
Item::VexArmorTrimSmithingTemplate,
Item::SnoutArmorTrimSmithingTemplate,
Item::WayfinderArmorTrimSmithingTemplate,
Item::ShaperArmorTrimSmithingTemplate,
Item::SilenceArmorTrimSmithingTemplate,
Item::RaiserArmorTrimSmithingTemplate,
Item::HostArmorTrimSmithingTemplate,
Item::FlowArmorTrimSmithingTemplate,
Item::BoltArmorTrimSmithingTemplate,
]) ])
}); });
pub static TRIMMABLE_ARMOR: LazyLock<HashSet<Item>> = LazyLock::new(|| { pub static TRIMMABLE_ARMOR: LazyLock<HashSet<Item>> = LazyLock::new(|| {
@ -1861,6 +1851,7 @@ pub static WALLS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
Item::TuffWall, Item::TuffWall,
Item::PolishedTuffWall, Item::PolishedTuffWall,
Item::TuffBrickWall, Item::TuffBrickWall,
Item::ResinBrickWall,
]) ])
}); });
pub static WARPED_STEMS: LazyLock<HashSet<Item>> = LazyLock::new(|| { 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>> = pub static WART_BLOCKS: LazyLock<HashSet<Item>> =
LazyLock::new(|| HashSet::from_iter(vec![Item::NetherWartBlock, Item::WarpedWartBlock])); 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(|| { pub static WOLF_FOOD: LazyLock<HashSet<Item>> = LazyLock::new(|| {
HashSet::from_iter(vec![ HashSet::from_iter(vec![
Item::Cod, Item::Cod,
@ -1903,6 +1896,7 @@ pub static WOODEN_BUTTONS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
Item::JungleButton, Item::JungleButton,
Item::AcaciaButton, Item::AcaciaButton,
Item::DarkOakButton, Item::DarkOakButton,
Item::PaleOakButton,
Item::CrimsonButton, Item::CrimsonButton,
Item::WarpedButton, Item::WarpedButton,
Item::MangroveButton, Item::MangroveButton,
@ -1918,6 +1912,7 @@ pub static WOODEN_DOORS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
Item::JungleDoor, Item::JungleDoor,
Item::AcaciaDoor, Item::AcaciaDoor,
Item::DarkOakDoor, Item::DarkOakDoor,
Item::PaleOakDoor,
Item::CrimsonDoor, Item::CrimsonDoor,
Item::WarpedDoor, Item::WarpedDoor,
Item::MangroveDoor, Item::MangroveDoor,
@ -1930,6 +1925,7 @@ pub static WOODEN_FENCES: LazyLock<HashSet<Item>> = LazyLock::new(|| {
Item::OakFence, Item::OakFence,
Item::AcaciaFence, Item::AcaciaFence,
Item::DarkOakFence, Item::DarkOakFence,
Item::PaleOakFence,
Item::SpruceFence, Item::SpruceFence,
Item::BirchFence, Item::BirchFence,
Item::JungleFence, Item::JungleFence,
@ -1948,6 +1944,7 @@ pub static WOODEN_PRESSURE_PLATES: LazyLock<HashSet<Item>> = LazyLock::new(|| {
Item::JunglePressurePlate, Item::JunglePressurePlate,
Item::AcaciaPressurePlate, Item::AcaciaPressurePlate,
Item::DarkOakPressurePlate, Item::DarkOakPressurePlate,
Item::PaleOakPressurePlate,
Item::CrimsonPressurePlate, Item::CrimsonPressurePlate,
Item::WarpedPressurePlate, Item::WarpedPressurePlate,
Item::MangrovePressurePlate, Item::MangrovePressurePlate,
@ -1963,6 +1960,7 @@ pub static WOODEN_SLABS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
Item::JungleSlab, Item::JungleSlab,
Item::AcaciaSlab, Item::AcaciaSlab,
Item::DarkOakSlab, Item::DarkOakSlab,
Item::PaleOakSlab,
Item::CrimsonSlab, Item::CrimsonSlab,
Item::WarpedSlab, Item::WarpedSlab,
Item::MangroveSlab, Item::MangroveSlab,
@ -1978,6 +1976,7 @@ pub static WOODEN_STAIRS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
Item::JungleStairs, Item::JungleStairs,
Item::AcaciaStairs, Item::AcaciaStairs,
Item::DarkOakStairs, Item::DarkOakStairs,
Item::PaleOakStairs,
Item::CrimsonStairs, Item::CrimsonStairs,
Item::WarpedStairs, Item::WarpedStairs,
Item::MangroveStairs, Item::MangroveStairs,
@ -1993,6 +1992,7 @@ pub static WOODEN_TOOL_MATERIALS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
Item::JunglePlanks, Item::JunglePlanks,
Item::AcaciaPlanks, Item::AcaciaPlanks,
Item::DarkOakPlanks, Item::DarkOakPlanks,
Item::PaleOakPlanks,
Item::CrimsonPlanks, Item::CrimsonPlanks,
Item::WarpedPlanks, Item::WarpedPlanks,
Item::MangrovePlanks, Item::MangrovePlanks,
@ -2005,6 +2005,7 @@ pub static WOODEN_TRAPDOORS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
Item::AcaciaTrapdoor, Item::AcaciaTrapdoor,
Item::BirchTrapdoor, Item::BirchTrapdoor,
Item::DarkOakTrapdoor, Item::DarkOakTrapdoor,
Item::PaleOakTrapdoor,
Item::JungleTrapdoor, Item::JungleTrapdoor,
Item::OakTrapdoor, Item::OakTrapdoor,
Item::SpruceTrapdoor, Item::SpruceTrapdoor,

View file

@ -4,7 +4,7 @@ edition = "2021"
license = "MIT" license = "MIT"
name = "azalea-world" name = "azalea-world"
repository = "https://github.com/azalea-rs/azalea/tree/main/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 # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html

View file

@ -4,7 +4,7 @@ edition = "2021"
license = "MIT" license = "MIT"
name = "azalea" name = "azalea"
repository = "https://github.com/azalea-rs/azalea/tree/main/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] [package.metadata.release]
pre-release-replacements = [ pre-release-replacements = [