mirror of
https://github.com/mat-1/azalea.git
synced 2025-08-02 14:26:04 +00:00
Merge branch 'main' of https://github.com/azalea-rs/azalea into workspace-dependencies
This commit is contained in:
commit
f70dc84f33
22 changed files with 1032 additions and 751 deletions
42
Cargo.lock
generated
42
Cargo.lock
generated
|
@ -202,7 +202,7 @@ checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "azalea"
|
name = "azalea"
|
||||||
version = "0.10.3+mc1.21.3"
|
version = "0.10.3+mc1.21.4"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"anyhow",
|
"anyhow",
|
||||||
"azalea-auth",
|
"azalea-auth",
|
||||||
|
@ -241,7 +241,7 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "azalea-auth"
|
name = "azalea-auth"
|
||||||
version = "0.10.3+mc1.21.3"
|
version = "0.10.3+mc1.21.4"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"azalea-buf",
|
"azalea-buf",
|
||||||
"azalea-crypto",
|
"azalea-crypto",
|
||||||
|
@ -261,7 +261,7 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "azalea-block"
|
name = "azalea-block"
|
||||||
version = "0.10.3+mc1.21.3"
|
version = "0.10.3+mc1.21.4"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"azalea-block-macros",
|
"azalea-block-macros",
|
||||||
"azalea-buf",
|
"azalea-buf",
|
||||||
|
@ -270,7 +270,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"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"proc-macro2",
|
"proc-macro2",
|
||||||
"quote",
|
"quote",
|
||||||
|
@ -279,7 +279,7 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "azalea-brigadier"
|
name = "azalea-brigadier"
|
||||||
version = "0.10.3+mc1.21.3"
|
version = "0.10.3+mc1.21.4"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"azalea-buf",
|
"azalea-buf",
|
||||||
"azalea-chat",
|
"azalea-chat",
|
||||||
|
@ -290,7 +290,7 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "azalea-buf"
|
name = "azalea-buf"
|
||||||
version = "0.10.3+mc1.21.3"
|
version = "0.10.3+mc1.21.4"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"azalea-buf-macros",
|
"azalea-buf-macros",
|
||||||
"byteorder",
|
"byteorder",
|
||||||
|
@ -303,7 +303,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"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"proc-macro2",
|
"proc-macro2",
|
||||||
"quote",
|
"quote",
|
||||||
|
@ -312,7 +312,7 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "azalea-chat"
|
name = "azalea-chat"
|
||||||
version = "0.10.3+mc1.21.3"
|
version = "0.10.3+mc1.21.4"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"azalea-buf",
|
"azalea-buf",
|
||||||
"azalea-language",
|
"azalea-language",
|
||||||
|
@ -325,7 +325,7 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "azalea-client"
|
name = "azalea-client"
|
||||||
version = "0.10.3+mc1.21.3"
|
version = "0.10.3+mc1.21.4"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"anyhow",
|
"anyhow",
|
||||||
"azalea-auth",
|
"azalea-auth",
|
||||||
|
@ -359,7 +359,7 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "azalea-core"
|
name = "azalea-core"
|
||||||
version = "0.10.3+mc1.21.3"
|
version = "0.10.3+mc1.21.4"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"azalea-buf",
|
"azalea-buf",
|
||||||
"azalea-registry",
|
"azalea-registry",
|
||||||
|
@ -373,7 +373,7 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "azalea-crypto"
|
name = "azalea-crypto"
|
||||||
version = "0.10.3+mc1.21.3"
|
version = "0.10.3+mc1.21.4"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"aes",
|
"aes",
|
||||||
"azalea-buf",
|
"azalea-buf",
|
||||||
|
@ -390,7 +390,7 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "azalea-entity"
|
name = "azalea-entity"
|
||||||
version = "0.10.3+mc1.21.3"
|
version = "0.10.3+mc1.21.4"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"azalea-block",
|
"azalea-block",
|
||||||
"azalea-buf",
|
"azalea-buf",
|
||||||
|
@ -413,7 +413,7 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "azalea-inventory"
|
name = "azalea-inventory"
|
||||||
version = "0.10.3+mc1.21.3"
|
version = "0.10.3+mc1.21.4"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"azalea-buf",
|
"azalea-buf",
|
||||||
"azalea-chat",
|
"azalea-chat",
|
||||||
|
@ -426,7 +426,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"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"proc-macro2",
|
"proc-macro2",
|
||||||
"quote",
|
"quote",
|
||||||
|
@ -435,7 +435,7 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "azalea-language"
|
name = "azalea-language"
|
||||||
version = "0.10.3+mc1.21.3"
|
version = "0.10.3+mc1.21.4"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"serde",
|
"serde",
|
||||||
"serde_json",
|
"serde_json",
|
||||||
|
@ -443,7 +443,7 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "azalea-physics"
|
name = "azalea-physics"
|
||||||
version = "0.10.3+mc1.21.3"
|
version = "0.10.3+mc1.21.4"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"azalea-block",
|
"azalea-block",
|
||||||
"azalea-core",
|
"azalea-core",
|
||||||
|
@ -460,7 +460,7 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "azalea-protocol"
|
name = "azalea-protocol"
|
||||||
version = "0.10.3+mc1.21.3"
|
version = "0.10.3+mc1.21.4"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"anyhow",
|
"anyhow",
|
||||||
"async-recursion",
|
"async-recursion",
|
||||||
|
@ -497,7 +497,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"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"proc-macro2",
|
"proc-macro2",
|
||||||
"quote",
|
"quote",
|
||||||
|
@ -506,7 +506,7 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "azalea-registry"
|
name = "azalea-registry"
|
||||||
version = "0.10.3+mc1.21.3"
|
version = "0.10.3+mc1.21.4"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"azalea-buf",
|
"azalea-buf",
|
||||||
"azalea-registry-macros",
|
"azalea-registry-macros",
|
||||||
|
@ -516,7 +516,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"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"quote",
|
"quote",
|
||||||
"syn",
|
"syn",
|
||||||
|
@ -524,7 +524,7 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "azalea-world"
|
name = "azalea-world"
|
||||||
version = "0.10.3+mc1.21.3"
|
version = "0.10.3+mc1.21.4"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"azalea-block",
|
"azalea-block",
|
||||||
"azalea-buf",
|
"azalea-buf",
|
||||||
|
|
|
@ -22,7 +22,7 @@ resolver = "2"
|
||||||
# --- Workspace Settings ---
|
# --- Workspace Settings ---
|
||||||
|
|
||||||
[workspace.package]
|
[workspace.package]
|
||||||
version = "0.10.3+mc1.21.3"
|
version = "0.10.3+mc1.21.4"
|
||||||
edition = "2021"
|
edition = "2021"
|
||||||
license = "MIT"
|
license = "MIT"
|
||||||
repository = "https://github.com/azalea-rs/azalea"
|
repository = "https://github.com/azalea-rs/azalea"
|
||||||
|
|
|
@ -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
|
||||||
|
@ -55,6 +55,7 @@ There are several branches in the Azalea repository that target older Minecraft
|
||||||
Most of them are severely outdated compared to the latest version of Azalea.
|
Most of them are severely outdated compared to the latest version of Azalea.
|
||||||
If you'd like to update them or add more, please open a PR.
|
If you'd like to update them or add more, please open a PR.
|
||||||
|
|
||||||
|
- [1.21.2-1.21.3](https://github.com/azalea-rs/azalea/tree/1.21.3)
|
||||||
- [1.21-1.21.1](https://github.com/azalea-rs/azalea/tree/1.21.1)
|
- [1.21-1.21.1](https://github.com/azalea-rs/azalea/tree/1.21.1)
|
||||||
- [1.20.5-1.20.6](https://github.com/azalea-rs/azalea/tree/1.20.6)
|
- [1.20.5-1.20.6](https://github.com/azalea-rs/azalea/tree/1.20.6)
|
||||||
- [1.20.4](https://github.com/azalea-rs/azalea/tree/1.20.4)
|
- [1.20.4](https://github.com/azalea-rs/azalea/tree/1.20.4)
|
||||||
|
|
|
@ -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(), {},
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -136,6 +136,7 @@ pub fn handle_block_interact_event(
|
||||||
direction: hit_result.direction,
|
direction: hit_result.direction,
|
||||||
location: hit_result.location,
|
location: hit_result.location,
|
||||||
inside: hit_result.inside,
|
inside: hit_result.inside,
|
||||||
|
world_border: hit_result.world_border,
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
// we're not looking at the block, so make up some numbers
|
// we're not looking at the block, so make up some numbers
|
||||||
|
@ -144,6 +145,7 @@ pub fn handle_block_interact_event(
|
||||||
direction: Direction::Up,
|
direction: Direction::Up,
|
||||||
location: event.position.center(),
|
location: event.position.center(),
|
||||||
inside: false,
|
inside: false,
|
||||||
|
world_border: false,
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -260,6 +260,7 @@ impl AABB {
|
||||||
block_pos: *pos,
|
block_pos: *pos,
|
||||||
inside: false,
|
inside: false,
|
||||||
miss: false,
|
miss: false,
|
||||||
|
world_border: false,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -10,6 +10,7 @@ pub struct BlockHitResult {
|
||||||
pub block_pos: BlockPos,
|
pub block_pos: BlockPos,
|
||||||
pub miss: bool,
|
pub miss: bool,
|
||||||
pub inside: bool,
|
pub inside: bool,
|
||||||
|
pub world_border: bool,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl BlockHitResult {
|
impl BlockHitResult {
|
||||||
|
@ -20,6 +21,7 @@ impl BlockHitResult {
|
||||||
block_pos,
|
block_pos,
|
||||||
miss: true,
|
miss: true,
|
||||||
inside: false,
|
inside: false,
|
||||||
|
world_border: false,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -3,6 +3,7 @@
|
||||||
//! The most common ones are [`Vec3`] and [`BlockPos`], which are usually used
|
//! The most common ones are [`Vec3`] and [`BlockPos`], which are usually used
|
||||||
//! for entity positions and block positions, respectively.
|
//! for entity positions and block positions, respectively.
|
||||||
|
|
||||||
|
use std::str::FromStr;
|
||||||
use std::{
|
use std::{
|
||||||
fmt,
|
fmt,
|
||||||
hash::Hash,
|
hash::Hash,
|
||||||
|
@ -682,6 +683,51 @@ impl AzaleaWrite for ChunkSectionPos {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn parse_three_values<T>(s: &str) -> Result<[T; 3], &'static str>
|
||||||
|
where
|
||||||
|
T: FromStr,
|
||||||
|
<T as FromStr>::Err: fmt::Debug,
|
||||||
|
{
|
||||||
|
let parts = s.split_whitespace().collect::<Vec<_>>();
|
||||||
|
if parts.len() != 3 {
|
||||||
|
return Err("Expected three values");
|
||||||
|
}
|
||||||
|
|
||||||
|
let x = parts[0].parse().map_err(|_| "Invalid X value")?;
|
||||||
|
let y = parts[1].parse().map_err(|_| "Invalid Y value")?;
|
||||||
|
let z = parts[2].parse().map_err(|_| "Invalid Z value")?;
|
||||||
|
|
||||||
|
Ok([x, y, z])
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Parses a string in the format "X Y Z" into a BlockPos.
|
||||||
|
///
|
||||||
|
/// The input string should contain three integer values separated by spaces,
|
||||||
|
/// representing the x, y, and z components of the vector respectively.
|
||||||
|
/// This can be used to parse user input or from `BlockPos::to_string`.
|
||||||
|
impl FromStr for BlockPos {
|
||||||
|
type Err = &'static str;
|
||||||
|
|
||||||
|
fn from_str(s: &str) -> Result<Self, Self::Err> {
|
||||||
|
let [x, y, z] = parse_three_values::<i32>(s)?;
|
||||||
|
Ok(BlockPos { x, y, z })
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Parses a string in the format "X Y Z" into a Vec3.
|
||||||
|
///
|
||||||
|
/// The input string should contain three floating-point values separated by
|
||||||
|
/// spaces, representing the x, y, and z components of the vector respectively.
|
||||||
|
/// This can be used to parse user input or from `Vec3::to_string`.
|
||||||
|
impl FromStr for Vec3 {
|
||||||
|
type Err = &'static str;
|
||||||
|
|
||||||
|
fn from_str(s: &str) -> Result<Self, Self::Err> {
|
||||||
|
let [x, y, z] = parse_three_values::<f64>(s)?;
|
||||||
|
Ok(Vec3 { x, y, z })
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
#[cfg(test)]
|
#[cfg(test)]
|
||||||
mod tests {
|
mod tests {
|
||||||
use super::*;
|
use super::*;
|
||||||
|
|
|
@ -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());
|
||||||
}
|
}
|
||||||
|
|
|
@ -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,
|
||||||
|
|
|
@ -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",
|
||||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -439,6 +439,7 @@ impl VoxelShape {
|
||||||
location: right_after_start,
|
location: right_after_start,
|
||||||
inside: true,
|
inside: true,
|
||||||
miss: false,
|
miss: false,
|
||||||
|
world_border: false,
|
||||||
})
|
})
|
||||||
} else {
|
} else {
|
||||||
AABB::clip_iterable(&self.to_aabbs(), from, to, block_pos)
|
AABB::clip_iterable(&self.to_aabbs(), from, to, block_pos)
|
||||||
|
|
|
@ -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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -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,
|
||||||
|
|
|
@ -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,
|
||||||
}
|
}
|
|
@ -27,8 +27,10 @@ pub struct BlockHit {
|
||||||
/// network, this is transmitted as the difference between the location and
|
/// network, this is transmitted as the difference between the location and
|
||||||
/// block position.
|
/// block position.
|
||||||
pub location: Vec3,
|
pub location: Vec3,
|
||||||
/// Whether the player's head is inside of a block.
|
/// Whether the player's head is inside a block.
|
||||||
pub inside: bool,
|
pub inside: bool,
|
||||||
|
/// Whether the player's hitting the world border.
|
||||||
|
pub world_border: bool,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl AzaleaWrite for BlockHit {
|
impl AzaleaWrite for BlockHit {
|
||||||
|
@ -48,6 +50,7 @@ impl AzaleaWrite for BlockHit {
|
||||||
buf,
|
buf,
|
||||||
)?;
|
)?;
|
||||||
self.inside.azalea_write(buf)?;
|
self.inside.azalea_write(buf)?;
|
||||||
|
self.world_border.azalea_write(buf)?;
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -60,6 +63,7 @@ impl AzaleaRead for BlockHit {
|
||||||
let cursor_y = f32::azalea_read(buf)?;
|
let cursor_y = f32::azalea_read(buf)?;
|
||||||
let cursor_z = f32::azalea_read(buf)?;
|
let cursor_z = f32::azalea_read(buf)?;
|
||||||
let inside = bool::azalea_read(buf)?;
|
let inside = bool::azalea_read(buf)?;
|
||||||
|
let world_border = bool::azalea_read(buf)?;
|
||||||
Ok(Self {
|
Ok(Self {
|
||||||
block_pos,
|
block_pos,
|
||||||
direction,
|
direction,
|
||||||
|
@ -69,6 +73,7 @@ impl AzaleaRead for BlockHit {
|
||||||
z: f64::from(block_pos.z) + f64::from(cursor_z),
|
z: f64::from(block_pos.z) + f64::from(cursor_z),
|
||||||
},
|
},
|
||||||
inside,
|
inside,
|
||||||
|
world_border,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -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 {
|
||||||
|
|
|
@ -351,7 +351,7 @@ where
|
||||||
}
|
}
|
||||||
|
|
||||||
if tracing::enabled!(tracing::Level::TRACE) {
|
if tracing::enabled!(tracing::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 {
|
||||||
|
|
|
@ -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",
|
||||||
|
|
|
@ -23,6 +23,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,
|
||||||
|
@ -34,6 +35,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,
|
||||||
|
@ -48,6 +50,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,
|
||||||
|
@ -59,6 +62,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,
|
||||||
|
@ -71,6 +75,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,
|
||||||
|
@ -82,6 +87,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,
|
||||||
|
@ -136,6 +142,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,
|
||||||
|
@ -182,6 +189,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,
|
||||||
|
@ -233,6 +241,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,
|
||||||
])
|
])
|
||||||
|
@ -324,6 +333,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,
|
||||||
|
@ -353,6 +393,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,
|
||||||
])
|
])
|
||||||
|
@ -375,6 +416,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,
|
||||||
|
@ -471,6 +513,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,
|
||||||
|
@ -503,10 +546,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,
|
||||||
|
@ -530,6 +575,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,
|
||||||
|
@ -551,6 +597,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,
|
||||||
|
@ -733,6 +783,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,
|
||||||
])
|
])
|
||||||
|
@ -750,6 +801,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,
|
||||||
])
|
])
|
||||||
|
@ -773,6 +825,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,
|
||||||
|
@ -832,6 +885,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,
|
||||||
|
@ -865,6 +919,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,
|
||||||
|
@ -878,6 +933,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,
|
||||||
|
@ -885,6 +941,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,
|
||||||
])
|
])
|
||||||
|
@ -920,6 +977,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,
|
||||||
|
@ -936,6 +994,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,
|
||||||
|
@ -951,6 +1010,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,
|
||||||
|
@ -967,6 +1028,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,
|
||||||
|
@ -989,6 +1051,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,
|
||||||
|
@ -997,6 +1064,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,
|
||||||
|
@ -1010,11 +1078,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(|| {
|
||||||
|
@ -1229,14 +1293,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(|| {
|
||||||
|
@ -1366,14 +1422,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(|| {
|
||||||
|
@ -1419,6 +1467,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,
|
||||||
|
@ -1438,6 +1487,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,
|
||||||
|
@ -1473,6 +1526,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,
|
||||||
|
@ -1496,6 +1550,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,
|
||||||
|
@ -1532,6 +1590,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,
|
||||||
|
@ -1582,6 +1644,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,
|
||||||
])
|
])
|
||||||
|
@ -1705,6 +1768,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,
|
||||||
|
@ -1740,6 +1804,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,
|
||||||
|
@ -1754,6 +1819,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,
|
||||||
|
@ -1765,6 +1831,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,
|
||||||
|
@ -1775,6 +1842,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,
|
||||||
|
@ -1786,6 +1854,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,
|
||||||
|
@ -1794,6 +1863,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,
|
||||||
|
@ -1808,6 +1878,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,
|
||||||
|
@ -1819,6 +1890,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,
|
||||||
|
@ -1830,6 +1902,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,
|
||||||
|
@ -1838,6 +1911,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,
|
||||||
|
@ -1862,6 +1936,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,
|
||||||
|
@ -1873,6 +1948,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,
|
||||||
|
@ -1885,6 +1961,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,
|
||||||
|
@ -1896,6 +1973,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,
|
||||||
|
@ -1904,6 +1982,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,
|
||||||
|
@ -1947,6 +2029,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,
|
||||||
|
@ -1957,6 +2040,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,
|
||||||
|
@ -2345,6 +2430,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,
|
||||||
|
@ -2372,6 +2462,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,
|
||||||
|
@ -2458,6 +2549,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,
|
||||||
|
@ -2484,6 +2576,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,
|
||||||
])
|
])
|
||||||
|
@ -2599,14 +2692,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(|| {
|
||||||
|
@ -2629,6 +2714,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,
|
||||||
|
@ -2675,7 +2761,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,
|
||||||
|
@ -2692,6 +2777,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,
|
||||||
|
@ -2719,6 +2805,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(|| {
|
||||||
|
@ -2729,10 +2818,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,
|
||||||
|
@ -2740,6 +2838,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,
|
||||||
|
@ -2759,6 +2858,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,
|
||||||
|
@ -2806,6 +2909,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,
|
||||||
|
@ -2832,6 +2936,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,
|
||||||
|
@ -2882,6 +2987,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,
|
||||||
|
@ -2897,6 +3003,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,
|
||||||
|
@ -2919,6 +3026,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,
|
||||||
|
@ -2926,6 +3034,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(|| {
|
||||||
|
@ -2944,6 +3068,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,
|
||||||
|
@ -2977,6 +3102,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,
|
||||||
|
@ -3036,6 +3162,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,
|
||||||
|
@ -3091,6 +3218,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,
|
||||||
|
@ -3102,6 +3230,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,
|
||||||
|
@ -3160,12 +3289,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,
|
||||||
|
@ -3178,6 +3309,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,
|
||||||
|
@ -3191,6 +3323,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>> =
|
||||||
|
@ -3209,6 +3342,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,
|
||||||
])
|
])
|
||||||
|
@ -3221,6 +3355,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,
|
||||||
])
|
])
|
||||||
|
@ -3292,12 +3427,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,
|
||||||
|
@ -3313,6 +3450,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,
|
||||||
|
@ -3377,7 +3515,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,
|
||||||
|
@ -3397,6 +3534,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,
|
||||||
|
@ -3410,24 +3548,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,
|
||||||
|
@ -3438,15 +3563,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,
|
||||||
|
@ -3484,6 +3600,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,
|
||||||
|
@ -3519,6 +3636,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,
|
||||||
|
@ -3551,6 +3669,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,
|
||||||
|
@ -3603,6 +3722,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,
|
||||||
|
@ -3614,6 +3734,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,
|
||||||
|
@ -3625,6 +3746,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,
|
||||||
|
@ -3642,6 +3764,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,
|
||||||
|
@ -3676,6 +3799,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(|| {
|
||||||
|
@ -3724,6 +3848,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,
|
||||||
|
@ -3739,6 +3864,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,
|
||||||
|
@ -3751,6 +3877,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,
|
||||||
|
@ -3769,6 +3896,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,
|
||||||
|
@ -3784,6 +3912,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,
|
||||||
|
@ -3799,6 +3928,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,
|
||||||
|
@ -3811,6 +3941,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,
|
||||||
|
|
|
@ -83,14 +83,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,
|
||||||
|
@ -109,6 +103,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(|| {
|
||||||
|
@ -127,6 +128,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,
|
||||||
|
@ -136,6 +138,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,
|
||||||
|
@ -217,6 +220,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,
|
||||||
|
@ -277,6 +281,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,
|
||||||
|
@ -313,6 +318,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,
|
||||||
|
@ -334,6 +340,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,
|
||||||
|
@ -506,6 +516,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,
|
||||||
])
|
])
|
||||||
|
@ -527,6 +538,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,
|
||||||
|
@ -534,6 +546,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(|| {
|
||||||
|
@ -933,6 +947,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,
|
||||||
|
@ -949,6 +964,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,
|
||||||
|
@ -969,36 +985,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,
|
||||||
|
@ -1046,6 +1032,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,
|
||||||
|
@ -1114,6 +1101,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,
|
||||||
|
@ -1153,6 +1141,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,
|
||||||
|
@ -1189,6 +1181,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,
|
||||||
|
@ -1301,6 +1297,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>> =
|
||||||
|
@ -1360,6 +1364,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])
|
||||||
});
|
});
|
||||||
|
@ -1371,6 +1377,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,
|
||||||
|
@ -1379,6 +1387,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,
|
||||||
|
@ -1430,6 +1439,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,
|
||||||
|
@ -1477,6 +1487,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,
|
||||||
|
@ -1484,6 +1495,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,
|
||||||
|
@ -1546,12 +1559,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,
|
||||||
|
@ -1562,6 +1577,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,
|
||||||
|
@ -1575,6 +1591,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>> =
|
||||||
|
@ -1638,12 +1655,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,
|
||||||
|
@ -1689,15 +1708,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,
|
||||||
|
@ -1733,6 +1743,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,
|
||||||
|
@ -1745,38 +1756,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(|| {
|
||||||
|
@ -1860,6 +1850,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(|| {
|
||||||
|
@ -1872,6 +1863,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,
|
||||||
|
@ -1902,6 +1895,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,
|
||||||
|
@ -1917,6 +1911,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,
|
||||||
|
@ -1929,6 +1924,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,
|
||||||
|
@ -1947,6 +1943,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,
|
||||||
|
@ -1962,6 +1959,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,
|
||||||
|
@ -1977,6 +1975,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,
|
||||||
|
@ -1992,6 +1991,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,
|
||||||
|
@ -2004,6 +2004,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,
|
||||||
|
|
Loading…
Add table
Reference in a new issue