1
2
Fork 0
mirror of https://github.com/mat-1/azalea.git synced 2025-08-02 14:26:04 +00:00

start updating to 1.21.4

This commit is contained in:
mat 2024-11-26 20:21:32 +00:00
parent dfdc3144b6
commit 8e14951022
16 changed files with 393 additions and 243 deletions

4
Cargo.lock generated
View file

@ -250,7 +250,7 @@ dependencies = [
[[package]]
name = "azalea-block"
version = "0.10.3+mc1.21.1"
version = "0.10.3+mc1.21.4"
dependencies = [
"azalea-block-macros",
"azalea-buf",
@ -404,7 +404,7 @@ dependencies = [
[[package]]
name = "azalea-inventory"
version = "0.10.3+mc1.21.1"
version = "0.10.3+mc1.21.4"
dependencies = [
"azalea-buf",
"azalea-chat",

View file

@ -11,7 +11,7 @@ A collection of Rust crates for making Minecraft bots, clients, and tools.
<!-- The line below is automatically read and updated by the migrate script, so don't change it manually. -->
_Currently supported Minecraft version: `1.21.2`._
_Currently supported Minecraft version: `1.21.4-pre3`._
> [!WARNING]
> Azalea is still very unfinished, though most crates are in a somewhat useable state

View file

@ -4,7 +4,7 @@ edition = "2021"
license = "MIT"
name = "azalea-block"
repository = "https://github.com/azalea-rs/azalea/tree/main/azalea-block"
version = "0.10.3+mc1.21.1"
version = "0.10.3+mc1.21.4"
[lib]

View file

@ -15,7 +15,9 @@ azalea-buf = ["dep:azalea-buf", "simdnbt"]
numbers = ["dep:azalea-registry", "dep:simdnbt"]
[dependencies]
azalea-buf = { path = "../azalea-buf", features = ["serde_json"], version = "0.10.0", optional = true }
azalea-buf = { path = "../azalea-buf", features = [
"serde_json",
], version = "0.10.0", optional = true }
azalea-language = { path = "../azalea-language", version = "0.10.0" }
azalea-registry = { path = "../azalea-registry", version = "0.10.0", optional = true }
once_cell = { workspace = true }

View file

@ -11,7 +11,9 @@ license = "MIT"
[dependencies]
azalea-block = { version = "0.10.0", path = "../azalea-block" }
azalea-buf = { version = "0.10.0", path = "../azalea-buf" }
azalea-chat = { version = "0.10.0", path = "../azalea-chat", features = ["azalea-buf"] }
azalea-chat = { version = "0.10.0", path = "../azalea-chat", features = [
"azalea-buf",
] }
azalea-core = { version = "0.10.0", path = "../azalea-core" }
azalea-inventory = { version = "0.10.0", path = "../azalea-inventory" }
azalea-registry = { version = "0.10.0", path = "../azalea-registry" }

View file

@ -2564,6 +2564,10 @@ impl Default for CowMetadataBundle {
pub struct CanMove(pub bool);
#[derive(Component, Deref, DerefMut, Clone)]
pub struct IsActive(pub bool);
#[derive(Component, Deref, DerefMut, Clone)]
pub struct IsTearingDown(pub bool);
#[derive(Component, Deref, DerefMut, Clone)]
pub struct CreakingHomePos(pub Option<BlockPos>);
#[derive(Component)]
pub struct Creaking;
impl Creaking {
@ -2579,6 +2583,12 @@ impl Creaking {
17 => {
entity.insert(IsActive(d.value.into_boolean()?));
}
18 => {
entity.insert(IsTearingDown(d.value.into_boolean()?));
}
19 => {
entity.insert(CreakingHomePos(d.value.into_optional_block_pos()?));
}
_ => {}
}
Ok(())
@ -2591,6 +2601,8 @@ pub struct CreakingMetadataBundle {
parent: AbstractMonsterMetadataBundle,
can_move: CanMove,
is_active: IsActive,
is_tearing_down: IsTearingDown,
creaking_home_pos: CreakingHomePos,
}
impl Default for CreakingMetadataBundle {
fn default() -> Self {
@ -2638,79 +2650,8 @@ impl Default for CreakingMetadataBundle {
},
can_move: CanMove(true),
is_active: IsActive(false),
}
}
}
#[derive(Component)]
pub struct CreakingTransient;
impl CreakingTransient {
pub fn apply_metadata(
entity: &mut bevy_ecs::system::EntityCommands,
d: EntityDataItem,
) -> Result<(), UpdateMetadataError> {
match d.index {
0..=17 => Creaking::apply_metadata(entity, d)?,
_ => {}
}
Ok(())
}
}
#[derive(Bundle)]
pub struct CreakingTransientMetadataBundle {
_marker: CreakingTransient,
parent: CreakingMetadataBundle,
}
impl Default for CreakingTransientMetadataBundle {
fn default() -> Self {
Self {
_marker: CreakingTransient,
parent: CreakingMetadataBundle {
_marker: Creaking,
parent: AbstractMonsterMetadataBundle {
_marker: AbstractMonster,
parent: AbstractCreatureMetadataBundle {
_marker: AbstractCreature,
parent: AbstractInsentientMetadataBundle {
_marker: AbstractInsentient,
parent: AbstractLivingMetadataBundle {
_marker: AbstractLiving,
parent: AbstractEntityMetadataBundle {
_marker: AbstractEntity,
on_fire: OnFire(false),
shift_key_down: ShiftKeyDown(false),
sprinting: Sprinting(false),
swimming: Swimming(false),
currently_glowing: CurrentlyGlowing(false),
invisible: Invisible(false),
fall_flying: FallFlying(false),
air_supply: AirSupply(Default::default()),
custom_name: CustomName(Default::default()),
custom_name_visible: CustomNameVisible(Default::default()),
silent: Silent(Default::default()),
no_gravity: NoGravity(Default::default()),
pose: Pose::default(),
ticks_frozen: TicksFrozen(Default::default()),
},
auto_spin_attack: AutoSpinAttack(false),
abstract_living_using_item: AbstractLivingUsingItem(false),
health: Health(1.0),
effect_particles: EffectParticles(Default::default()),
effect_ambience: EffectAmbience(false),
arrow_count: ArrowCount(0),
stinger_count: StingerCount(0),
sleeping_pos: SleepingPos(None),
},
no_ai: NoAi(false),
left_handed: LeftHanded(false),
aggressive: Aggressive(false),
},
},
},
can_move: CanMove(true),
is_active: IsActive(false),
},
is_tearing_down: IsTearingDown(false),
creaking_home_pos: CreakingHomePos(None),
}
}
}
@ -8398,7 +8339,7 @@ impl Default for RavagerMetadataBundle {
#[derive(Component, Deref, DerefMut, Clone)]
pub struct SalmonFromBucket(pub bool);
#[derive(Component, Deref, DerefMut, Clone)]
pub struct SalmonKind(pub String);
pub struct SalmonKind(pub i32);
#[derive(Component)]
pub struct Salmon;
impl Salmon {
@ -8412,7 +8353,7 @@ impl Salmon {
entity.insert(SalmonFromBucket(d.value.into_boolean()?));
}
17 => {
entity.insert(SalmonKind(d.value.into_string()?));
entity.insert(SalmonKind(d.value.into_int()?));
}
_ => {}
}
@ -10509,7 +10450,7 @@ impl Default for TropicalFishMetadataBundle {
}
#[derive(Component, Deref, DerefMut, Clone)]
pub struct HomePos(pub BlockPos);
pub struct TurtleHomePos(pub BlockPos);
#[derive(Component, Deref, DerefMut, Clone)]
pub struct HasEgg(pub bool);
#[derive(Component, Deref, DerefMut, Clone)]
@ -10530,7 +10471,7 @@ impl Turtle {
match d.index {
0..=16 => AbstractAnimal::apply_metadata(entity, d)?,
17 => {
entity.insert(HomePos(d.value.into_block_pos()?));
entity.insert(TurtleHomePos(d.value.into_block_pos()?));
}
18 => {
entity.insert(HasEgg(d.value.into_boolean()?));
@ -10557,7 +10498,7 @@ impl Turtle {
pub struct TurtleMetadataBundle {
_marker: Turtle,
parent: AbstractAnimalMetadataBundle,
home_pos: HomePos,
turtle_home_pos: TurtleHomePos,
has_egg: HasEgg,
laying_egg: LayingEgg,
travel_pos: TravelPos,
@ -10612,7 +10553,7 @@ impl Default for TurtleMetadataBundle {
abstract_ageable_baby: AbstractAgeableBaby(false),
},
},
home_pos: HomePos(BlockPos::new(0, 0, 0)),
turtle_home_pos: TurtleHomePos(BlockPos::new(0, 0, 0)),
has_egg: HasEgg(false),
laying_egg: LayingEgg(false),
travel_pos: TravelPos(BlockPos::new(0, 0, 0)),
@ -12703,11 +12644,6 @@ pub fn apply_metadata(
Creaking::apply_metadata(entity, d)?;
}
}
azalea_registry::EntityKind::CreakingTransient => {
for d in items {
CreakingTransient::apply_metadata(entity, d)?;
}
}
azalea_registry::EntityKind::Creeper => {
for d in items {
Creeper::apply_metadata(entity, d)?;
@ -13402,9 +13338,6 @@ pub fn apply_default_metadata(
azalea_registry::EntityKind::Creaking => {
entity.insert(CreakingMetadataBundle::default());
}
azalea_registry::EntityKind::CreakingTransient => {
entity.insert(CreakingTransientMetadataBundle::default());
}
azalea_registry::EntityKind::Creeper => {
entity.insert(CreeperMetadataBundle::default());
}

View file

@ -4,7 +4,7 @@ use azalea_inventory::ItemSlot;
use azalea_registry::ParticleKind;
use bevy_ecs::component::Component;
// the order of this enum must be kept in-sync with ParticleKind, otherwise
// the order of this enum must be kept in sync with ParticleKind, otherwise
// we get errors parsing particles.
/// A [`ParticleKind`] with data potentially attached to it.
#[derive(Component, Clone, Debug, McBuf, Default)]
@ -44,6 +44,7 @@ pub enum Particle {
Flame,
Infested,
CherryLeaves,
PaleOakLeaves,
SculkSoul,
SculkCharge(SculkChargeParticle),
SculkChargePop,
@ -128,7 +129,7 @@ impl From<ParticleKind> for Particle {
/// attached (like block particles), then it's set to the default.
fn from(kind: ParticleKind) -> Self {
// this is mostly just here so it fails to compile when a new particle is added
// to ParticleKind, since ParticleData has to be updated manually
// to ParticleKind, since `Particle` has to be updated manually
match kind {
ParticleKind::AngryVillager => Self::AngryVillager,
ParticleKind::Block => Self::Block(BlockParticle::default()),
@ -162,6 +163,7 @@ impl From<ParticleKind> for Particle {
ParticleKind::Fishing => Self::Fishing,
ParticleKind::Flame => Self::Flame,
ParticleKind::CherryLeaves => Self::CherryLeaves,
ParticleKind::PaleOakLeaves => Self::PaleOakLeaves,
ParticleKind::SculkSoul => Self::SculkSoul,
ParticleKind::SculkCharge => Self::SculkCharge(SculkChargeParticle::default()),
ParticleKind::SculkChargePop => Self::SculkChargePop,

View file

@ -4,13 +4,15 @@ edition = "2021"
license = "MIT"
name = "azalea-inventory"
repository = "https://github.com/azalea-rs/azalea/tree/main/azalea-inventory-macros"
version = "0.10.3+mc1.21.1"
version = "0.10.3+mc1.21.4"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]
azalea-buf = { version = "0.10.0", path = "../azalea-buf" }
azalea-chat = { version = "0.10.0", path = "../azalea-chat", features = ["azalea-buf"] }
azalea-chat = { version = "0.10.0", path = "../azalea-chat", features = [
"azalea-buf",
] }
azalea-core = { version = "0.10.0", path = "../azalea-core" }
azalea-inventory-macros = { version = "0.10.0", path = "./azalea-inventory-macros" }
azalea-registry = { version = "0.10.0", path = "../azalea-registry" }

View file

@ -1429,6 +1429,7 @@
"block.minecraft.chiseled_polished_blackstone": "Chiseled Polished Blackstone",
"block.minecraft.chiseled_quartz_block": "Chiseled Quartz Block",
"block.minecraft.chiseled_red_sandstone": "Chiseled Red Sandstone",
"block.minecraft.chiseled_resin_bricks": "Chiseled Resin Bricks",
"block.minecraft.chiseled_sandstone": "Chiseled Sandstone",
"block.minecraft.chiseled_stone_bricks": "Chiseled Stone Bricks",
"block.minecraft.chiseled_tuff": "Chiseled Tuff",
@ -1436,6 +1437,7 @@
"block.minecraft.chorus_flower": "Chorus Flower",
"block.minecraft.chorus_plant": "Chorus Plant",
"block.minecraft.clay": "Clay",
"block.minecraft.closed_eyeblossom": "Closed Eyeblossom",
"block.minecraft.coal_block": "Block of Coal",
"block.minecraft.coal_ore": "Coal Ore",
"block.minecraft.coarse_dirt": "Coarse Dirt",
@ -1856,6 +1858,7 @@
"block.minecraft.obsidian": "Obsidian",
"block.minecraft.ochre_froglight": "Ochre Froglight",
"block.minecraft.ominous_banner": "Ominous Banner",
"block.minecraft.open_eyeblossom": "Open Eyeblossom",
"block.minecraft.orange_banner": "Orange Banner",
"block.minecraft.orange_bed": "Orange Bed",
"block.minecraft.orange_candle": "Orange Candle",
@ -1971,6 +1974,7 @@
"block.minecraft.potted_brown_mushroom": "Potted Brown Mushroom",
"block.minecraft.potted_cactus": "Potted Cactus",
"block.minecraft.potted_cherry_sapling": "Potted Cherry Sapling",
"block.minecraft.potted_closed_eyeblossom": "Potted Closed Eyeblossom",
"block.minecraft.potted_cornflower": "Potted Cornflower",
"block.minecraft.potted_crimson_fungus": "Potted Crimson Fungus",
"block.minecraft.potted_crimson_roots": "Potted Crimson Roots",
@ -1983,6 +1987,7 @@
"block.minecraft.potted_lily_of_the_valley": "Potted Lily of the Valley",
"block.minecraft.potted_mangrove_propagule": "Potted Mangrove Propagule",
"block.minecraft.potted_oak_sapling": "Potted Oak Sapling",
"block.minecraft.potted_open_eyeblossom": "Potted Open Eyeblossom",
"block.minecraft.potted_orange_tulip": "Potted Orange Tulip",
"block.minecraft.potted_oxeye_daisy": "Potted Oxeye Daisy",
"block.minecraft.potted_pale_oak_sapling": "Potted Pale Oak Sapling",
@ -2068,6 +2073,12 @@
"block.minecraft.reinforced_deepslate": "Reinforced Deepslate",
"block.minecraft.repeater": "Redstone Repeater",
"block.minecraft.repeating_command_block": "Repeating Command Block",
"block.minecraft.resin_block": "Block of Resin",
"block.minecraft.resin_brick_slab": "Resin Brick Slab",
"block.minecraft.resin_brick_stairs": "Resin Brick Stairs",
"block.minecraft.resin_brick_wall": "Resin Brick Wall",
"block.minecraft.resin_bricks": "Resin Bricks",
"block.minecraft.resin_clump": "Resin Clump",
"block.minecraft.respawn_anchor": "Respawn Anchor",
"block.minecraft.rooted_dirt": "Rooted Dirt",
"block.minecraft.rose_bush": "Rose Bush",
@ -2431,6 +2442,7 @@
"commands.advancement.revoke.one.to.one.failure": "Couldn't revoke advancement %s from %s as they don't have it",
"commands.advancement.revoke.one.to.one.success": "Revoked the advancement %s from %s",
"commands.attribute.base_value.get.success": "Base value of attribute %s for entity %s is %s",
"commands.attribute.base_value.reset.success": "Base value for attribute %s for entity %s reset to default %s",
"commands.attribute.base_value.set.success": "Base value for attribute %s for entity %s set to %s",
"commands.attribute.failed.entity": "%s is not a valid entity for this command",
"commands.attribute.failed.modifier_already_present": "Modifier %s is already present on attribute %s for entity %s",
@ -4358,6 +4370,8 @@
"item.minecraft.red_bundle": "Red Bundle",
"item.minecraft.red_dye": "Red Dye",
"item.minecraft.redstone": "Redstone Dust",
"item.minecraft.resin_brick": "Resin Brick",
"item.minecraft.resin_clump": "Resin Clump",
"item.minecraft.rib_armor_trim_smithing_template": "Smithing Template",
"item.minecraft.rib_armor_trim_smithing_template.new": "Rib Armor Trim",
"item.minecraft.rotten_flesh": "Rotten Flesh",
@ -4569,6 +4583,9 @@
"item.modifiers.mainhand": "When in Main Hand:",
"item.modifiers.offhand": "When in Off Hand:",
"item.nbt_tags": "NBT: %s tag(s)",
"item.op_block_warning.line1": "Warning:",
"item.op_block_warning.line2": "Use of this item might lead to command execution",
"item.op_block_warning.line3": "Do not use unless you know the exact contents!",
"item.unbreakable": "Unbreakable",
"itemGroup.buildingBlocks": "Building Blocks",
"itemGroup.coloredBlocks": "Colored Blocks",
@ -5999,6 +6016,7 @@
"structure_block.size.z": "structure size z",
"structure_block.structure_name": "Structure Name",
"subtitles.ambient.cave": "Eerie noise",
"subtitles.ambient.sound": "Eerie noise",
"subtitles.block.amethyst_block.chime": "Amethyst chimes",
"subtitles.block.amethyst_block.resonate": "Amethyst resonates",
"subtitles.block.anvil.destroy": "Anvil destroyed",
@ -6050,7 +6068,7 @@
"subtitles.block.copper_trapdoor.open": "Trapdoor opens",
"subtitles.block.crafter.craft": "Crafter crafts",
"subtitles.block.crafter.fail": "Crafter fails crafting",
"subtitles.block.creaking_heart.hurt": "Creaking Heart screams",
"subtitles.block.creaking_heart.hurt": "Creaking Heart grumbles",
"subtitles.block.creaking_heart.idle": "Eerie noise",
"subtitles.block.creaking_heart.spawn": "Creaking Heart awakens",
"subtitles.block.decorated_pot.insert": "Decorated Pot fills",
@ -6062,12 +6080,16 @@
"subtitles.block.enchantment_table.use": "Enchanting Table used",
"subtitles.block.end_portal_frame.fill": "Eye of Ender attaches",
"subtitles.block.end_portal.spawn": "End Portal opens",
"subtitles.block.eyeblossom.close": "Eyeblossom closes",
"subtitles.block.eyeblossom.idle": "Eyeblossom whispers",
"subtitles.block.eyeblossom.open": "Eyeblossom opens",
"subtitles.block.fence_gate.toggle": "Fence Gate creaks",
"subtitles.block.fire.ambient": "Fire crackles",
"subtitles.block.fire.extinguish": "Fire extinguished",
"subtitles.block.frogspawn.hatch": "Tadpole hatches",
"subtitles.block.furnace.fire_crackle": "Furnace crackles",
"subtitles.block.generic.break": "Block broken",
"subtitles.block.generic.fall": "Something falls on a block",
"subtitles.block.generic.footsteps": "Footsteps",
"subtitles.block.generic.hit": "Block breaking",
"subtitles.block.generic.place": "Block placed",
@ -6240,15 +6262,15 @@
"subtitles.entity.cow.death": "Cow dies",
"subtitles.entity.cow.hurt": "Cow hurts",
"subtitles.entity.cow.milk": "Cow gets milked",
"subtitles.entity.creaking.activate": "Creaking activates",
"subtitles.entity.creaking.activate": "Creaking watches",
"subtitles.entity.creaking.ambient": "Creaking creaks",
"subtitles.entity.creaking.angry": "Creaking sees player",
"subtitles.entity.creaking.attack": "Creaking attacks",
"subtitles.entity.creaking.deactivate": "Creaking deactivates",
"subtitles.entity.creaking.death": "Creaking dies",
"subtitles.entity.creaking.deactivate": "Creaking calms",
"subtitles.entity.creaking.death": "Creaking crumbles",
"subtitles.entity.creaking.freeze": "Creaking stops",
"subtitles.entity.creaking.spawn": "Creaking lives",
"subtitles.entity.creaking.sway": "Creaking is shielded",
"subtitles.entity.creaking.spawn": "Creaking manifests",
"subtitles.entity.creaking.sway": "Creaking is hit",
"subtitles.entity.creaking.twitch": "Creaking twitches",
"subtitles.entity.creaking.unfreeze": "Creaking moves",
"subtitles.entity.creeper.death": "Creeper dies",
"subtitles.entity.creeper.hurt": "Creeper hurts",
@ -6315,6 +6337,7 @@
"subtitles.entity.firework_rocket.blast": "Firework blasts",
"subtitles.entity.firework_rocket.launch": "Firework launches",
"subtitles.entity.firework_rocket.twinkle": "Firework twinkles",
"subtitles.entity.fish.swim": "Splashes",
"subtitles.entity.fishing_bobber.retrieve": "Bobber retrieved",
"subtitles.entity.fishing_bobber.splash": "Fishing Bobber splashes",
"subtitles.entity.fishing_bobber.throw": "Bobber thrown",
@ -6434,6 +6457,8 @@
"subtitles.entity.magma_cube.death": "Magma Cube dies",
"subtitles.entity.magma_cube.hurt": "Magma Cube hurts",
"subtitles.entity.magma_cube.squish": "Magma Cube squishes",
"subtitles.entity.minecart.inside": "Minecart jangles",
"subtitles.entity.minecart.inside_underwater": "Minecart jangles underwater",
"subtitles.entity.minecart.riding": "Minecart rolls",
"subtitles.entity.mooshroom.convert": "Mooshroom transforms",
"subtitles.entity.mooshroom.eat": "Mooshroom eats",
@ -6590,6 +6615,7 @@
"subtitles.entity.skeleton_horse.ambient": "Skeleton Horse cries",
"subtitles.entity.skeleton_horse.death": "Skeleton Horse dies",
"subtitles.entity.skeleton_horse.hurt": "Skeleton Horse hurts",
"subtitles.entity.skeleton_horse.jump_water": "Skeleton Horse jumps",
"subtitles.entity.skeleton_horse.swim": "Skeleton Horse swims",
"subtitles.entity.skeleton.ambient": "Skeleton rattles",
"subtitles.entity.skeleton.converted_to_stray": "Skeleton converts to Stray",
@ -6802,6 +6828,7 @@
"subtitles.item.crossbow.load": "Crossbow loads",
"subtitles.item.crossbow.shoot": "Crossbow fires",
"subtitles.item.dye.use": "Dye stains",
"subtitles.item.elytra.flying": "Swoosh",
"subtitles.item.firecharge.use": "Fireball whooshes",
"subtitles.item.flintandsteel.use": "Flint and Steel click",
"subtitles.item.glow_ink_sac.use": "Glow Ink Sac splotches",
@ -6936,6 +6963,7 @@
"trim_material.minecraft.netherite": "Netherite Material",
"trim_material.minecraft.quartz": "Quartz Material",
"trim_material.minecraft.redstone": "Redstone Material",
"trim_material.minecraft.resin": "Resin Material",
"trim_pattern.minecraft.bolt": "Bolt Armor Trim",
"trim_pattern.minecraft.coast": "Coast Armor Trim",
"trim_pattern.minecraft.dune": "Dune Armor Trim",

View file

@ -12,10 +12,17 @@ version = "0.10.3+mc1.21.1"
async-recursion = { workspace = true }
azalea-auth = { path = "../azalea-auth", version = "0.10.0" }
azalea-block = { path = "../azalea-block", default-features = false, version = "0.10.0" }
azalea-brigadier = { path = "../azalea-brigadier", version = "0.10.0", features = ["azalea-buf"] }
azalea-brigadier = { path = "../azalea-brigadier", version = "0.10.0", features = [
"azalea-buf",
] }
azalea-buf = { path = "../azalea-buf", version = "0.10.0" }
azalea-chat = { path = "../azalea-chat", version = "0.10.0", features = ["numbers", "azalea-buf"] }
azalea-core = { path = "../azalea-core", optional = true, version = "0.10.0", features = ["serde"] }
azalea-chat = { path = "../azalea-chat", version = "0.10.0", features = [
"numbers",
"azalea-buf",
] }
azalea-core = { path = "../azalea-core", optional = true, version = "0.10.0", features = [
"serde",
] }
azalea-crypto = { path = "../azalea-crypto", version = "0.10.0" }
azalea-entity = { version = "0.10.0", path = "../azalea-entity" }
azalea-inventory = { version = "0.10.0", path = "../azalea-inventory" }

View file

@ -14,7 +14,7 @@ use crate::read::ReadPacketError;
// TODO: rename the packet files to just like clientbound_add_entity instead of
// clientbound_add_entity_packet
pub const PROTOCOL_VERSION: i32 = 768;
pub const PROTOCOL_VERSION: i32 = 1073742049;
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
pub enum ConnectionProtocol {

View file

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

View file

@ -25,6 +25,7 @@ pub static ALL_HANGING_SIGNS: Lazy<HashSet<Block>> = Lazy::new(|| {
Block::CherryHangingSign,
Block::JungleHangingSign,
Block::DarkOakHangingSign,
Block::PaleOakHangingSign,
Block::CrimsonHangingSign,
Block::WarpedHangingSign,
Block::MangroveHangingSign,
@ -36,6 +37,7 @@ pub static ALL_HANGING_SIGNS: Lazy<HashSet<Block>> = Lazy::new(|| {
Block::CherryWallHangingSign,
Block::JungleWallHangingSign,
Block::DarkOakWallHangingSign,
Block::PaleOakWallHangingSign,
Block::CrimsonWallHangingSign,
Block::WarpedWallHangingSign,
Block::MangroveWallHangingSign,
@ -50,6 +52,7 @@ pub static ALL_SIGNS: Lazy<HashSet<Block>> = Lazy::new(|| {
Block::AcaciaSign,
Block::JungleSign,
Block::DarkOakSign,
Block::PaleOakSign,
Block::CrimsonSign,
Block::WarpedSign,
Block::MangroveSign,
@ -61,6 +64,7 @@ pub static ALL_SIGNS: Lazy<HashSet<Block>> = Lazy::new(|| {
Block::AcaciaWallSign,
Block::JungleWallSign,
Block::DarkOakWallSign,
Block::PaleOakWallSign,
Block::CrimsonWallSign,
Block::WarpedWallSign,
Block::MangroveWallSign,
@ -73,6 +77,7 @@ pub static ALL_SIGNS: Lazy<HashSet<Block>> = Lazy::new(|| {
Block::CherryHangingSign,
Block::JungleHangingSign,
Block::DarkOakHangingSign,
Block::PaleOakHangingSign,
Block::CrimsonHangingSign,
Block::WarpedHangingSign,
Block::MangroveHangingSign,
@ -84,6 +89,7 @@ pub static ALL_SIGNS: Lazy<HashSet<Block>> = Lazy::new(|| {
Block::CherryWallHangingSign,
Block::JungleWallHangingSign,
Block::DarkOakWallHangingSign,
Block::PaleOakWallHangingSign,
Block::CrimsonWallHangingSign,
Block::WarpedWallHangingSign,
Block::MangroveWallHangingSign,
@ -137,6 +143,7 @@ pub static AZALEA_GROWS_ON: Lazy<HashSet<Block>> = Lazy::new(|| {
Block::Mycelium,
Block::RootedDirt,
Block::MossBlock,
Block::PaleMossBlock,
Block::Mud,
Block::MuddyMangroveRoots,
Block::Sand,
@ -183,6 +190,7 @@ pub static AZALEA_ROOT_REPLACEABLE: Lazy<HashSet<Block>> = Lazy::new(|| {
Block::Mycelium,
Block::RootedDirt,
Block::MossBlock,
Block::PaleMossBlock,
Block::Mud,
Block::MuddyMangroveRoots,
Block::Terracotta,
@ -234,6 +242,7 @@ pub static BAMBOO_PLANTABLE_ON: Lazy<HashSet<Block>> = Lazy::new(|| {
Block::Mycelium,
Block::RootedDirt,
Block::MossBlock,
Block::PaleMossBlock,
Block::Mud,
Block::MuddyMangroveRoots,
])
@ -325,6 +334,37 @@ pub static BEDS: Lazy<HashSet<Block>> = Lazy::new(|| {
Block::YellowBed,
])
});
pub static BEE_ATTRACTIVE: Lazy<HashSet<Block>> = Lazy::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: Lazy<HashSet<Block>> = Lazy::new(|| {
HashSet::from_iter(vec![
Block::SweetBerryBush,
@ -354,6 +394,7 @@ pub static BIG_DRIPLEAF_PLACEABLE: Lazy<HashSet<Block>> = Lazy::new(|| {
Block::Mycelium,
Block::RootedDirt,
Block::MossBlock,
Block::PaleMossBlock,
Block::Mud,
Block::MuddyMangroveRoots,
])
@ -376,6 +417,7 @@ pub static BUTTONS: Lazy<HashSet<Block>> = Lazy::new(|| {
Block::JungleButton,
Block::AcaciaButton,
Block::DarkOakButton,
Block::PaleOakButton,
Block::CrimsonButton,
Block::WarpedButton,
Block::MangroveButton,
@ -472,6 +514,7 @@ pub static CEILING_HANGING_SIGNS: Lazy<HashSet<Block>> = Lazy::new(|| {
Block::CherryHangingSign,
Block::JungleHangingSign,
Block::DarkOakHangingSign,
Block::PaleOakHangingSign,
Block::CrimsonHangingSign,
Block::WarpedHangingSign,
Block::MangroveHangingSign,
@ -504,10 +547,12 @@ pub static COAL_ORES: Lazy<HashSet<Block>> =
pub static COMBINATION_STEP_SOUND_BLOCKS: Lazy<HashSet<Block>> = Lazy::new(|| {
HashSet::from_iter(vec![
Block::MossCarpet,
Block::PaleMossCarpet,
Block::Snow,
Block::NetherSprouts,
Block::WarpedRoots,
Block::CrimsonRoots,
Block::ResinClump,
Block::WhiteCarpet,
Block::OrangeCarpet,
Block::MagentaCarpet,
@ -531,6 +576,7 @@ pub static COMPLETES_FIND_TREE_TUTORIAL: Lazy<HashSet<Block>> = Lazy::new(|| {
Block::JungleLeaves,
Block::OakLeaves,
Block::SpruceLeaves,
Block::PaleOakLeaves,
Block::DarkOakLeaves,
Block::AcaciaLeaves,
Block::BirchLeaves,
@ -552,6 +598,10 @@ pub static COMPLETES_FIND_TREE_TUTORIAL: Lazy<HashSet<Block>> = Lazy::new(|| {
Block::DarkOakWood,
Block::StrippedDarkOakLog,
Block::StrippedDarkOakWood,
Block::PaleOakLog,
Block::PaleOakWood,
Block::StrippedPaleOakLog,
Block::StrippedPaleOakWood,
Block::OakLog,
Block::OakWood,
Block::StrippedOakLog,
@ -734,6 +784,7 @@ pub static DEAD_BUSH_MAY_PLACE_ON: Lazy<HashSet<Block>> = Lazy::new(|| {
Block::Mycelium,
Block::RootedDirt,
Block::MossBlock,
Block::PaleMossBlock,
Block::Mud,
Block::MuddyMangroveRoots,
])
@ -751,6 +802,7 @@ pub static DIRT: Lazy<HashSet<Block>> = Lazy::new(|| {
Block::Mycelium,
Block::RootedDirt,
Block::MossBlock,
Block::PaleMossBlock,
Block::Mud,
Block::MuddyMangroveRoots,
])
@ -774,6 +826,7 @@ pub static DOORS: Lazy<HashSet<Block>> = Lazy::new(|| {
Block::JungleDoor,
Block::AcaciaDoor,
Block::DarkOakDoor,
Block::PaleOakDoor,
Block::CrimsonDoor,
Block::WarpedDoor,
Block::MangroveDoor,
@ -833,6 +886,7 @@ pub static ENCHANTMENT_POWER_TRANSMITTER: Lazy<HashSet<Block>> = Lazy::new(|| {
Block::Snow,
Block::Vine,
Block::GlowLichen,
Block::ResinClump,
Block::Light,
Block::TallGrass,
Block::LargeFern,
@ -866,6 +920,7 @@ pub static ENDERMAN_HOLDABLE: Lazy<HashSet<Block>> = Lazy::new(|| {
Block::WarpedNylium,
Block::WarpedRoots,
Block::Dandelion,
Block::OpenEyeblossom,
Block::Poppy,
Block::BlueOrchid,
Block::Allium,
@ -879,6 +934,7 @@ pub static ENDERMAN_HOLDABLE: Lazy<HashSet<Block>> = Lazy::new(|| {
Block::LilyOfTheValley,
Block::WitherRose,
Block::Torchflower,
Block::ClosedEyeblossom,
Block::Dirt,
Block::GrassBlock,
Block::Podzol,
@ -886,6 +942,7 @@ pub static ENDERMAN_HOLDABLE: Lazy<HashSet<Block>> = Lazy::new(|| {
Block::Mycelium,
Block::RootedDirt,
Block::MossBlock,
Block::PaleMossBlock,
Block::Mud,
Block::MuddyMangroveRoots,
])
@ -921,6 +978,7 @@ pub static FENCE_GATES: Lazy<HashSet<Block>> = Lazy::new(|| {
Block::AcaciaFenceGate,
Block::BirchFenceGate,
Block::DarkOakFenceGate,
Block::PaleOakFenceGate,
Block::JungleFenceGate,
Block::OakFenceGate,
Block::SpruceFenceGate,
@ -937,6 +995,7 @@ pub static FENCES: Lazy<HashSet<Block>> = Lazy::new(|| {
Block::OakFence,
Block::AcaciaFence,
Block::DarkOakFence,
Block::PaleOakFence,
Block::SpruceFence,
Block::BirchFence,
Block::JungleFence,
@ -952,6 +1011,8 @@ pub static FIRE: Lazy<HashSet<Block>> =
pub static FLOWER_POTS: Lazy<HashSet<Block>> = Lazy::new(|| {
HashSet::from_iter(vec![
Block::FlowerPot,
Block::PottedOpenEyeblossom,
Block::PottedClosedEyeblossom,
Block::PottedPoppy,
Block::PottedBlueOrchid,
Block::PottedAllium,
@ -968,6 +1029,7 @@ pub static FLOWER_POTS: Lazy<HashSet<Block>> = Lazy::new(|| {
Block::PottedJungleSapling,
Block::PottedAcaciaSapling,
Block::PottedDarkOakSapling,
Block::PottedPaleOakSapling,
Block::PottedRedMushroom,
Block::PottedBrownMushroom,
Block::PottedDeadBush,
@ -990,6 +1052,11 @@ pub static FLOWER_POTS: Lazy<HashSet<Block>> = Lazy::new(|| {
});
pub static FLOWERS: Lazy<HashSet<Block>> = Lazy::new(|| {
HashSet::from_iter(vec![
Block::Sunflower,
Block::Lilac,
Block::Peony,
Block::RoseBush,
Block::PitcherPlant,
Block::FloweringAzaleaLeaves,
Block::FloweringAzalea,
Block::MangrovePropagule,
@ -998,6 +1065,7 @@ pub static FLOWERS: Lazy<HashSet<Block>> = Lazy::new(|| {
Block::ChorusFlower,
Block::SporeBlossom,
Block::Dandelion,
Block::OpenEyeblossom,
Block::Poppy,
Block::BlueOrchid,
Block::Allium,
@ -1011,11 +1079,7 @@ pub static FLOWERS: Lazy<HashSet<Block>> = Lazy::new(|| {
Block::LilyOfTheValley,
Block::WitherRose,
Block::Torchflower,
Block::Sunflower,
Block::Lilac,
Block::Peony,
Block::RoseBush,
Block::PitcherPlant,
Block::ClosedEyeblossom,
])
});
pub static FOXES_SPAWNABLE_ON: Lazy<HashSet<Block>> = Lazy::new(|| {
@ -1230,14 +1294,6 @@ pub static INCORRECT_FOR_GOLD_TOOL: Lazy<HashSet<Block>> = Lazy::new(|| {
Block::WaxedExposedCopperTrapdoor,
Block::WaxedWeatheredCopperTrapdoor,
Block::WaxedOxidizedCopperTrapdoor,
Block::CopperDoor,
Block::ExposedCopperDoor,
Block::WeatheredCopperDoor,
Block::OxidizedCopperDoor,
Block::WaxedCopperDoor,
Block::WaxedExposedCopperDoor,
Block::WaxedWeatheredCopperDoor,
Block::WaxedOxidizedCopperDoor,
])
});
pub static INCORRECT_FOR_IRON_TOOL: Lazy<HashSet<Block>> = Lazy::new(|| {
@ -1367,14 +1423,6 @@ pub static INCORRECT_FOR_WOODEN_TOOL: Lazy<HashSet<Block>> = Lazy::new(|| {
Block::WaxedExposedCopperTrapdoor,
Block::WaxedWeatheredCopperTrapdoor,
Block::WaxedOxidizedCopperTrapdoor,
Block::CopperDoor,
Block::ExposedCopperDoor,
Block::WeatheredCopperDoor,
Block::OxidizedCopperDoor,
Block::WaxedCopperDoor,
Block::WaxedExposedCopperDoor,
Block::WaxedWeatheredCopperDoor,
Block::WaxedOxidizedCopperDoor,
])
});
pub static INFINIBURN_END: Lazy<HashSet<Block>> =
@ -1419,6 +1467,7 @@ pub static LAVA_POOL_STONE_CANNOT_REPLACE: Lazy<HashSet<Block>> = Lazy::new(|| {
Block::JungleLeaves,
Block::OakLeaves,
Block::SpruceLeaves,
Block::PaleOakLeaves,
Block::DarkOakLeaves,
Block::AcaciaLeaves,
Block::BirchLeaves,
@ -1438,6 +1487,10 @@ pub static LAVA_POOL_STONE_CANNOT_REPLACE: Lazy<HashSet<Block>> = Lazy::new(|| {
Block::DarkOakWood,
Block::StrippedDarkOakLog,
Block::StrippedDarkOakWood,
Block::PaleOakLog,
Block::PaleOakWood,
Block::StrippedPaleOakLog,
Block::StrippedPaleOakWood,
Block::OakLog,
Block::OakWood,
Block::StrippedOakLog,
@ -1473,6 +1526,7 @@ pub static LEAVES: Lazy<HashSet<Block>> = Lazy::new(|| {
Block::JungleLeaves,
Block::OakLeaves,
Block::SpruceLeaves,
Block::PaleOakLeaves,
Block::DarkOakLeaves,
Block::AcaciaLeaves,
Block::BirchLeaves,
@ -1496,6 +1550,10 @@ pub static LOGS: Lazy<HashSet<Block>> = Lazy::new(|| {
Block::DarkOakWood,
Block::StrippedDarkOakLog,
Block::StrippedDarkOakWood,
Block::PaleOakLog,
Block::PaleOakWood,
Block::StrippedPaleOakLog,
Block::StrippedPaleOakWood,
Block::OakLog,
Block::OakWood,
Block::StrippedOakLog,
@ -1532,6 +1590,10 @@ pub static LOGS_THAT_BURN: Lazy<HashSet<Block>> = Lazy::new(|| {
Block::DarkOakWood,
Block::StrippedDarkOakLog,
Block::StrippedDarkOakWood,
Block::PaleOakLog,
Block::PaleOakWood,
Block::StrippedPaleOakLog,
Block::StrippedPaleOakWood,
Block::OakLog,
Block::OakWood,
Block::StrippedOakLog,
@ -1582,6 +1644,7 @@ pub static LUSH_GROUND_REPLACEABLE: Lazy<HashSet<Block>> = Lazy::new(|| {
Block::Mycelium,
Block::RootedDirt,
Block::MossBlock,
Block::PaleMossBlock,
Block::Mud,
Block::MuddyMangroveRoots,
])
@ -1705,6 +1768,7 @@ pub static MINEABLE_AXE: Lazy<HashSet<Block>> = Lazy::new(|| {
Block::BambooMosaicSlab,
Block::BambooMosaicStairs,
Block::ChiseledBookshelf,
Block::CreakingHeart,
Block::WhiteBanner,
Block::OrangeBanner,
Block::MagentaBanner,
@ -1740,6 +1804,7 @@ pub static MINEABLE_AXE: Lazy<HashSet<Block>> = Lazy::new(|| {
Block::AcaciaFenceGate,
Block::BirchFenceGate,
Block::DarkOakFenceGate,
Block::PaleOakFenceGate,
Block::JungleFenceGate,
Block::OakFenceGate,
Block::SpruceFenceGate,
@ -1754,6 +1819,7 @@ pub static MINEABLE_AXE: Lazy<HashSet<Block>> = Lazy::new(|| {
Block::JunglePlanks,
Block::AcaciaPlanks,
Block::DarkOakPlanks,
Block::PaleOakPlanks,
Block::CrimsonPlanks,
Block::WarpedPlanks,
Block::MangrovePlanks,
@ -1765,6 +1831,7 @@ pub static MINEABLE_AXE: Lazy<HashSet<Block>> = Lazy::new(|| {
Block::JungleSapling,
Block::AcaciaSapling,
Block::DarkOakSapling,
Block::PaleOakSapling,
Block::Azalea,
Block::FloweringAzalea,
Block::MangrovePropagule,
@ -1775,6 +1842,7 @@ pub static MINEABLE_AXE: Lazy<HashSet<Block>> = Lazy::new(|| {
Block::JungleButton,
Block::AcaciaButton,
Block::DarkOakButton,
Block::PaleOakButton,
Block::CrimsonButton,
Block::WarpedButton,
Block::MangroveButton,
@ -1786,6 +1854,7 @@ pub static MINEABLE_AXE: Lazy<HashSet<Block>> = Lazy::new(|| {
Block::JungleDoor,
Block::AcaciaDoor,
Block::DarkOakDoor,
Block::PaleOakDoor,
Block::CrimsonDoor,
Block::WarpedDoor,
Block::MangroveDoor,
@ -1794,6 +1863,7 @@ pub static MINEABLE_AXE: Lazy<HashSet<Block>> = Lazy::new(|| {
Block::OakFence,
Block::AcaciaFence,
Block::DarkOakFence,
Block::PaleOakFence,
Block::SpruceFence,
Block::BirchFence,
Block::JungleFence,
@ -1808,6 +1878,7 @@ pub static MINEABLE_AXE: Lazy<HashSet<Block>> = Lazy::new(|| {
Block::JunglePressurePlate,
Block::AcaciaPressurePlate,
Block::DarkOakPressurePlate,
Block::PaleOakPressurePlate,
Block::CrimsonPressurePlate,
Block::WarpedPressurePlate,
Block::MangrovePressurePlate,
@ -1819,6 +1890,7 @@ pub static MINEABLE_AXE: Lazy<HashSet<Block>> = Lazy::new(|| {
Block::JungleSlab,
Block::AcaciaSlab,
Block::DarkOakSlab,
Block::PaleOakSlab,
Block::CrimsonSlab,
Block::WarpedSlab,
Block::MangroveSlab,
@ -1830,6 +1902,7 @@ pub static MINEABLE_AXE: Lazy<HashSet<Block>> = Lazy::new(|| {
Block::JungleStairs,
Block::AcaciaStairs,
Block::DarkOakStairs,
Block::PaleOakStairs,
Block::CrimsonStairs,
Block::WarpedStairs,
Block::MangroveStairs,
@ -1838,6 +1911,7 @@ pub static MINEABLE_AXE: Lazy<HashSet<Block>> = Lazy::new(|| {
Block::AcaciaTrapdoor,
Block::BirchTrapdoor,
Block::DarkOakTrapdoor,
Block::PaleOakTrapdoor,
Block::JungleTrapdoor,
Block::OakTrapdoor,
Block::SpruceTrapdoor,
@ -1862,6 +1936,7 @@ pub static MINEABLE_AXE: Lazy<HashSet<Block>> = Lazy::new(|| {
Block::AcaciaSign,
Block::JungleSign,
Block::DarkOakSign,
Block::PaleOakSign,
Block::CrimsonSign,
Block::WarpedSign,
Block::MangroveSign,
@ -1873,6 +1948,7 @@ pub static MINEABLE_AXE: Lazy<HashSet<Block>> = Lazy::new(|| {
Block::AcaciaWallSign,
Block::JungleWallSign,
Block::DarkOakWallSign,
Block::PaleOakWallSign,
Block::CrimsonWallSign,
Block::WarpedWallSign,
Block::MangroveWallSign,
@ -1885,6 +1961,7 @@ pub static MINEABLE_AXE: Lazy<HashSet<Block>> = Lazy::new(|| {
Block::CherryHangingSign,
Block::JungleHangingSign,
Block::DarkOakHangingSign,
Block::PaleOakHangingSign,
Block::CrimsonHangingSign,
Block::WarpedHangingSign,
Block::MangroveHangingSign,
@ -1896,6 +1973,7 @@ pub static MINEABLE_AXE: Lazy<HashSet<Block>> = Lazy::new(|| {
Block::CherryWallHangingSign,
Block::JungleWallHangingSign,
Block::DarkOakWallHangingSign,
Block::PaleOakWallHangingSign,
Block::CrimsonWallHangingSign,
Block::WarpedWallHangingSign,
Block::MangroveWallHangingSign,
@ -1904,6 +1982,10 @@ pub static MINEABLE_AXE: Lazy<HashSet<Block>> = Lazy::new(|| {
Block::DarkOakWood,
Block::StrippedDarkOakLog,
Block::StrippedDarkOakWood,
Block::PaleOakLog,
Block::PaleOakWood,
Block::StrippedPaleOakLog,
Block::StrippedPaleOakWood,
Block::OakLog,
Block::OakWood,
Block::StrippedOakLog,
@ -1947,6 +2029,7 @@ pub static MINEABLE_HOE: Lazy<HashSet<Block>> = Lazy::new(|| {
Block::JungleLeaves,
Block::OakLeaves,
Block::SpruceLeaves,
Block::PaleOakLeaves,
Block::DarkOakLeaves,
Block::AcaciaLeaves,
Block::BirchLeaves,
@ -1957,6 +2040,8 @@ pub static MINEABLE_HOE: Lazy<HashSet<Block>> = Lazy::new(|| {
Block::CalibratedSculkSensor,
Block::MossBlock,
Block::MossCarpet,
Block::PaleMossBlock,
Block::PaleMossCarpet,
Block::Sculk,
Block::SculkCatalyst,
Block::SculkVein,
@ -1984,6 +2069,7 @@ pub static MINEABLE_PICKAXE: Lazy<HashSet<Block>> = Lazy::new(|| {
Block::NetherGoldOre,
Block::LapisOre,
Block::DeepslateLapisOre,
Block::ResinBricks,
Block::LapisBlock,
Block::Dispenser,
Block::Sandstone,
@ -2345,6 +2431,11 @@ pub static MINEABLE_PICKAXE: Lazy<HashSet<Block>> = Lazy::new(|| {
Block::WaxedWeatheredCopperTrapdoor,
Block::WaxedOxidizedCopperTrapdoor,
Block::HeavyCore,
Block::ResinBricks,
Block::ResinBrickSlab,
Block::ResinBrickWall,
Block::ResinBrickStairs,
Block::ChiseledResinBricks,
Block::StoneButton,
Block::PolishedBlackstoneButton,
Block::CobblestoneWall,
@ -2372,6 +2463,7 @@ pub static MINEABLE_PICKAXE: Lazy<HashSet<Block>> = Lazy::new(|| {
Block::TuffWall,
Block::PolishedTuffWall,
Block::TuffBrickWall,
Block::ResinBrickWall,
Block::ShulkerBox,
Block::BlackShulkerBox,
Block::BlueShulkerBox,
@ -2458,6 +2550,7 @@ pub static MOB_INTERACTABLE_DOORS: Lazy<HashSet<Block>> = Lazy::new(|| {
Block::JungleDoor,
Block::AcaciaDoor,
Block::DarkOakDoor,
Block::PaleOakDoor,
Block::CrimsonDoor,
Block::WarpedDoor,
Block::MangroveDoor,
@ -2484,6 +2577,7 @@ pub static MOSS_REPLACEABLE: Lazy<HashSet<Block>> = Lazy::new(|| {
Block::Mycelium,
Block::RootedDirt,
Block::MossBlock,
Block::PaleMossBlock,
Block::Mud,
Block::MuddyMangroveRoots,
])
@ -2599,14 +2693,6 @@ pub static NEEDS_STONE_TOOL: Lazy<HashSet<Block>> = Lazy::new(|| {
Block::WaxedExposedCopperTrapdoor,
Block::WaxedWeatheredCopperTrapdoor,
Block::WaxedOxidizedCopperTrapdoor,
Block::CopperDoor,
Block::ExposedCopperDoor,
Block::WeatheredCopperDoor,
Block::OxidizedCopperDoor,
Block::WaxedCopperDoor,
Block::WaxedExposedCopperDoor,
Block::WaxedWeatheredCopperDoor,
Block::WaxedOxidizedCopperDoor,
])
});
pub static NETHER_CARVER_REPLACEABLES: Lazy<HashSet<Block>> = Lazy::new(|| {
@ -2629,6 +2715,7 @@ pub static NETHER_CARVER_REPLACEABLES: Lazy<HashSet<Block>> = Lazy::new(|| {
Block::Mycelium,
Block::RootedDirt,
Block::MossBlock,
Block::PaleMossBlock,
Block::Mud,
Block::MuddyMangroveRoots,
Block::CrimsonNylium,
@ -2675,7 +2762,6 @@ pub static OVERWORLD_CARVER_REPLACEABLES: Lazy<HashSet<Block>> = Lazy::new(|| {
Block::Sandstone,
Block::RedSandstone,
Block::Calcite,
Block::Snow,
Block::PackedIce,
Block::RawIronBlock,
Block::RawCopperBlock,
@ -2692,6 +2778,7 @@ pub static OVERWORLD_CARVER_REPLACEABLES: Lazy<HashSet<Block>> = Lazy::new(|| {
Block::Mycelium,
Block::RootedDirt,
Block::MossBlock,
Block::PaleMossBlock,
Block::Mud,
Block::MuddyMangroveRoots,
Block::Sand,
@ -2719,6 +2806,9 @@ pub static OVERWORLD_CARVER_REPLACEABLES: Lazy<HashSet<Block>> = Lazy::new(|| {
Block::DeepslateIronOre,
Block::CopperOre,
Block::DeepslateCopperOre,
Block::Snow,
Block::SnowBlock,
Block::PowderSnow,
])
});
pub static OVERWORLD_NATURAL_LOGS: Lazy<HashSet<Block>> = Lazy::new(|| {
@ -2729,10 +2819,19 @@ pub static OVERWORLD_NATURAL_LOGS: Lazy<HashSet<Block>> = Lazy::new(|| {
Block::JungleLog,
Block::SpruceLog,
Block::DarkOakLog,
Block::PaleOakLog,
Block::MangroveLog,
Block::CherryLog,
])
});
pub static PALE_OAK_LOGS: Lazy<HashSet<Block>> = Lazy::new(|| {
HashSet::from_iter(vec![
Block::PaleOakLog,
Block::PaleOakWood,
Block::StrippedPaleOakLog,
Block::StrippedPaleOakWood,
])
});
pub static PARROTS_SPAWNABLE_ON: Lazy<HashSet<Block>> = Lazy::new(|| {
HashSet::from_iter(vec![
Block::GrassBlock,
@ -2740,6 +2839,7 @@ pub static PARROTS_SPAWNABLE_ON: Lazy<HashSet<Block>> = Lazy::new(|| {
Block::JungleLeaves,
Block::OakLeaves,
Block::SpruceLeaves,
Block::PaleOakLeaves,
Block::DarkOakLeaves,
Block::AcaciaLeaves,
Block::BirchLeaves,
@ -2759,6 +2859,10 @@ pub static PARROTS_SPAWNABLE_ON: Lazy<HashSet<Block>> = Lazy::new(|| {
Block::DarkOakWood,
Block::StrippedDarkOakLog,
Block::StrippedDarkOakWood,
Block::PaleOakLog,
Block::PaleOakWood,
Block::StrippedPaleOakLog,
Block::StrippedPaleOakWood,
Block::OakLog,
Block::OakWood,
Block::StrippedOakLog,
@ -2806,6 +2910,7 @@ pub static PLANKS: Lazy<HashSet<Block>> = Lazy::new(|| {
Block::JunglePlanks,
Block::AcaciaPlanks,
Block::DarkOakPlanks,
Block::PaleOakPlanks,
Block::CrimsonPlanks,
Block::WarpedPlanks,
Block::MangrovePlanks,
@ -2832,6 +2937,7 @@ pub static PRESSURE_PLATES: Lazy<HashSet<Block>> = Lazy::new(|| {
Block::JunglePressurePlate,
Block::AcaciaPressurePlate,
Block::DarkOakPressurePlate,
Block::PaleOakPressurePlate,
Block::CrimsonPressurePlate,
Block::WarpedPressurePlate,
Block::MangrovePressurePlate,
@ -2882,6 +2988,7 @@ pub static REPLACEABLE: Lazy<HashSet<Block>> = Lazy::new(|| {
Block::Snow,
Block::Vine,
Block::GlowLichen,
Block::ResinClump,
Block::Light,
Block::TallGrass,
Block::LargeFern,
@ -2897,6 +3004,7 @@ pub static REPLACEABLE: Lazy<HashSet<Block>> = Lazy::new(|| {
});
pub static REPLACEABLE_BY_TREES: Lazy<HashSet<Block>> = Lazy::new(|| {
HashSet::from_iter(vec![
Block::PaleMossCarpet,
Block::ShortGrass,
Block::Fern,
Block::DeadBush,
@ -2919,6 +3027,7 @@ pub static REPLACEABLE_BY_TREES: Lazy<HashSet<Block>> = Lazy::new(|| {
Block::JungleLeaves,
Block::OakLeaves,
Block::SpruceLeaves,
Block::PaleOakLeaves,
Block::DarkOakLeaves,
Block::AcaciaLeaves,
Block::BirchLeaves,
@ -2926,6 +3035,22 @@ pub static REPLACEABLE_BY_TREES: Lazy<HashSet<Block>> = Lazy::new(|| {
Block::FloweringAzaleaLeaves,
Block::MangroveLeaves,
Block::CherryLeaves,
Block::Dandelion,
Block::OpenEyeblossom,
Block::Poppy,
Block::BlueOrchid,
Block::Allium,
Block::AzureBluet,
Block::RedTulip,
Block::OrangeTulip,
Block::WhiteTulip,
Block::PinkTulip,
Block::OxeyeDaisy,
Block::Cornflower,
Block::LilyOfTheValley,
Block::WitherRose,
Block::Torchflower,
Block::ClosedEyeblossom,
])
});
pub static SAND: Lazy<HashSet<Block>> = Lazy::new(|| {
@ -2944,6 +3069,7 @@ pub static SAPLINGS: Lazy<HashSet<Block>> = Lazy::new(|| {
Block::JungleSapling,
Block::AcaciaSapling,
Block::DarkOakSapling,
Block::PaleOakSapling,
Block::Azalea,
Block::FloweringAzalea,
Block::MangrovePropagule,
@ -2977,6 +3103,7 @@ pub static SCULK_REPLACEABLE: Lazy<HashSet<Block>> = Lazy::new(|| {
Block::Mycelium,
Block::RootedDirt,
Block::MossBlock,
Block::PaleMossBlock,
Block::Mud,
Block::MuddyMangroveRoots,
Block::Terracotta,
@ -3036,6 +3163,7 @@ pub static SCULK_REPLACEABLE_WORLD_GEN: Lazy<HashSet<Block>> = Lazy::new(|| {
Block::Mycelium,
Block::RootedDirt,
Block::MossBlock,
Block::PaleMossBlock,
Block::Mud,
Block::MuddyMangroveRoots,
Block::Terracotta,
@ -3091,6 +3219,7 @@ pub static SIGNS: Lazy<HashSet<Block>> = Lazy::new(|| {
Block::AcaciaSign,
Block::JungleSign,
Block::DarkOakSign,
Block::PaleOakSign,
Block::CrimsonSign,
Block::WarpedSign,
Block::MangroveSign,
@ -3102,6 +3231,7 @@ pub static SIGNS: Lazy<HashSet<Block>> = Lazy::new(|| {
Block::AcaciaWallSign,
Block::JungleWallSign,
Block::DarkOakWallSign,
Block::PaleOakWallSign,
Block::CrimsonWallSign,
Block::WarpedWallSign,
Block::MangroveWallSign,
@ -3160,12 +3290,14 @@ pub static SLABS: Lazy<HashSet<Block>> = Lazy::new(|| {
Block::TuffSlab,
Block::PolishedTuffSlab,
Block::TuffBrickSlab,
Block::ResinBrickSlab,
Block::OakSlab,
Block::SpruceSlab,
Block::BirchSlab,
Block::JungleSlab,
Block::AcaciaSlab,
Block::DarkOakSlab,
Block::PaleOakSlab,
Block::CrimsonSlab,
Block::WarpedSlab,
Block::MangroveSlab,
@ -3178,6 +3310,7 @@ pub static SMALL_DRIPLEAF_PLACEABLE: Lazy<HashSet<Block>> =
pub static SMALL_FLOWERS: Lazy<HashSet<Block>> = Lazy::new(|| {
HashSet::from_iter(vec![
Block::Dandelion,
Block::OpenEyeblossom,
Block::Poppy,
Block::BlueOrchid,
Block::Allium,
@ -3191,6 +3324,7 @@ pub static SMALL_FLOWERS: Lazy<HashSet<Block>> = Lazy::new(|| {
Block::LilyOfTheValley,
Block::WitherRose,
Block::Torchflower,
Block::ClosedEyeblossom,
])
});
pub static SMELTS_TO_GLASS: Lazy<HashSet<Block>> =
@ -3209,6 +3343,7 @@ pub static SNAPS_GOAT_HORN: Lazy<HashSet<Block>> = Lazy::new(|| {
Block::JungleLog,
Block::SpruceLog,
Block::DarkOakLog,
Block::PaleOakLog,
Block::MangroveLog,
Block::CherryLog,
])
@ -3221,6 +3356,7 @@ pub static SNIFFER_DIGGABLE_BLOCK: Lazy<HashSet<Block>> = Lazy::new(|| {
Block::CoarseDirt,
Block::RootedDirt,
Block::MossBlock,
Block::PaleMossBlock,
Block::Mud,
Block::MuddyMangroveRoots,
])
@ -3292,12 +3428,14 @@ pub static STAIRS: Lazy<HashSet<Block>> = Lazy::new(|| {
Block::TuffStairs,
Block::PolishedTuffStairs,
Block::TuffBrickStairs,
Block::ResinBrickStairs,
Block::OakStairs,
Block::SpruceStairs,
Block::BirchStairs,
Block::JungleStairs,
Block::AcaciaStairs,
Block::DarkOakStairs,
Block::PaleOakStairs,
Block::CrimsonStairs,
Block::WarpedStairs,
Block::MangroveStairs,
@ -3313,6 +3451,7 @@ pub static STANDING_SIGNS: Lazy<HashSet<Block>> = Lazy::new(|| {
Block::AcaciaSign,
Block::JungleSign,
Block::DarkOakSign,
Block::PaleOakSign,
Block::CrimsonSign,
Block::WarpedSign,
Block::MangroveSign,
@ -3377,7 +3516,6 @@ pub static SWORD_EFFICIENT: Lazy<HashSet<Block>> = Lazy::new(|| {
Block::CaveVines,
Block::CaveVinesPlant,
Block::SporeBlossom,
Block::MossCarpet,
Block::PinkPetals,
Block::BigDripleaf,
Block::BigDripleafStem,
@ -3397,6 +3535,7 @@ pub static SWORD_EFFICIENT: Lazy<HashSet<Block>> = Lazy::new(|| {
Block::JungleLeaves,
Block::OakLeaves,
Block::SpruceLeaves,
Block::PaleOakLeaves,
Block::DarkOakLeaves,
Block::AcaciaLeaves,
Block::BirchLeaves,
@ -3410,24 +3549,11 @@ pub static SWORD_EFFICIENT: Lazy<HashSet<Block>> = Lazy::new(|| {
Block::JungleSapling,
Block::AcaciaSapling,
Block::DarkOakSapling,
Block::PaleOakSapling,
Block::Azalea,
Block::FloweringAzalea,
Block::MangrovePropagule,
Block::CherrySapling,
Block::Dandelion,
Block::Poppy,
Block::BlueOrchid,
Block::Allium,
Block::AzureBluet,
Block::RedTulip,
Block::OrangeTulip,
Block::WhiteTulip,
Block::PinkTulip,
Block::OxeyeDaisy,
Block::Cornflower,
Block::LilyOfTheValley,
Block::WitherRose,
Block::Torchflower,
Block::Beetroots,
Block::Carrots,
Block::Potatoes,
@ -3438,15 +3564,6 @@ pub static SWORD_EFFICIENT: Lazy<HashSet<Block>> = Lazy::new(|| {
Block::PitcherCrop,
])
});
pub static TALL_FLOWERS: Lazy<HashSet<Block>> = Lazy::new(|| {
HashSet::from_iter(vec![
Block::Sunflower,
Block::Lilac,
Block::Peony,
Block::RoseBush,
Block::PitcherPlant,
])
});
pub static TERRACOTTA: Lazy<HashSet<Block>> = Lazy::new(|| {
HashSet::from_iter(vec![
Block::Terracotta,
@ -3484,6 +3601,7 @@ pub static TRAPDOORS: Lazy<HashSet<Block>> = Lazy::new(|| {
Block::AcaciaTrapdoor,
Block::BirchTrapdoor,
Block::DarkOakTrapdoor,
Block::PaleOakTrapdoor,
Block::JungleTrapdoor,
Block::OakTrapdoor,
Block::SpruceTrapdoor,
@ -3519,6 +3637,7 @@ pub static UNSTABLE_BOTTOM_CENTER: Lazy<HashSet<Block>> = Lazy::new(|| {
Block::AcaciaFenceGate,
Block::BirchFenceGate,
Block::DarkOakFenceGate,
Block::PaleOakFenceGate,
Block::JungleFenceGate,
Block::OakFenceGate,
Block::SpruceFenceGate,
@ -3551,6 +3670,7 @@ pub static WALL_HANGING_SIGNS: Lazy<HashSet<Block>> = Lazy::new(|| {
Block::CherryWallHangingSign,
Block::JungleWallHangingSign,
Block::DarkOakWallHangingSign,
Block::PaleOakWallHangingSign,
Block::CrimsonWallHangingSign,
Block::WarpedWallHangingSign,
Block::MangroveWallHangingSign,
@ -3603,6 +3723,7 @@ pub static WALL_POST_OVERRIDE: Lazy<HashSet<Block>> = Lazy::new(|| {
Block::AcaciaSign,
Block::JungleSign,
Block::DarkOakSign,
Block::PaleOakSign,
Block::CrimsonSign,
Block::WarpedSign,
Block::MangroveSign,
@ -3614,6 +3735,7 @@ pub static WALL_POST_OVERRIDE: Lazy<HashSet<Block>> = Lazy::new(|| {
Block::AcaciaWallSign,
Block::JungleWallSign,
Block::DarkOakWallSign,
Block::PaleOakWallSign,
Block::CrimsonWallSign,
Block::WarpedWallSign,
Block::MangroveWallSign,
@ -3625,6 +3747,7 @@ pub static WALL_POST_OVERRIDE: Lazy<HashSet<Block>> = Lazy::new(|| {
Block::JunglePressurePlate,
Block::AcaciaPressurePlate,
Block::DarkOakPressurePlate,
Block::PaleOakPressurePlate,
Block::CrimsonPressurePlate,
Block::WarpedPressurePlate,
Block::MangrovePressurePlate,
@ -3642,6 +3765,7 @@ pub static WALL_SIGNS: Lazy<HashSet<Block>> = Lazy::new(|| {
Block::AcaciaWallSign,
Block::JungleWallSign,
Block::DarkOakWallSign,
Block::PaleOakWallSign,
Block::CrimsonWallSign,
Block::WarpedWallSign,
Block::MangroveWallSign,
@ -3676,6 +3800,7 @@ pub static WALLS: Lazy<HashSet<Block>> = Lazy::new(|| {
Block::TuffWall,
Block::PolishedTuffWall,
Block::TuffBrickWall,
Block::ResinBrickWall,
])
});
pub static WARPED_STEMS: Lazy<HashSet<Block>> = Lazy::new(|| {
@ -3724,6 +3849,7 @@ pub static WOODEN_BUTTONS: Lazy<HashSet<Block>> = Lazy::new(|| {
Block::JungleButton,
Block::AcaciaButton,
Block::DarkOakButton,
Block::PaleOakButton,
Block::CrimsonButton,
Block::WarpedButton,
Block::MangroveButton,
@ -3739,6 +3865,7 @@ pub static WOODEN_DOORS: Lazy<HashSet<Block>> = Lazy::new(|| {
Block::JungleDoor,
Block::AcaciaDoor,
Block::DarkOakDoor,
Block::PaleOakDoor,
Block::CrimsonDoor,
Block::WarpedDoor,
Block::MangroveDoor,
@ -3751,6 +3878,7 @@ pub static WOODEN_FENCES: Lazy<HashSet<Block>> = Lazy::new(|| {
Block::OakFence,
Block::AcaciaFence,
Block::DarkOakFence,
Block::PaleOakFence,
Block::SpruceFence,
Block::BirchFence,
Block::JungleFence,
@ -3769,6 +3897,7 @@ pub static WOODEN_PRESSURE_PLATES: Lazy<HashSet<Block>> = Lazy::new(|| {
Block::JunglePressurePlate,
Block::AcaciaPressurePlate,
Block::DarkOakPressurePlate,
Block::PaleOakPressurePlate,
Block::CrimsonPressurePlate,
Block::WarpedPressurePlate,
Block::MangrovePressurePlate,
@ -3784,6 +3913,7 @@ pub static WOODEN_SLABS: Lazy<HashSet<Block>> = Lazy::new(|| {
Block::JungleSlab,
Block::AcaciaSlab,
Block::DarkOakSlab,
Block::PaleOakSlab,
Block::CrimsonSlab,
Block::WarpedSlab,
Block::MangroveSlab,
@ -3799,6 +3929,7 @@ pub static WOODEN_STAIRS: Lazy<HashSet<Block>> = Lazy::new(|| {
Block::JungleStairs,
Block::AcaciaStairs,
Block::DarkOakStairs,
Block::PaleOakStairs,
Block::CrimsonStairs,
Block::WarpedStairs,
Block::MangroveStairs,
@ -3811,6 +3942,7 @@ pub static WOODEN_TRAPDOORS: Lazy<HashSet<Block>> = Lazy::new(|| {
Block::AcaciaTrapdoor,
Block::BirchTrapdoor,
Block::DarkOakTrapdoor,
Block::PaleOakTrapdoor,
Block::JungleTrapdoor,
Block::OakTrapdoor,
Block::SpruceTrapdoor,

View file

@ -85,14 +85,8 @@ pub static BEDS: Lazy<HashSet<Item>> = Lazy::new(|| {
});
pub static BEE_FOOD: Lazy<HashSet<Item>> = Lazy::new(|| {
HashSet::from_iter(vec![
Item::FloweringAzaleaLeaves,
Item::FloweringAzalea,
Item::MangrovePropagule,
Item::CherryLeaves,
Item::PinkPetals,
Item::ChorusFlower,
Item::SporeBlossom,
Item::Dandelion,
Item::OpenEyeblossom,
Item::Poppy,
Item::BlueOrchid,
Item::Allium,
@ -111,6 +105,13 @@ pub static BEE_FOOD: Lazy<HashSet<Item>> = Lazy::new(|| {
Item::Peony,
Item::RoseBush,
Item::PitcherPlant,
Item::FloweringAzaleaLeaves,
Item::FloweringAzalea,
Item::MangrovePropagule,
Item::CherryLeaves,
Item::PinkPetals,
Item::ChorusFlower,
Item::SporeBlossom,
])
});
pub static BIRCH_LOGS: Lazy<HashSet<Item>> = Lazy::new(|| {
@ -129,6 +130,7 @@ pub static BOATS: Lazy<HashSet<Item>> = Lazy::new(|| {
Item::JungleBoat,
Item::AcaciaBoat,
Item::DarkOakBoat,
Item::PaleOakBoat,
Item::MangroveBoat,
Item::BambooRaft,
Item::CherryBoat,
@ -138,6 +140,7 @@ pub static BOATS: Lazy<HashSet<Item>> = Lazy::new(|| {
Item::JungleChestBoat,
Item::AcaciaChestBoat,
Item::DarkOakChestBoat,
Item::PaleOakChestBoat,
Item::MangroveChestBoat,
Item::BambooChestRaft,
Item::CherryChestBoat,
@ -219,6 +222,7 @@ pub static BUTTONS: Lazy<HashSet<Item>> = Lazy::new(|| {
Item::JungleButton,
Item::AcaciaButton,
Item::DarkOakButton,
Item::PaleOakButton,
Item::CrimsonButton,
Item::WarpedButton,
Item::MangroveButton,
@ -278,6 +282,7 @@ pub static CHEST_BOATS: Lazy<HashSet<Item>> = Lazy::new(|| {
Item::JungleChestBoat,
Item::AcaciaChestBoat,
Item::DarkOakChestBoat,
Item::PaleOakChestBoat,
Item::MangroveChestBoat,
Item::BambooChestRaft,
Item::CherryChestBoat,
@ -314,6 +319,7 @@ pub static COMPLETES_FIND_TREE_TUTORIAL: Lazy<HashSet<Item>> = Lazy::new(|| {
Item::JungleLeaves,
Item::OakLeaves,
Item::SpruceLeaves,
Item::PaleOakLeaves,
Item::DarkOakLeaves,
Item::AcaciaLeaves,
Item::BirchLeaves,
@ -335,6 +341,10 @@ pub static COMPLETES_FIND_TREE_TUTORIAL: Lazy<HashSet<Item>> = Lazy::new(|| {
Item::DarkOakWood,
Item::StrippedDarkOakLog,
Item::StrippedDarkOakWood,
Item::PaleOakLog,
Item::PaleOakWood,
Item::StrippedPaleOakLog,
Item::StrippedPaleOakWood,
Item::OakLog,
Item::OakWood,
Item::StrippedOakLog,
@ -506,6 +516,7 @@ pub static DIRT: Lazy<HashSet<Item>> = Lazy::new(|| {
Item::Mycelium,
Item::RootedDirt,
Item::MossBlock,
Item::PaleMossBlock,
Item::Mud,
Item::MuddyMangroveRoots,
])
@ -527,6 +538,7 @@ pub static DOORS: Lazy<HashSet<Item>> = Lazy::new(|| {
Item::JungleDoor,
Item::AcaciaDoor,
Item::DarkOakDoor,
Item::PaleOakDoor,
Item::CrimsonDoor,
Item::WarpedDoor,
Item::MangroveDoor,
@ -534,6 +546,8 @@ pub static DOORS: Lazy<HashSet<Item>> = Lazy::new(|| {
Item::CherryDoor,
])
});
pub static DROWNED_PREFERRED_WEAPONS: Lazy<HashSet<Item>> =
Lazy::new(|| HashSet::from_iter(vec![Item::Trident]));
pub static DUPLICATES_ALLAYS: Lazy<HashSet<Item>> =
Lazy::new(|| HashSet::from_iter(vec![Item::AmethystShard]));
pub static DYEABLE: Lazy<HashSet<Item>> = Lazy::new(|| {
@ -932,6 +946,7 @@ pub static FENCE_GATES: Lazy<HashSet<Item>> = Lazy::new(|| {
Item::AcaciaFenceGate,
Item::BirchFenceGate,
Item::DarkOakFenceGate,
Item::PaleOakFenceGate,
Item::JungleFenceGate,
Item::OakFenceGate,
Item::SpruceFenceGate,
@ -948,6 +963,7 @@ pub static FENCES: Lazy<HashSet<Item>> = Lazy::new(|| {
Item::OakFence,
Item::AcaciaFence,
Item::DarkOakFence,
Item::PaleOakFence,
Item::SpruceFence,
Item::BirchFence,
Item::JungleFence,
@ -968,36 +984,6 @@ pub static FISHES: Lazy<HashSet<Item>> = Lazy::new(|| {
Item::TropicalFish,
])
});
pub static FLOWERS: Lazy<HashSet<Item>> = Lazy::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: Lazy<HashSet<Item>> = Lazy::new(|| {
HashSet::from_iter(vec![
Item::LeatherBoots,
@ -1043,6 +1029,7 @@ pub static HANGING_SIGNS: Lazy<HashSet<Item>> = Lazy::new(|| {
Item::CherryHangingSign,
Item::JungleHangingSign,
Item::DarkOakHangingSign,
Item::PaleOakHangingSign,
Item::CrimsonHangingSign,
Item::WarpedHangingSign,
Item::MangroveHangingSign,
@ -1111,6 +1098,7 @@ pub static LEAVES: Lazy<HashSet<Item>> = Lazy::new(|| {
Item::JungleLeaves,
Item::OakLeaves,
Item::SpruceLeaves,
Item::PaleOakLeaves,
Item::DarkOakLeaves,
Item::AcaciaLeaves,
Item::BirchLeaves,
@ -1150,6 +1138,10 @@ pub static LOGS: Lazy<HashSet<Item>> = Lazy::new(|| {
Item::DarkOakWood,
Item::StrippedDarkOakLog,
Item::StrippedDarkOakWood,
Item::PaleOakLog,
Item::PaleOakWood,
Item::StrippedPaleOakLog,
Item::StrippedPaleOakWood,
Item::OakLog,
Item::OakWood,
Item::StrippedOakLog,
@ -1186,6 +1178,10 @@ pub static LOGS_THAT_BURN: Lazy<HashSet<Item>> = Lazy::new(|| {
Item::DarkOakWood,
Item::StrippedDarkOakLog,
Item::StrippedDarkOakWood,
Item::PaleOakLog,
Item::PaleOakWood,
Item::StrippedPaleOakLog,
Item::StrippedPaleOakWood,
Item::OakLog,
Item::OakWood,
Item::StrippedOakLog,
@ -1298,6 +1294,14 @@ pub static OAK_LOGS: Lazy<HashSet<Item>> = Lazy::new(|| {
});
pub static OCELOT_FOOD: Lazy<HashSet<Item>> =
Lazy::new(|| HashSet::from_iter(vec![Item::Cod, Item::Salmon]));
pub static PALE_OAK_LOGS: Lazy<HashSet<Item>> = Lazy::new(|| {
HashSet::from_iter(vec![
Item::PaleOakLog,
Item::PaleOakWood,
Item::StrippedPaleOakLog,
Item::StrippedPaleOakWood,
])
});
pub static PANDA_EATS_FROM_GROUND: Lazy<HashSet<Item>> =
Lazy::new(|| HashSet::from_iter(vec![Item::Cake, Item::Bamboo]));
pub static PANDA_FOOD: Lazy<HashSet<Item>> = Lazy::new(|| HashSet::from_iter(vec![Item::Bamboo]));
@ -1356,6 +1360,8 @@ pub static PIGLIN_LOVED: Lazy<HashSet<Item>> = Lazy::new(|| {
Item::DeepslateGoldOre,
])
});
pub static PIGLIN_PREFERRED_WEAPONS: Lazy<HashSet<Item>> =
Lazy::new(|| HashSet::from_iter(vec![Item::Crossbow]));
pub static PIGLIN_REPELLENTS: Lazy<HashSet<Item>> =
Lazy::new(|| HashSet::from_iter(vec![Item::SoulTorch, Item::SoulLantern, Item::SoulCampfire]));
pub static PIGLIN_SAFE_ARMOR: Lazy<HashSet<Item>> = Lazy::new(|| {
@ -1366,6 +1372,8 @@ pub static PIGLIN_SAFE_ARMOR: Lazy<HashSet<Item>> = Lazy::new(|| {
Item::GoldenBoots,
])
});
pub static PILLAGER_PREFERRED_WEAPONS: Lazy<HashSet<Item>> =
Lazy::new(|| HashSet::from_iter(vec![Item::Crossbow]));
pub static PLANKS: Lazy<HashSet<Item>> = Lazy::new(|| {
HashSet::from_iter(vec![
Item::OakPlanks,
@ -1374,6 +1382,7 @@ pub static PLANKS: Lazy<HashSet<Item>> = Lazy::new(|| {
Item::JunglePlanks,
Item::AcaciaPlanks,
Item::DarkOakPlanks,
Item::PaleOakPlanks,
Item::CrimsonPlanks,
Item::WarpedPlanks,
Item::MangrovePlanks,
@ -1425,6 +1434,7 @@ pub static SAPLINGS: Lazy<HashSet<Item>> = Lazy::new(|| {
Item::JungleSapling,
Item::AcaciaSapling,
Item::DarkOakSapling,
Item::PaleOakSapling,
Item::Azalea,
Item::FloweringAzalea,
Item::MangrovePropagule,
@ -1471,6 +1481,7 @@ pub static SIGNS: Lazy<HashSet<Item>> = Lazy::new(|| {
Item::AcaciaSign,
Item::JungleSign,
Item::DarkOakSign,
Item::PaleOakSign,
Item::CrimsonSign,
Item::WarpedSign,
Item::MangroveSign,
@ -1478,6 +1489,8 @@ pub static SIGNS: Lazy<HashSet<Item>> = Lazy::new(|| {
Item::CherrySign,
])
});
pub static SKELETON_PREFERRED_WEAPONS: Lazy<HashSet<Item>> =
Lazy::new(|| HashSet::from_iter(vec![Item::Bow]));
pub static SKULLS: Lazy<HashSet<Item>> = Lazy::new(|| {
HashSet::from_iter(vec![
Item::PlayerHead,
@ -1540,12 +1553,14 @@ pub static SLABS: Lazy<HashSet<Item>> = Lazy::new(|| {
Item::TuffSlab,
Item::PolishedTuffSlab,
Item::TuffBrickSlab,
Item::ResinBrickSlab,
Item::OakSlab,
Item::SpruceSlab,
Item::BirchSlab,
Item::JungleSlab,
Item::AcaciaSlab,
Item::DarkOakSlab,
Item::PaleOakSlab,
Item::CrimsonSlab,
Item::WarpedSlab,
Item::MangroveSlab,
@ -1556,6 +1571,7 @@ pub static SLABS: Lazy<HashSet<Item>> = Lazy::new(|| {
pub static SMALL_FLOWERS: Lazy<HashSet<Item>> = Lazy::new(|| {
HashSet::from_iter(vec![
Item::Dandelion,
Item::OpenEyeblossom,
Item::Poppy,
Item::BlueOrchid,
Item::Allium,
@ -1569,6 +1585,7 @@ pub static SMALL_FLOWERS: Lazy<HashSet<Item>> = Lazy::new(|| {
Item::LilyOfTheValley,
Item::WitherRose,
Item::Torchflower,
Item::ClosedEyeblossom,
])
});
pub static SMELTS_TO_GLASS: Lazy<HashSet<Item>> =
@ -1632,12 +1649,14 @@ pub static STAIRS: Lazy<HashSet<Item>> = Lazy::new(|| {
Item::TuffStairs,
Item::PolishedTuffStairs,
Item::TuffBrickStairs,
Item::ResinBrickStairs,
Item::OakStairs,
Item::SpruceStairs,
Item::BirchStairs,
Item::JungleStairs,
Item::AcaciaStairs,
Item::DarkOakStairs,
Item::PaleOakStairs,
Item::CrimsonStairs,
Item::WarpedStairs,
Item::MangroveStairs,
@ -1683,15 +1702,6 @@ pub static SWORDS: Lazy<HashSet<Item>> = Lazy::new(|| {
Item::IronSword,
])
});
pub static TALL_FLOWERS: Lazy<HashSet<Item>> = Lazy::new(|| {
HashSet::from_iter(vec![
Item::Sunflower,
Item::Lilac,
Item::Peony,
Item::RoseBush,
Item::PitcherPlant,
])
});
pub static TERRACOTTA: Lazy<HashSet<Item>> = Lazy::new(|| {
HashSet::from_iter(vec![
Item::Terracotta,
@ -1727,6 +1737,7 @@ pub static TRAPDOORS: Lazy<HashSet<Item>> = Lazy::new(|| {
Item::AcaciaTrapdoor,
Item::BirchTrapdoor,
Item::DarkOakTrapdoor,
Item::PaleOakTrapdoor,
Item::JungleTrapdoor,
Item::OakTrapdoor,
Item::SpruceTrapdoor,
@ -1739,38 +1750,17 @@ pub static TRAPDOORS: Lazy<HashSet<Item>> = Lazy::new(|| {
});
pub static TRIM_MATERIALS: Lazy<HashSet<Item>> = Lazy::new(|| {
HashSet::from_iter(vec![
Item::IronIngot,
Item::CopperIngot,
Item::GoldIngot,
Item::LapisLazuli,
Item::Emerald,
Item::Diamond,
Item::NetheriteIngot,
Item::Redstone,
Item::Quartz,
Item::AmethystShard,
])
});
pub static TRIM_TEMPLATES: Lazy<HashSet<Item>> = Lazy::new(|| {
HashSet::from_iter(vec![
Item::WardArmorTrimSmithingTemplate,
Item::SpireArmorTrimSmithingTemplate,
Item::CoastArmorTrimSmithingTemplate,
Item::EyeArmorTrimSmithingTemplate,
Item::DuneArmorTrimSmithingTemplate,
Item::WildArmorTrimSmithingTemplate,
Item::RibArmorTrimSmithingTemplate,
Item::TideArmorTrimSmithingTemplate,
Item::SentryArmorTrimSmithingTemplate,
Item::VexArmorTrimSmithingTemplate,
Item::SnoutArmorTrimSmithingTemplate,
Item::WayfinderArmorTrimSmithingTemplate,
Item::ShaperArmorTrimSmithingTemplate,
Item::SilenceArmorTrimSmithingTemplate,
Item::RaiserArmorTrimSmithingTemplate,
Item::HostArmorTrimSmithingTemplate,
Item::FlowArmorTrimSmithingTemplate,
Item::BoltArmorTrimSmithingTemplate,
Item::CopperIngot,
Item::Diamond,
Item::Emerald,
Item::GoldIngot,
Item::IronIngot,
Item::LapisLazuli,
Item::NetheriteIngot,
Item::Quartz,
Item::Redstone,
Item::ResinBrick,
])
});
pub static TRIMMABLE_ARMOR: Lazy<HashSet<Item>> = Lazy::new(|| {
@ -1854,6 +1844,7 @@ pub static WALLS: Lazy<HashSet<Item>> = Lazy::new(|| {
Item::TuffWall,
Item::PolishedTuffWall,
Item::TuffBrickWall,
Item::ResinBrickWall,
])
});
pub static WARPED_STEMS: Lazy<HashSet<Item>> = Lazy::new(|| {
@ -1866,6 +1857,8 @@ pub static WARPED_STEMS: Lazy<HashSet<Item>> = Lazy::new(|| {
});
pub static WART_BLOCKS: Lazy<HashSet<Item>> =
Lazy::new(|| HashSet::from_iter(vec![Item::NetherWartBlock, Item::WarpedWartBlock]));
pub static WITHER_SKELETON_DISLIKED_WEAPONS: Lazy<HashSet<Item>> =
Lazy::new(|| HashSet::from_iter(vec![Item::Bow, Item::Crossbow]));
pub static WOLF_FOOD: Lazy<HashSet<Item>> = Lazy::new(|| {
HashSet::from_iter(vec![
Item::Cod,
@ -1896,6 +1889,7 @@ pub static WOODEN_BUTTONS: Lazy<HashSet<Item>> = Lazy::new(|| {
Item::JungleButton,
Item::AcaciaButton,
Item::DarkOakButton,
Item::PaleOakButton,
Item::CrimsonButton,
Item::WarpedButton,
Item::MangroveButton,
@ -1911,6 +1905,7 @@ pub static WOODEN_DOORS: Lazy<HashSet<Item>> = Lazy::new(|| {
Item::JungleDoor,
Item::AcaciaDoor,
Item::DarkOakDoor,
Item::PaleOakDoor,
Item::CrimsonDoor,
Item::WarpedDoor,
Item::MangroveDoor,
@ -1923,6 +1918,7 @@ pub static WOODEN_FENCES: Lazy<HashSet<Item>> = Lazy::new(|| {
Item::OakFence,
Item::AcaciaFence,
Item::DarkOakFence,
Item::PaleOakFence,
Item::SpruceFence,
Item::BirchFence,
Item::JungleFence,
@ -1941,6 +1937,7 @@ pub static WOODEN_PRESSURE_PLATES: Lazy<HashSet<Item>> = Lazy::new(|| {
Item::JunglePressurePlate,
Item::AcaciaPressurePlate,
Item::DarkOakPressurePlate,
Item::PaleOakPressurePlate,
Item::CrimsonPressurePlate,
Item::WarpedPressurePlate,
Item::MangrovePressurePlate,
@ -1956,6 +1953,7 @@ pub static WOODEN_SLABS: Lazy<HashSet<Item>> = Lazy::new(|| {
Item::JungleSlab,
Item::AcaciaSlab,
Item::DarkOakSlab,
Item::PaleOakSlab,
Item::CrimsonSlab,
Item::WarpedSlab,
Item::MangroveSlab,
@ -1971,6 +1969,7 @@ pub static WOODEN_STAIRS: Lazy<HashSet<Item>> = Lazy::new(|| {
Item::JungleStairs,
Item::AcaciaStairs,
Item::DarkOakStairs,
Item::PaleOakStairs,
Item::CrimsonStairs,
Item::WarpedStairs,
Item::MangroveStairs,
@ -1986,6 +1985,7 @@ pub static WOODEN_TOOL_MATERIALS: Lazy<HashSet<Item>> = Lazy::new(|| {
Item::JunglePlanks,
Item::AcaciaPlanks,
Item::DarkOakPlanks,
Item::PaleOakPlanks,
Item::CrimsonPlanks,
Item::WarpedPlanks,
Item::MangrovePlanks,
@ -1998,6 +1998,7 @@ pub static WOODEN_TRAPDOORS: Lazy<HashSet<Item>> = Lazy::new(|| {
Item::AcaciaTrapdoor,
Item::BirchTrapdoor,
Item::DarkOakTrapdoor,
Item::PaleOakTrapdoor,
Item::JungleTrapdoor,
Item::OakTrapdoor,
Item::SpruceTrapdoor,

View file

@ -11,7 +11,9 @@ version = "0.10.3+mc1.21.1"
[dependencies]
azalea-block = { path = "../azalea-block", default-features = false, version = "0.10.0" }
azalea-buf = { path = "../azalea-buf", version = "0.10.0" }
azalea-core = { path = "../azalea-core", version = "0.10.0", features = ["bevy_ecs"] }
azalea-core = { path = "../azalea-core", version = "0.10.0", features = [
"bevy_ecs",
] }
azalea-registry = { path = "../azalea-registry", version = "0.10.0" }
bevy_ecs = { workspace = true }
derive_more = { workspace = true, features = ["deref", "deref_mut"] }

View file

@ -1,10 +1,11 @@
//! The goals that a pathfinder can try to reach.
use std::f32::consts::SQRT_2;
use azalea_core::position::{BlockPos, Vec3};
use azalea_world::ChunkStorage;
#[cfg(feature = "serde")]
use serde::{Deserialize, Serialize};
use std::f32::consts::SQRT_2;
use super::costs::{COST_HEURISTIC, FALL_N_BLOCKS_COST, JUMP_ONE_BLOCK_COST};