From b55b8698186d6eb973aaa3c9e759c25aaba7e891 Mon Sep 17 00:00:00 2001 From: mat Date: Tue, 23 Apr 2024 15:32:37 +0000 Subject: [PATCH] 1.20.5 --- README.md | 2 +- azalea-protocol/src/packets/mod.rs | 2 +- azalea-registry/src/tags/blocks.rs | 4304 ++++++++++++++-------------- azalea-registry/src/tags/items.rs | 2456 ++++++++-------- 4 files changed, 3382 insertions(+), 3382 deletions(-) diff --git a/README.md b/README.md index f72aee867..3e539a93f 100755 --- a/README.md +++ b/README.md @@ -11,7 +11,7 @@ A collection of Rust crates for making Minecraft bots, clients, and tools. -_Currently supported Minecraft version: `1.20.5-rc1`._ +_Currently supported Minecraft version: `1.20.5`._ > [!WARNING] > Azalea is still very unfinished, though most crates are in a somewhat useable state diff --git a/azalea-protocol/src/packets/mod.rs b/azalea-protocol/src/packets/mod.rs index e84ce74d1..63a0c1c93 100755 --- a/azalea-protocol/src/packets/mod.rs +++ b/azalea-protocol/src/packets/mod.rs @@ -12,7 +12,7 @@ use std::io::{Cursor, Write}; // TODO: rename the packet files to just like clientbound_add_entity instead of // clientbound_add_entity_packet -pub const PROTOCOL_VERSION: i32 = 1073742013; +pub const PROTOCOL_VERSION: i32 = 766; #[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] pub enum ConnectionProtocol { diff --git a/azalea-registry/src/tags/blocks.rs b/azalea-registry/src/tags/blocks.rs index b0fd8505e..65ddfd4ac 100644 --- a/azalea-registry/src/tags/blocks.rs +++ b/azalea-registry/src/tags/blocks.rs @@ -37,6 +37,46 @@ pub static MINEABLE_HOE: Lazy> = Lazy::new(|| { Block::CherryLeaves, ]) }); +pub static MINEABLE_SHOVEL: Lazy> = Lazy::new(|| { + HashSet::from_iter(vec![ + Block::Clay, + Block::Dirt, + Block::CoarseDirt, + Block::Podzol, + Block::Farmland, + Block::GrassBlock, + Block::Gravel, + Block::Mycelium, + Block::Sand, + Block::RedSand, + Block::SnowBlock, + Block::Snow, + Block::SoulSand, + Block::DirtPath, + Block::SoulSoil, + Block::RootedDirt, + Block::MuddyMangroveRoots, + Block::Mud, + Block::SuspiciousSand, + Block::SuspiciousGravel, + Block::WhiteConcretePowder, + Block::OrangeConcretePowder, + Block::MagentaConcretePowder, + Block::LightBlueConcretePowder, + Block::YellowConcretePowder, + Block::LimeConcretePowder, + Block::PinkConcretePowder, + Block::GrayConcretePowder, + Block::LightGrayConcretePowder, + Block::CyanConcretePowder, + Block::PurpleConcretePowder, + Block::BlueConcretePowder, + Block::BrownConcretePowder, + Block::GreenConcretePowder, + Block::RedConcretePowder, + Block::BlackConcretePowder, + ]) +}); pub static MINEABLE_AXE: Lazy> = Lazy::new(|| { HashSet::from_iter(vec![ Block::NoteBlock, @@ -339,46 +379,6 @@ pub static MINEABLE_AXE: Lazy> = Lazy::new(|| { Block::StrippedCherryWood, ]) }); -pub static MINEABLE_SHOVEL: Lazy> = Lazy::new(|| { - HashSet::from_iter(vec![ - Block::Clay, - Block::Dirt, - Block::CoarseDirt, - Block::Podzol, - Block::Farmland, - Block::GrassBlock, - Block::Gravel, - Block::Mycelium, - Block::Sand, - Block::RedSand, - Block::SnowBlock, - Block::Snow, - Block::SoulSand, - Block::DirtPath, - Block::SoulSoil, - Block::RootedDirt, - Block::MuddyMangroveRoots, - Block::Mud, - Block::SuspiciousSand, - Block::SuspiciousGravel, - Block::WhiteConcretePowder, - Block::OrangeConcretePowder, - Block::MagentaConcretePowder, - Block::LightBlueConcretePowder, - Block::YellowConcretePowder, - Block::LimeConcretePowder, - Block::PinkConcretePowder, - Block::GrayConcretePowder, - Block::LightGrayConcretePowder, - Block::CyanConcretePowder, - Block::PurpleConcretePowder, - Block::BlueConcretePowder, - Block::BrownConcretePowder, - Block::GreenConcretePowder, - Block::RedConcretePowder, - Block::BlackConcretePowder, - ]) -}); pub static MINEABLE_PICKAXE: Lazy> = Lazy::new(|| { HashSet::from_iter(vec![ Block::Stone, @@ -758,29 +758,16 @@ pub static MINEABLE_PICKAXE: Lazy> = Lazy::new(|| { Block::ActivatorRail, ]) }); -pub static MOSS_REPLACEABLE: Lazy> = Lazy::new(|| { +pub static STONE_BUTTONS: Lazy> = + Lazy::new(|| HashSet::from_iter(vec![Block::StoneButton, Block::PolishedBlackstoneButton])); +pub static STONE_BRICKS: Lazy> = Lazy::new(|| { HashSet::from_iter(vec![ - Block::Stone, - Block::Granite, - Block::Diorite, - Block::Andesite, - Block::Tuff, - Block::Deepslate, - Block::CaveVinesPlant, - Block::CaveVines, - Block::Dirt, - Block::GrassBlock, - Block::Podzol, - Block::CoarseDirt, - Block::Mycelium, - Block::RootedDirt, - Block::MossBlock, - Block::Mud, - Block::MuddyMangroveRoots, + Block::StoneBricks, + Block::MossyStoneBricks, + Block::CrackedStoneBricks, + Block::ChiseledStoneBricks, ]) }); -pub static SNOW: Lazy> = - Lazy::new(|| HashSet::from_iter(vec![Block::Snow, Block::SnowBlock, Block::PowderSnow])); pub static WOOL: Lazy> = Lazy::new(|| { HashSet::from_iter(vec![ Block::WhiteWool, @@ -801,182 +788,105 @@ pub static WOOL: Lazy> = Lazy::new(|| { Block::BlackWool, ]) }); -pub static UNSTABLE_BOTTOM_CENTER: Lazy> = Lazy::new(|| { - HashSet::from_iter(vec![ - Block::AcaciaFenceGate, - Block::BirchFenceGate, - Block::DarkOakFenceGate, - Block::JungleFenceGate, - Block::OakFenceGate, - Block::SpruceFenceGate, - Block::CrimsonFenceGate, - Block::WarpedFenceGate, - Block::MangroveFenceGate, - Block::BambooFenceGate, - Block::CherryFenceGate, - ]) -}); -pub static LOGS_THAT_BURN: Lazy> = Lazy::new(|| { +pub static PLANKS: Lazy> = Lazy::new(|| { HashSet::from_iter(vec![ - Block::DarkOakLog, - Block::DarkOakWood, - Block::StrippedDarkOakLog, - Block::StrippedDarkOakWood, - Block::OakLog, - Block::OakWood, - Block::StrippedOakLog, - Block::StrippedOakWood, - Block::AcaciaLog, - Block::AcaciaWood, - Block::StrippedAcaciaLog, - Block::StrippedAcaciaWood, - Block::BirchLog, - Block::BirchWood, - Block::StrippedBirchLog, - Block::StrippedBirchWood, - Block::JungleLog, - Block::JungleWood, - Block::StrippedJungleLog, - Block::StrippedJungleWood, - Block::SpruceLog, - Block::SpruceWood, - Block::StrippedSpruceLog, - Block::StrippedSpruceWood, - Block::MangroveLog, - Block::MangroveWood, - Block::StrippedMangroveLog, - Block::StrippedMangroveWood, - Block::CherryLog, - Block::CherryWood, - Block::StrippedCherryLog, - Block::StrippedCherryWood, + Block::OakPlanks, + Block::SprucePlanks, + Block::BirchPlanks, + Block::JunglePlanks, + Block::AcaciaPlanks, + Block::DarkOakPlanks, + Block::CrimsonPlanks, + Block::WarpedPlanks, + Block::MangrovePlanks, + Block::BambooPlanks, + Block::CherryPlanks, ]) }); -pub static FROG_PREFER_JUMP_TO: Lazy> = - Lazy::new(|| HashSet::from_iter(vec![Block::LilyPad, Block::BigDripleaf])); -pub static RAILS: Lazy> = Lazy::new(|| { +pub static WOODEN_BUTTONS: Lazy> = Lazy::new(|| { HashSet::from_iter(vec![ - Block::Rail, - Block::PoweredRail, - Block::DetectorRail, - Block::ActivatorRail, + Block::OakButton, + Block::SpruceButton, + Block::BirchButton, + Block::JungleButton, + Block::AcaciaButton, + Block::DarkOakButton, + Block::CrimsonButton, + Block::WarpedButton, + Block::MangroveButton, + Block::BambooButton, + Block::CherryButton, ]) }); -pub static CAMEL_SAND_STEP_SOUND_BLOCKS: Lazy> = Lazy::new(|| { +pub static BUTTONS: Lazy> = Lazy::new(|| { HashSet::from_iter(vec![ - Block::Sand, - Block::RedSand, - Block::SuspiciousSand, - Block::SuspiciousSand, - Block::WhiteConcretePowder, - Block::OrangeConcretePowder, - Block::MagentaConcretePowder, - Block::LightBlueConcretePowder, - Block::YellowConcretePowder, - Block::LimeConcretePowder, - Block::PinkConcretePowder, - Block::GrayConcretePowder, - Block::LightGrayConcretePowder, - Block::CyanConcretePowder, - Block::PurpleConcretePowder, - Block::BlueConcretePowder, - Block::BrownConcretePowder, - Block::GreenConcretePowder, - Block::RedConcretePowder, - Block::BlackConcretePowder, + Block::OakButton, + Block::SpruceButton, + Block::BirchButton, + Block::JungleButton, + Block::AcaciaButton, + Block::DarkOakButton, + Block::CrimsonButton, + Block::WarpedButton, + Block::MangroveButton, + Block::BambooButton, + Block::CherryButton, + Block::StoneButton, + Block::PolishedBlackstoneButton, ]) }); -pub static ENCHANTMENT_POWER_PROVIDER: Lazy> = - Lazy::new(|| HashSet::from_iter(vec![Block::Bookshelf])); -pub static SNOW_LAYER_CANNOT_SURVIVE_ON: Lazy> = - Lazy::new(|| HashSet::from_iter(vec![Block::Ice, Block::PackedIce, Block::Barrier])); -pub static MOOSHROOMS_SPAWNABLE_ON: Lazy> = - Lazy::new(|| HashSet::from_iter(vec![Block::Mycelium])); -pub static STONE_BRICKS: Lazy> = Lazy::new(|| { +pub static WOOL_CARPETS: Lazy> = Lazy::new(|| { HashSet::from_iter(vec![ - Block::StoneBricks, - Block::MossyStoneBricks, - Block::CrackedStoneBricks, - Block::ChiseledStoneBricks, + Block::WhiteCarpet, + Block::OrangeCarpet, + Block::MagentaCarpet, + Block::LightBlueCarpet, + Block::YellowCarpet, + Block::LimeCarpet, + Block::PinkCarpet, + Block::GrayCarpet, + Block::LightGrayCarpet, + Block::CyanCarpet, + Block::PurpleCarpet, + Block::BlueCarpet, + Block::BrownCarpet, + Block::GreenCarpet, + Block::RedCarpet, + Block::BlackCarpet, ]) }); -pub static WARPED_STEMS: Lazy> = Lazy::new(|| { +pub static WOODEN_DOORS: Lazy> = Lazy::new(|| { HashSet::from_iter(vec![ - Block::WarpedStem, - Block::StrippedWarpedStem, - Block::WarpedHyphae, - Block::StrippedWarpedHyphae, - ]) -}); -pub static FOXES_SPAWNABLE_ON: Lazy> = Lazy::new(|| { - HashSet::from_iter(vec![ - Block::GrassBlock, - Block::Snow, - Block::SnowBlock, - Block::Podzol, - Block::CoarseDirt, + Block::OakDoor, + Block::SpruceDoor, + Block::BirchDoor, + Block::JungleDoor, + Block::AcaciaDoor, + Block::DarkOakDoor, + Block::CrimsonDoor, + Block::WarpedDoor, + Block::MangroveDoor, + Block::BambooDoor, + Block::CherryDoor, ]) }); -pub static SNOW_LAYER_CAN_SURVIVE_ON: Lazy> = - Lazy::new(|| HashSet::from_iter(vec![Block::HoneyBlock, Block::SoulSand, Block::Mud])); -pub static OAK_LOGS: Lazy> = Lazy::new(|| { +pub static WOODEN_STAIRS: Lazy> = Lazy::new(|| { HashSet::from_iter(vec![ - Block::OakLog, - Block::OakWood, - Block::StrippedOakLog, - Block::StrippedOakWood, + Block::OakStairs, + Block::SpruceStairs, + Block::BirchStairs, + Block::JungleStairs, + Block::AcaciaStairs, + Block::DarkOakStairs, + Block::CrimsonStairs, + Block::WarpedStairs, + Block::MangroveStairs, + Block::BambooStairs, + Block::CherryStairs, ]) }); -pub static VIBRATION_RESONATORS: Lazy> = - Lazy::new(|| HashSet::from_iter(vec![Block::AmethystBlock])); -pub static SLABS: Lazy> = Lazy::new(|| { +pub static WOODEN_SLABS: Lazy> = Lazy::new(|| { HashSet::from_iter(vec![ - Block::BambooMosaicSlab, - Block::StoneSlab, - Block::SmoothStoneSlab, - Block::StoneBrickSlab, - Block::SandstoneSlab, - Block::PurpurSlab, - Block::QuartzSlab, - Block::RedSandstoneSlab, - Block::BrickSlab, - Block::CobblestoneSlab, - Block::NetherBrickSlab, - Block::PetrifiedOakSlab, - Block::PrismarineSlab, - Block::PrismarineBrickSlab, - Block::DarkPrismarineSlab, - Block::PolishedGraniteSlab, - Block::SmoothRedSandstoneSlab, - Block::MossyStoneBrickSlab, - Block::PolishedDioriteSlab, - Block::MossyCobblestoneSlab, - Block::EndStoneBrickSlab, - Block::SmoothSandstoneSlab, - Block::SmoothQuartzSlab, - Block::GraniteSlab, - Block::AndesiteSlab, - Block::RedNetherBrickSlab, - Block::PolishedAndesiteSlab, - Block::DioriteSlab, - Block::CutSandstoneSlab, - Block::CutRedSandstoneSlab, - Block::BlackstoneSlab, - Block::PolishedBlackstoneBrickSlab, - Block::PolishedBlackstoneSlab, - Block::CobbledDeepslateSlab, - Block::PolishedDeepslateSlab, - Block::DeepslateTileSlab, - Block::DeepslateBrickSlab, - Block::WaxedWeatheredCutCopperSlab, - Block::WaxedExposedCutCopperSlab, - Block::WaxedCutCopperSlab, - Block::OxidizedCutCopperSlab, - Block::WeatheredCutCopperSlab, - Block::ExposedCutCopperSlab, - Block::CutCopperSlab, - Block::WaxedOxidizedCutCopperSlab, - Block::MudBrickSlab, Block::OakSlab, Block::SpruceSlab, Block::BirchSlab, @@ -990,320 +900,246 @@ pub static SLABS: Lazy> = Lazy::new(|| { Block::CherrySlab, ]) }); -pub static ALL_SIGNS: Lazy> = Lazy::new(|| { +pub static WOODEN_FENCES: Lazy> = Lazy::new(|| { HashSet::from_iter(vec![ - Block::OakSign, - Block::SpruceSign, - Block::BirchSign, - Block::AcaciaSign, - Block::JungleSign, - Block::DarkOakSign, - Block::CrimsonSign, - Block::WarpedSign, - Block::MangroveSign, - Block::BambooSign, - Block::CherrySign, - Block::OakWallSign, - Block::SpruceWallSign, - Block::BirchWallSign, - Block::AcaciaWallSign, - Block::JungleWallSign, - Block::DarkOakWallSign, - Block::CrimsonWallSign, - Block::WarpedWallSign, - Block::MangroveWallSign, - Block::BambooWallSign, - Block::CherryWallSign, - Block::OakHangingSign, - Block::SpruceHangingSign, - Block::BirchHangingSign, - Block::AcaciaHangingSign, - Block::CherryHangingSign, - Block::JungleHangingSign, - Block::DarkOakHangingSign, - Block::CrimsonHangingSign, - Block::WarpedHangingSign, - Block::MangroveHangingSign, - Block::BambooHangingSign, - Block::OakWallHangingSign, - Block::SpruceWallHangingSign, - Block::BirchWallHangingSign, - Block::AcaciaWallHangingSign, - Block::CherryWallHangingSign, - Block::JungleWallHangingSign, - Block::DarkOakWallHangingSign, - Block::CrimsonWallHangingSign, - Block::WarpedWallHangingSign, - Block::MangroveWallHangingSign, - Block::BambooWallHangingSign, + Block::OakFence, + Block::AcaciaFence, + Block::DarkOakFence, + Block::SpruceFence, + Block::BirchFence, + Block::JungleFence, + Block::CrimsonFence, + Block::WarpedFence, + Block::MangroveFence, + Block::BambooFence, + Block::CherryFence, ]) }); -pub static WART_BLOCKS: Lazy> = - Lazy::new(|| HashSet::from_iter(vec![Block::NetherWartBlock, Block::WarpedWartBlock])); -pub static SCULK_REPLACEABLE: Lazy> = Lazy::new(|| { +pub static DOORS: Lazy> = Lazy::new(|| { HashSet::from_iter(vec![ - Block::Sand, - Block::RedSand, - Block::Gravel, - Block::SoulSand, - Block::SoulSoil, - Block::Calcite, - Block::SmoothBasalt, - Block::Clay, - Block::DripstoneBlock, - Block::EndStone, - Block::RedSandstone, - Block::Sandstone, - Block::Stone, - Block::Granite, - Block::Diorite, - Block::Andesite, - Block::Tuff, - Block::Deepslate, - Block::Dirt, - Block::GrassBlock, - Block::Podzol, - Block::CoarseDirt, - Block::Mycelium, - Block::RootedDirt, - Block::MossBlock, - Block::Mud, - Block::MuddyMangroveRoots, - Block::Terracotta, - Block::WhiteTerracotta, - Block::OrangeTerracotta, - Block::MagentaTerracotta, - Block::LightBlueTerracotta, - Block::YellowTerracotta, - Block::LimeTerracotta, - Block::PinkTerracotta, - Block::GrayTerracotta, - Block::LightGrayTerracotta, - Block::CyanTerracotta, - Block::PurpleTerracotta, - Block::BlueTerracotta, - Block::BrownTerracotta, - Block::GreenTerracotta, - Block::RedTerracotta, - Block::BlackTerracotta, - Block::CrimsonNylium, - Block::WarpedNylium, - Block::Netherrack, - Block::Basalt, - Block::Blackstone, + Block::IronDoor, + Block::OakDoor, + Block::SpruceDoor, + Block::BirchDoor, + Block::JungleDoor, + Block::AcaciaDoor, + Block::DarkOakDoor, + Block::CrimsonDoor, + Block::WarpedDoor, + Block::MangroveDoor, + Block::BambooDoor, + Block::CherryDoor, ]) }); -pub static TRAIL_RUINS_REPLACEABLE: Lazy> = - Lazy::new(|| HashSet::from_iter(vec![Block::Gravel])); -pub static LOGS: Lazy> = Lazy::new(|| { +pub static SAPLINGS: Lazy> = Lazy::new(|| { + HashSet::from_iter(vec![ + Block::OakSapling, + Block::SpruceSapling, + Block::BirchSapling, + Block::JungleSapling, + Block::AcaciaSapling, + Block::DarkOakSapling, + Block::Azalea, + Block::FloweringAzalea, + Block::MangrovePropagule, + Block::CherrySapling, + ]) +}); +pub static BAMBOO_BLOCKS: Lazy> = + Lazy::new(|| HashSet::from_iter(vec![Block::BambooBlock, Block::StrippedBambooBlock])); +pub static DARK_OAK_LOGS: Lazy> = Lazy::new(|| { HashSet::from_iter(vec![ - Block::CrimsonStem, - Block::StrippedCrimsonStem, - Block::CrimsonHyphae, - Block::StrippedCrimsonHyphae, - Block::WarpedStem, - Block::StrippedWarpedStem, - Block::WarpedHyphae, - Block::StrippedWarpedHyphae, Block::DarkOakLog, Block::DarkOakWood, Block::StrippedDarkOakLog, Block::StrippedDarkOakWood, + ]) +}); +pub static OAK_LOGS: Lazy> = Lazy::new(|| { + HashSet::from_iter(vec![ Block::OakLog, Block::OakWood, Block::StrippedOakLog, Block::StrippedOakWood, + ]) +}); +pub static ACACIA_LOGS: Lazy> = Lazy::new(|| { + HashSet::from_iter(vec![ Block::AcaciaLog, Block::AcaciaWood, Block::StrippedAcaciaLog, Block::StrippedAcaciaWood, - Block::BirchLog, - Block::BirchWood, - Block::StrippedBirchLog, - Block::StrippedBirchWood, + ]) +}); +pub static JUNGLE_LOGS: Lazy> = Lazy::new(|| { + HashSet::from_iter(vec![ Block::JungleLog, Block::JungleWood, Block::StrippedJungleLog, Block::StrippedJungleWood, - Block::SpruceLog, - Block::SpruceWood, + ]) +}); +pub static BIRCH_LOGS: Lazy> = Lazy::new(|| { + HashSet::from_iter(vec![ + Block::BirchLog, + Block::BirchWood, + Block::StrippedBirchLog, + Block::StrippedBirchWood, + ]) +}); +pub static SPRUCE_LOGS: Lazy> = Lazy::new(|| { + HashSet::from_iter(vec![ + Block::SpruceLog, + Block::SpruceWood, Block::StrippedSpruceLog, Block::StrippedSpruceWood, - Block::MangroveLog, - Block::MangroveWood, - Block::StrippedMangroveLog, - Block::StrippedMangroveWood, - Block::CherryLog, - Block::CherryWood, - Block::StrippedCherryLog, - Block::StrippedCherryWood, ]) }); -pub static ANCIENT_CITY_REPLACEABLE: Lazy> = Lazy::new(|| { +pub static CRIMSON_STEMS: Lazy> = Lazy::new(|| { HashSet::from_iter(vec![ - Block::Deepslate, - Block::DeepslateBricks, - Block::DeepslateTiles, - Block::DeepslateBrickSlab, - Block::DeepslateTileSlab, - Block::DeepslateBrickStairs, - Block::DeepslateTileWall, - Block::DeepslateBrickWall, - Block::CobbledDeepslate, - Block::CrackedDeepslateBricks, - Block::CrackedDeepslateTiles, - Block::GrayWool, + Block::CrimsonStem, + Block::StrippedCrimsonStem, + Block::CrimsonHyphae, + Block::StrippedCrimsonHyphae, ]) }); -pub static STONE_ORE_REPLACEABLES: Lazy> = Lazy::new(|| { +pub static WARPED_STEMS: Lazy> = Lazy::new(|| { HashSet::from_iter(vec![ - Block::Stone, - Block::Granite, - Block::Diorite, - Block::Andesite, + Block::WarpedStem, + Block::StrippedWarpedStem, + Block::WarpedHyphae, + Block::StrippedWarpedHyphae, ]) }); -pub static DARK_OAK_LOGS: Lazy> = Lazy::new(|| { +pub static MANGROVE_LOGS: Lazy> = Lazy::new(|| { HashSet::from_iter(vec![ - Block::DarkOakLog, - Block::DarkOakWood, - Block::StrippedDarkOakLog, - Block::StrippedDarkOakWood, + Block::MangroveLog, + Block::MangroveWood, + Block::StrippedMangroveLog, + Block::StrippedMangroveWood, ]) }); -pub static STRIDER_WARM_BLOCKS: Lazy> = - Lazy::new(|| HashSet::from_iter(vec![Block::Lava])); -pub static INCORRECT_FOR_GOLD_TOOL: Lazy> = Lazy::new(|| { +pub static CHERRY_LOGS: Lazy> = Lazy::new(|| { HashSet::from_iter(vec![ - Block::Obsidian, - Block::CryingObsidian, - Block::NetheriteBlock, - Block::RespawnAnchor, - Block::AncientDebris, - Block::DiamondBlock, - Block::DiamondOre, - Block::DeepslateDiamondOre, - Block::EmeraldOre, - Block::DeepslateEmeraldOre, - Block::EmeraldBlock, - Block::GoldBlock, - Block::RawGoldBlock, - Block::GoldOre, - Block::DeepslateGoldOre, - Block::RedstoneOre, - Block::DeepslateRedstoneOre, - Block::IronBlock, - Block::RawIronBlock, - Block::IronOre, - Block::DeepslateIronOre, - Block::LapisBlock, - Block::LapisOre, - Block::DeepslateLapisOre, - Block::CopperBlock, - Block::RawCopperBlock, - Block::CopperOre, - Block::DeepslateCopperOre, - Block::CutCopperSlab, - Block::CutCopperStairs, - Block::CutCopper, - Block::WeatheredCopper, - Block::WeatheredCutCopperSlab, - Block::WeatheredCutCopperStairs, - Block::WeatheredCutCopper, - Block::OxidizedCopper, - Block::OxidizedCutCopperSlab, - Block::OxidizedCutCopperStairs, - Block::OxidizedCutCopper, - Block::ExposedCopper, - Block::ExposedCutCopperSlab, - Block::ExposedCutCopperStairs, - Block::ExposedCutCopper, - Block::WaxedCopperBlock, - Block::WaxedCutCopperSlab, - Block::WaxedCutCopperStairs, - Block::WaxedCutCopper, - Block::WaxedWeatheredCopper, - Block::WaxedWeatheredCutCopperSlab, - Block::WaxedWeatheredCutCopperStairs, - Block::WaxedWeatheredCutCopper, - Block::WaxedExposedCopper, - Block::WaxedExposedCutCopperSlab, - Block::WaxedExposedCutCopperStairs, - Block::WaxedExposedCutCopper, - Block::WaxedOxidizedCopper, - Block::WaxedOxidizedCutCopperSlab, - Block::WaxedOxidizedCutCopperStairs, - Block::WaxedOxidizedCutCopper, - Block::LightningRod, + Block::CherryLog, + Block::CherryWood, + Block::StrippedCherryLog, + Block::StrippedCherryWood, ]) }); -pub static JUNGLE_LOGS: Lazy> = Lazy::new(|| { +pub static LOGS_THAT_BURN: Lazy> = Lazy::new(|| { HashSet::from_iter(vec![ + Block::DarkOakLog, + Block::DarkOakWood, + Block::StrippedDarkOakLog, + Block::StrippedDarkOakWood, + Block::OakLog, + Block::OakWood, + Block::StrippedOakLog, + Block::StrippedOakWood, + Block::AcaciaLog, + Block::AcaciaWood, + Block::StrippedAcaciaLog, + Block::StrippedAcaciaWood, + Block::BirchLog, + Block::BirchWood, + Block::StrippedBirchLog, + Block::StrippedBirchWood, Block::JungleLog, Block::JungleWood, Block::StrippedJungleLog, Block::StrippedJungleWood, + Block::SpruceLog, + Block::SpruceWood, + Block::StrippedSpruceLog, + Block::StrippedSpruceWood, + Block::MangroveLog, + Block::MangroveWood, + Block::StrippedMangroveLog, + Block::StrippedMangroveWood, + Block::CherryLog, + Block::CherryWood, + Block::StrippedCherryLog, + Block::StrippedCherryWood, ]) }); -pub static DAMPENS_VIBRATIONS: Lazy> = Lazy::new(|| { - HashSet::from_iter(vec![ - Block::WhiteWool, - Block::OrangeWool, - Block::MagentaWool, - Block::LightBlueWool, - Block::YellowWool, - Block::LimeWool, - Block::PinkWool, - Block::GrayWool, - Block::LightGrayWool, - Block::CyanWool, - Block::PurpleWool, - Block::BlueWool, - Block::BrownWool, - Block::GreenWool, - Block::RedWool, - Block::BlackWool, - Block::WhiteCarpet, - Block::OrangeCarpet, - Block::MagentaCarpet, - Block::LightBlueCarpet, - Block::YellowCarpet, - Block::LimeCarpet, - Block::PinkCarpet, - Block::GrayCarpet, - Block::LightGrayCarpet, - Block::CyanCarpet, - Block::PurpleCarpet, - Block::BlueCarpet, - Block::BrownCarpet, - Block::GreenCarpet, - Block::RedCarpet, - Block::BlackCarpet, - ]) -}); -pub static LAPIS_ORES: Lazy> = - Lazy::new(|| HashSet::from_iter(vec![Block::LapisOre, Block::DeepslateLapisOre])); -pub static FROGS_SPAWNABLE_ON: Lazy> = Lazy::new(|| { +pub static OVERWORLD_NATURAL_LOGS: Lazy> = Lazy::new(|| { HashSet::from_iter(vec![ - Block::GrassBlock, - Block::Mud, - Block::MangroveRoots, - Block::MuddyMangroveRoots, + Block::AcaciaLog, + Block::BirchLog, + Block::OakLog, + Block::JungleLog, + Block::SpruceLog, + Block::DarkOakLog, + Block::MangroveLog, + Block::CherryLog, ]) }); -pub static INVALID_SPAWN_INSIDE: Lazy> = - Lazy::new(|| HashSet::from_iter(vec![Block::EndPortal, Block::EndGateway])); -pub static VALID_SPAWN: Lazy> = - Lazy::new(|| HashSet::from_iter(vec![Block::GrassBlock, Block::Podzol])); -pub static MANGROVE_LOGS: Lazy> = Lazy::new(|| { +pub static LOGS: Lazy> = Lazy::new(|| { HashSet::from_iter(vec![ + Block::CrimsonStem, + Block::StrippedCrimsonStem, + Block::CrimsonHyphae, + Block::StrippedCrimsonHyphae, + Block::WarpedStem, + Block::StrippedWarpedStem, + Block::WarpedHyphae, + Block::StrippedWarpedHyphae, + Block::DarkOakLog, + Block::DarkOakWood, + Block::StrippedDarkOakLog, + Block::StrippedDarkOakWood, + Block::OakLog, + Block::OakWood, + Block::StrippedOakLog, + Block::StrippedOakWood, + Block::AcaciaLog, + Block::AcaciaWood, + Block::StrippedAcaciaLog, + Block::StrippedAcaciaWood, + Block::BirchLog, + Block::BirchWood, + Block::StrippedBirchLog, + Block::StrippedBirchWood, + Block::JungleLog, + Block::JungleWood, + Block::StrippedJungleLog, + Block::StrippedJungleWood, + Block::SpruceLog, + Block::SpruceWood, + Block::StrippedSpruceLog, + Block::StrippedSpruceWood, Block::MangroveLog, Block::MangroveWood, Block::StrippedMangroveLog, Block::StrippedMangroveWood, + Block::CherryLog, + Block::CherryWood, + Block::StrippedCherryLog, + Block::StrippedCherryWood, ]) }); -pub static DIRT: Lazy> = Lazy::new(|| { +pub static ANVIL: Lazy> = + Lazy::new(|| HashSet::from_iter(vec![Block::Anvil, Block::ChippedAnvil, Block::DamagedAnvil])); +pub static SMALL_FLOWERS: Lazy> = Lazy::new(|| { + HashSet::from_iter(vec![ + 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, + ]) +}); +pub static DIRT: Lazy> = Lazy::new(|| { HashSet::from_iter(vec![ Block::Dirt, Block::GrassBlock, @@ -1316,185 +1152,378 @@ pub static DIRT: Lazy> = Lazy::new(|| { Block::MuddyMangroveRoots, ]) }); -pub static FIRE: Lazy> = - Lazy::new(|| HashSet::from_iter(vec![Block::Fire, Block::SoulFire])); -pub static COMBINATION_STEP_SOUND_BLOCKS: Lazy> = Lazy::new(|| { +pub static ENDERMAN_HOLDABLE: Lazy> = Lazy::new(|| { HashSet::from_iter(vec![ - Block::MossCarpet, - Block::Snow, - Block::NetherSprouts, - Block::WarpedRoots, + Block::Sand, + Block::RedSand, + Block::Gravel, + Block::BrownMushroom, + Block::RedMushroom, + Block::Tnt, + Block::Cactus, + Block::Clay, + Block::Pumpkin, + Block::CarvedPumpkin, + Block::Melon, + Block::CrimsonFungus, + Block::CrimsonNylium, Block::CrimsonRoots, - Block::WhiteCarpet, - Block::OrangeCarpet, - Block::MagentaCarpet, - Block::LightBlueCarpet, - Block::YellowCarpet, - Block::LimeCarpet, - Block::PinkCarpet, - Block::GrayCarpet, - Block::LightGrayCarpet, - Block::CyanCarpet, - Block::PurpleCarpet, - Block::BlueCarpet, - Block::BrownCarpet, - Block::GreenCarpet, - Block::RedCarpet, - Block::BlackCarpet, + Block::WarpedFungus, + Block::WarpedNylium, + Block::WarpedRoots, + 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::Dirt, + Block::GrassBlock, + Block::Podzol, + Block::CoarseDirt, + Block::Mycelium, + Block::RootedDirt, + Block::MossBlock, + Block::Mud, + Block::MuddyMangroveRoots, ]) }); -pub static FENCES: Lazy> = Lazy::new(|| { +pub static FLOWER_POTS: Lazy> = Lazy::new(|| { HashSet::from_iter(vec![ - Block::NetherBrickFence, - Block::OakFence, - Block::AcaciaFence, - Block::DarkOakFence, - Block::SpruceFence, - Block::BirchFence, - Block::JungleFence, - Block::CrimsonFence, - Block::WarpedFence, - Block::MangroveFence, - Block::BambooFence, - Block::CherryFence, + Block::FlowerPot, + Block::PottedPoppy, + Block::PottedBlueOrchid, + Block::PottedAllium, + Block::PottedAzureBluet, + Block::PottedRedTulip, + Block::PottedOrangeTulip, + Block::PottedWhiteTulip, + Block::PottedPinkTulip, + Block::PottedOxeyeDaisy, + Block::PottedDandelion, + Block::PottedOakSapling, + Block::PottedSpruceSapling, + Block::PottedBirchSapling, + Block::PottedJungleSapling, + Block::PottedAcaciaSapling, + Block::PottedDarkOakSapling, + Block::PottedRedMushroom, + Block::PottedBrownMushroom, + Block::PottedDeadBush, + Block::PottedFern, + Block::PottedCactus, + Block::PottedCornflower, + Block::PottedLilyOfTheValley, + Block::PottedWitherRose, + Block::PottedBamboo, + Block::PottedCrimsonFungus, + Block::PottedWarpedFungus, + Block::PottedCrimsonRoots, + Block::PottedWarpedRoots, + Block::PottedAzaleaBush, + Block::PottedFloweringAzaleaBush, + Block::PottedMangrovePropagule, + Block::PottedCherrySapling, + Block::PottedTorchflower, ]) }); -pub static CORALS: Lazy> = Lazy::new(|| { +pub static WOODEN_PRESSURE_PLATES: Lazy> = Lazy::new(|| { HashSet::from_iter(vec![ - Block::TubeCoralFan, - Block::BrainCoralFan, - Block::BubbleCoralFan, - Block::FireCoralFan, - Block::HornCoralFan, - Block::TubeCoral, - Block::BrainCoral, - Block::BubbleCoral, - Block::FireCoral, - Block::HornCoral, + Block::OakPressurePlate, + Block::SprucePressurePlate, + Block::BirchPressurePlate, + Block::JunglePressurePlate, + Block::AcaciaPressurePlate, + Block::DarkOakPressurePlate, + Block::CrimsonPressurePlate, + Block::WarpedPressurePlate, + Block::MangrovePressurePlate, + Block::BambooPressurePlate, + Block::CherryPressurePlate, ]) }); -pub static WOOL_CARPETS: Lazy> = Lazy::new(|| { +pub static STONE_PRESSURE_PLATES: Lazy> = Lazy::new(|| { HashSet::from_iter(vec![ - Block::WhiteCarpet, - Block::OrangeCarpet, - Block::MagentaCarpet, - Block::LightBlueCarpet, - Block::YellowCarpet, - Block::LimeCarpet, - Block::PinkCarpet, - Block::GrayCarpet, - Block::LightGrayCarpet, - Block::CyanCarpet, - Block::PurpleCarpet, - Block::BlueCarpet, - Block::BrownCarpet, - Block::GreenCarpet, - Block::RedCarpet, - Block::BlackCarpet, + Block::StonePressurePlate, + Block::PolishedBlackstonePressurePlate, ]) }); -pub static INFINIBURN_OVERWORLD: Lazy> = - Lazy::new(|| HashSet::from_iter(vec![Block::Netherrack, Block::MagmaBlock])); -pub static ICE: Lazy> = Lazy::new(|| { +pub static PRESSURE_PLATES: Lazy> = Lazy::new(|| { HashSet::from_iter(vec![ - Block::Ice, - Block::PackedIce, - Block::BlueIce, - Block::FrostedIce, + Block::LightWeightedPressurePlate, + Block::HeavyWeightedPressurePlate, + Block::OakPressurePlate, + Block::SprucePressurePlate, + Block::BirchPressurePlate, + Block::JunglePressurePlate, + Block::AcaciaPressurePlate, + Block::DarkOakPressurePlate, + Block::CrimsonPressurePlate, + Block::WarpedPressurePlate, + Block::MangrovePressurePlate, + Block::BambooPressurePlate, + Block::CherryPressurePlate, + Block::StonePressurePlate, + Block::PolishedBlackstonePressurePlate, ]) }); -pub static SNAPS_GOAT_HORN: Lazy> = Lazy::new(|| { +pub static BANNERS: Lazy> = Lazy::new(|| { HashSet::from_iter(vec![ - Block::Stone, - Block::PackedIce, - Block::IronOre, - Block::CoalOre, - Block::CopperOre, - Block::EmeraldOre, - Block::AcaciaLog, - Block::BirchLog, - Block::OakLog, - Block::JungleLog, - Block::SpruceLog, - Block::DarkOakLog, - Block::MangroveLog, - Block::CherryLog, + Block::WhiteBanner, + Block::OrangeBanner, + Block::MagentaBanner, + Block::LightBlueBanner, + Block::YellowBanner, + Block::LimeBanner, + Block::PinkBanner, + Block::GrayBanner, + Block::LightGrayBanner, + Block::CyanBanner, + Block::PurpleBanner, + Block::BlueBanner, + Block::BrownBanner, + Block::GreenBanner, + Block::RedBanner, + Block::BlackBanner, + Block::WhiteWallBanner, + Block::OrangeWallBanner, + Block::MagentaWallBanner, + Block::LightBlueWallBanner, + Block::YellowWallBanner, + Block::LimeWallBanner, + Block::PinkWallBanner, + Block::GrayWallBanner, + Block::LightGrayWallBanner, + Block::CyanWallBanner, + Block::PurpleWallBanner, + Block::BlueWallBanner, + Block::BrownWallBanner, + Block::GreenWallBanner, + Block::RedWallBanner, + Block::BlackWallBanner, ]) }); -pub static ARMADILLO_SPAWNABLE_ON: Lazy> = Lazy::new(|| { +pub static STAIRS: Lazy> = Lazy::new(|| { HashSet::from_iter(vec![ - Block::RedSand, - Block::CoarseDirt, - Block::GrassBlock, - Block::Terracotta, - Block::WhiteTerracotta, - Block::YellowTerracotta, - Block::OrangeTerracotta, - Block::RedTerracotta, - Block::BrownTerracotta, - Block::LightGrayTerracotta, + Block::BambooMosaicStairs, + Block::CobblestoneStairs, + Block::SandstoneStairs, + Block::NetherBrickStairs, + Block::StoneBrickStairs, + Block::BrickStairs, + Block::PurpurStairs, + Block::QuartzStairs, + Block::RedSandstoneStairs, + Block::PrismarineBrickStairs, + Block::PrismarineStairs, + Block::DarkPrismarineStairs, + Block::PolishedGraniteStairs, + Block::SmoothRedSandstoneStairs, + Block::MossyStoneBrickStairs, + Block::PolishedDioriteStairs, + Block::MossyCobblestoneStairs, + Block::EndStoneBrickStairs, + Block::StoneStairs, + Block::SmoothSandstoneStairs, + Block::SmoothQuartzStairs, + Block::GraniteStairs, + Block::AndesiteStairs, + Block::RedNetherBrickStairs, + Block::PolishedAndesiteStairs, + Block::DioriteStairs, + Block::BlackstoneStairs, + Block::PolishedBlackstoneBrickStairs, + Block::PolishedBlackstoneStairs, + Block::CobbledDeepslateStairs, + Block::PolishedDeepslateStairs, + Block::DeepslateTileStairs, + Block::DeepslateBrickStairs, + Block::OxidizedCutCopperStairs, + Block::WeatheredCutCopperStairs, + Block::ExposedCutCopperStairs, + Block::CutCopperStairs, + Block::WaxedWeatheredCutCopperStairs, + Block::WaxedExposedCutCopperStairs, + Block::WaxedCutCopperStairs, + Block::WaxedOxidizedCutCopperStairs, + Block::MudBrickStairs, + Block::OakStairs, + Block::SpruceStairs, + Block::BirchStairs, + Block::JungleStairs, + Block::AcaciaStairs, + Block::DarkOakStairs, + Block::CrimsonStairs, + Block::WarpedStairs, + Block::MangroveStairs, + Block::BambooStairs, + Block::CherryStairs, ]) }); -pub static WITHER_IMMUNE: Lazy> = Lazy::new(|| { +pub static SLABS: Lazy> = Lazy::new(|| { HashSet::from_iter(vec![ - Block::Barrier, - Block::Bedrock, - Block::EndPortal, - Block::EndPortalFrame, - Block::EndGateway, - Block::CommandBlock, - Block::RepeatingCommandBlock, - Block::ChainCommandBlock, - Block::StructureBlock, - Block::Jigsaw, - Block::MovingPiston, - Block::Light, - Block::ReinforcedDeepslate, + Block::BambooMosaicSlab, + Block::StoneSlab, + Block::SmoothStoneSlab, + Block::StoneBrickSlab, + Block::SandstoneSlab, + Block::PurpurSlab, + Block::QuartzSlab, + Block::RedSandstoneSlab, + Block::BrickSlab, + Block::CobblestoneSlab, + Block::NetherBrickSlab, + Block::PetrifiedOakSlab, + Block::PrismarineSlab, + Block::PrismarineBrickSlab, + Block::DarkPrismarineSlab, + Block::PolishedGraniteSlab, + Block::SmoothRedSandstoneSlab, + Block::MossyStoneBrickSlab, + Block::PolishedDioriteSlab, + Block::MossyCobblestoneSlab, + Block::EndStoneBrickSlab, + Block::SmoothSandstoneSlab, + Block::SmoothQuartzSlab, + Block::GraniteSlab, + Block::AndesiteSlab, + Block::RedNetherBrickSlab, + Block::PolishedAndesiteSlab, + Block::DioriteSlab, + Block::CutSandstoneSlab, + Block::CutRedSandstoneSlab, + Block::BlackstoneSlab, + Block::PolishedBlackstoneBrickSlab, + Block::PolishedBlackstoneSlab, + Block::CobbledDeepslateSlab, + Block::PolishedDeepslateSlab, + Block::DeepslateTileSlab, + Block::DeepslateBrickSlab, + Block::WaxedWeatheredCutCopperSlab, + Block::WaxedExposedCutCopperSlab, + Block::WaxedCutCopperSlab, + Block::OxidizedCutCopperSlab, + Block::WeatheredCutCopperSlab, + Block::ExposedCutCopperSlab, + Block::CutCopperSlab, + Block::WaxedOxidizedCutCopperSlab, + Block::MudBrickSlab, + Block::OakSlab, + Block::SpruceSlab, + Block::BirchSlab, + Block::JungleSlab, + Block::AcaciaSlab, + Block::DarkOakSlab, + Block::CrimsonSlab, + Block::WarpedSlab, + Block::MangroveSlab, + Block::BambooSlab, + Block::CherrySlab, ]) }); -pub static BEACON_BASE_BLOCKS: Lazy> = Lazy::new(|| { +pub static WALLS: Lazy> = Lazy::new(|| { HashSet::from_iter(vec![ - Block::NetheriteBlock, - Block::EmeraldBlock, - Block::DiamondBlock, - Block::GoldBlock, - Block::IronBlock, + Block::CobblestoneWall, + Block::MossyCobblestoneWall, + Block::BrickWall, + Block::PrismarineWall, + Block::RedSandstoneWall, + Block::MossyStoneBrickWall, + Block::GraniteWall, + Block::StoneBrickWall, + Block::NetherBrickWall, + Block::AndesiteWall, + Block::RedNetherBrickWall, + Block::SandstoneWall, + Block::EndStoneBrickWall, + Block::DioriteWall, + Block::BlackstoneWall, + Block::PolishedBlackstoneBrickWall, + Block::PolishedBlackstoneWall, + Block::CobbledDeepslateWall, + Block::PolishedDeepslateWall, + Block::DeepslateTileWall, + Block::DeepslateBrickWall, + Block::MudBrickWall, ]) }); -pub static COAL_ORES: Lazy> = - Lazy::new(|| HashSet::from_iter(vec![Block::CoalOre, Block::DeepslateCoalOre])); -pub static NETHER_CARVER_REPLACEABLES: Lazy> = Lazy::new(|| { +pub static CORAL_PLANTS: Lazy> = Lazy::new(|| { HashSet::from_iter(vec![ - Block::SoulSand, - Block::SoulSoil, - Block::Stone, - Block::Granite, - Block::Diorite, - Block::Andesite, - Block::Tuff, - Block::Deepslate, - Block::Netherrack, - Block::Basalt, - Block::Blackstone, - Block::Dirt, - Block::GrassBlock, - Block::Podzol, - Block::CoarseDirt, - Block::Mycelium, - Block::RootedDirt, - Block::MossBlock, - Block::Mud, - Block::MuddyMangroveRoots, - Block::CrimsonNylium, - Block::WarpedNylium, - Block::NetherWartBlock, - Block::WarpedWartBlock, + Block::TubeCoral, + Block::BrainCoral, + Block::BubbleCoral, + Block::FireCoral, + Block::HornCoral, ]) }); -pub static PARROTS_SPAWNABLE_ON: Lazy> = Lazy::new(|| { +pub static CORALS: Lazy> = Lazy::new(|| { + HashSet::from_iter(vec![ + Block::TubeCoralFan, + Block::BrainCoralFan, + Block::BubbleCoralFan, + Block::FireCoralFan, + Block::HornCoralFan, + Block::TubeCoral, + Block::BrainCoral, + Block::BubbleCoral, + Block::FireCoral, + Block::HornCoral, + ]) +}); +pub static WALL_CORALS: Lazy> = Lazy::new(|| { + HashSet::from_iter(vec![ + Block::TubeCoralWallFan, + Block::BrainCoralWallFan, + Block::BubbleCoralWallFan, + Block::FireCoralWallFan, + Block::HornCoralWallFan, + ]) +}); +pub static SAND: Lazy> = Lazy::new(|| { + HashSet::from_iter(vec![ + Block::Sand, + Block::RedSand, + Block::SuspiciousSand, + Block::SuspiciousSand, + ]) +}); +pub static CORAL_BLOCKS: Lazy> = Lazy::new(|| { + HashSet::from_iter(vec![ + Block::TubeCoralBlock, + Block::BrainCoralBlock, + Block::BubbleCoralBlock, + Block::FireCoralBlock, + Block::HornCoralBlock, + ]) +}); +pub static RAILS: Lazy> = Lazy::new(|| { + HashSet::from_iter(vec![ + Block::Rail, + Block::PoweredRail, + Block::DetectorRail, + Block::ActivatorRail, + ]) +}); +pub static ICE: Lazy> = Lazy::new(|| { + HashSet::from_iter(vec![ + Block::Ice, + Block::PackedIce, + Block::BlueIce, + Block::FrostedIce, + ]) +}); +pub static VALID_SPAWN: Lazy> = + Lazy::new(|| HashSet::from_iter(vec![Block::GrassBlock, Block::Podzol])); +pub static LEAVES: Lazy> = Lazy::new(|| { HashSet::from_iter(vec![ - Block::GrassBlock, - Block::Air, Block::JungleLeaves, Block::OakLeaves, Block::SpruceLeaves, @@ -1505,132 +1534,149 @@ pub static PARROTS_SPAWNABLE_ON: Lazy> = Lazy::new(|| { Block::FloweringAzaleaLeaves, Block::MangroveLeaves, Block::CherryLeaves, - Block::CrimsonStem, - Block::StrippedCrimsonStem, - Block::CrimsonHyphae, - Block::StrippedCrimsonHyphae, - Block::WarpedStem, - Block::StrippedWarpedStem, - Block::WarpedHyphae, - Block::StrippedWarpedHyphae, - Block::DarkOakLog, - Block::DarkOakWood, - Block::StrippedDarkOakLog, - Block::StrippedDarkOakWood, - Block::OakLog, - Block::OakWood, - Block::StrippedOakLog, - Block::StrippedOakWood, - Block::AcaciaLog, - Block::AcaciaWood, - Block::StrippedAcaciaLog, - Block::StrippedAcaciaWood, - Block::BirchLog, - Block::BirchWood, - Block::StrippedBirchLog, - Block::StrippedBirchWood, - Block::JungleLog, - Block::JungleWood, - Block::StrippedJungleLog, - Block::StrippedJungleWood, - Block::SpruceLog, - Block::SpruceWood, - Block::StrippedSpruceLog, - Block::StrippedSpruceWood, - Block::MangroveLog, - Block::MangroveWood, - Block::StrippedMangroveLog, - Block::StrippedMangroveWood, - Block::CherryLog, - Block::CherryWood, - Block::StrippedCherryLog, - Block::StrippedCherryWood, ]) }); -pub static NEEDS_IRON_TOOL: Lazy> = Lazy::new(|| { +pub static IMPERMEABLE: Lazy> = Lazy::new(|| { HashSet::from_iter(vec![ - Block::DiamondBlock, - Block::DiamondOre, - Block::DeepslateDiamondOre, - Block::EmeraldOre, - Block::DeepslateEmeraldOre, - Block::EmeraldBlock, - Block::GoldBlock, - Block::RawGoldBlock, - Block::GoldOre, - Block::DeepslateGoldOre, - Block::RedstoneOre, - Block::DeepslateRedstoneOre, + Block::Glass, + Block::WhiteStainedGlass, + Block::OrangeStainedGlass, + Block::MagentaStainedGlass, + Block::LightBlueStainedGlass, + Block::YellowStainedGlass, + Block::LimeStainedGlass, + Block::PinkStainedGlass, + Block::GrayStainedGlass, + Block::LightGrayStainedGlass, + Block::CyanStainedGlass, + Block::PurpleStainedGlass, + Block::BlueStainedGlass, + Block::BrownStainedGlass, + Block::GreenStainedGlass, + Block::RedStainedGlass, + Block::BlackStainedGlass, + Block::TintedGlass, ]) }); -pub static WOODEN_DOORS: Lazy> = Lazy::new(|| { +pub static WOODEN_TRAPDOORS: Lazy> = Lazy::new(|| { HashSet::from_iter(vec![ - Block::OakDoor, - Block::SpruceDoor, - Block::BirchDoor, - Block::JungleDoor, - Block::AcaciaDoor, - Block::DarkOakDoor, - Block::CrimsonDoor, - Block::WarpedDoor, - Block::MangroveDoor, - Block::BambooDoor, - Block::CherryDoor, + Block::AcaciaTrapdoor, + Block::BirchTrapdoor, + Block::DarkOakTrapdoor, + Block::JungleTrapdoor, + Block::OakTrapdoor, + Block::SpruceTrapdoor, + Block::CrimsonTrapdoor, + Block::WarpedTrapdoor, + Block::MangroveTrapdoor, + Block::BambooTrapdoor, + Block::CherryTrapdoor, ]) }); -pub static INFINIBURN_END: Lazy> = - Lazy::new(|| HashSet::from_iter(vec![Block::Bedrock, Block::Netherrack, Block::MagmaBlock])); -pub static MUSHROOM_GROW_BLOCK: Lazy> = Lazy::new(|| { +pub static TRAPDOORS: Lazy> = Lazy::new(|| { HashSet::from_iter(vec![ - Block::Mycelium, - Block::Podzol, - Block::CrimsonNylium, - Block::WarpedNylium, + Block::IronTrapdoor, + Block::AcaciaTrapdoor, + Block::BirchTrapdoor, + Block::DarkOakTrapdoor, + Block::JungleTrapdoor, + Block::OakTrapdoor, + Block::SpruceTrapdoor, + Block::CrimsonTrapdoor, + Block::WarpedTrapdoor, + Block::MangroveTrapdoor, + Block::BambooTrapdoor, + Block::CherryTrapdoor, ]) }); -pub static CROPS: Lazy> = Lazy::new(|| { +pub static SIGNS: Lazy> = Lazy::new(|| { HashSet::from_iter(vec![ - Block::Beetroots, - Block::Carrots, - Block::Potatoes, - Block::Wheat, - Block::MelonStem, - Block::PumpkinStem, - Block::TorchflowerCrop, - Block::PitcherCrop, + Block::OakSign, + Block::SpruceSign, + Block::BirchSign, + Block::AcaciaSign, + Block::JungleSign, + Block::DarkOakSign, + Block::CrimsonSign, + Block::WarpedSign, + Block::MangroveSign, + Block::BambooSign, + Block::CherrySign, + Block::OakWallSign, + Block::SpruceWallSign, + Block::BirchWallSign, + Block::AcaciaWallSign, + Block::JungleWallSign, + Block::DarkOakWallSign, + Block::CrimsonWallSign, + Block::WarpedWallSign, + Block::MangroveWallSign, + Block::BambooWallSign, + Block::CherryWallSign, ]) }); -pub static HOGLIN_REPELLENTS: Lazy> = Lazy::new(|| { +pub static UNDERWATER_BONEMEALS: Lazy> = Lazy::new(|| { HashSet::from_iter(vec![ - Block::WarpedFungus, - Block::PottedWarpedFungus, - Block::NetherPortal, - Block::RespawnAnchor, + Block::Seagrass, + Block::TubeCoralFan, + Block::BrainCoralFan, + Block::BubbleCoralFan, + Block::FireCoralFan, + Block::HornCoralFan, + Block::TubeCoralWallFan, + Block::BrainCoralWallFan, + Block::BubbleCoralWallFan, + Block::FireCoralWallFan, + Block::HornCoralWallFan, + Block::TubeCoral, + Block::BrainCoral, + Block::BubbleCoral, + Block::FireCoral, + Block::HornCoral, ]) }); -pub static NYLIUM: Lazy> = - Lazy::new(|| HashSet::from_iter(vec![Block::CrimsonNylium, Block::WarpedNylium])); -pub static CONCRETE_POWDER: Lazy> = Lazy::new(|| { +pub static CEILING_HANGING_SIGNS: Lazy> = Lazy::new(|| { HashSet::from_iter(vec![ - Block::WhiteConcretePowder, - Block::OrangeConcretePowder, - Block::MagentaConcretePowder, - Block::LightBlueConcretePowder, - Block::YellowConcretePowder, - Block::LimeConcretePowder, - Block::PinkConcretePowder, - Block::GrayConcretePowder, - Block::LightGrayConcretePowder, - Block::CyanConcretePowder, - Block::PurpleConcretePowder, - Block::BlueConcretePowder, - Block::BrownConcretePowder, - Block::GreenConcretePowder, - Block::RedConcretePowder, - Block::BlackConcretePowder, + Block::OakHangingSign, + Block::SpruceHangingSign, + Block::BirchHangingSign, + Block::AcaciaHangingSign, + Block::CherryHangingSign, + Block::JungleHangingSign, + Block::DarkOakHangingSign, + Block::CrimsonHangingSign, + Block::WarpedHangingSign, + Block::MangroveHangingSign, + Block::BambooHangingSign, ]) }); -pub static STANDING_SIGNS: Lazy> = Lazy::new(|| { +pub static ALL_HANGING_SIGNS: Lazy> = Lazy::new(|| { + HashSet::from_iter(vec![ + Block::OakHangingSign, + Block::SpruceHangingSign, + Block::BirchHangingSign, + Block::AcaciaHangingSign, + Block::CherryHangingSign, + Block::JungleHangingSign, + Block::DarkOakHangingSign, + Block::CrimsonHangingSign, + Block::WarpedHangingSign, + Block::MangroveHangingSign, + Block::BambooHangingSign, + Block::OakWallHangingSign, + Block::SpruceWallHangingSign, + Block::BirchWallHangingSign, + Block::AcaciaWallHangingSign, + Block::CherryWallHangingSign, + Block::JungleWallHangingSign, + Block::DarkOakWallHangingSign, + Block::CrimsonWallHangingSign, + Block::WarpedWallHangingSign, + Block::MangroveWallHangingSign, + Block::BambooWallHangingSign, + ]) +}); +pub static ALL_SIGNS: Lazy> = Lazy::new(|| { HashSet::from_iter(vec![ Block::OakSign, Block::SpruceSign, @@ -1643,26 +1689,17 @@ pub static STANDING_SIGNS: Lazy> = Lazy::new(|| { Block::MangroveSign, Block::BambooSign, Block::CherrySign, - ]) -}); -pub static TRAPDOORS: Lazy> = Lazy::new(|| { - HashSet::from_iter(vec![ - Block::IronTrapdoor, - Block::AcaciaTrapdoor, - Block::BirchTrapdoor, - Block::DarkOakTrapdoor, - Block::JungleTrapdoor, - Block::OakTrapdoor, - Block::SpruceTrapdoor, - Block::CrimsonTrapdoor, - Block::WarpedTrapdoor, - Block::MangroveTrapdoor, - Block::BambooTrapdoor, - Block::CherryTrapdoor, - ]) -}); -pub static ALL_HANGING_SIGNS: Lazy> = Lazy::new(|| { - HashSet::from_iter(vec![ + Block::OakWallSign, + Block::SpruceWallSign, + Block::BirchWallSign, + Block::AcaciaWallSign, + Block::JungleWallSign, + Block::DarkOakWallSign, + Block::CrimsonWallSign, + Block::WarpedWallSign, + Block::MangroveWallSign, + Block::BambooWallSign, + Block::CherryWallSign, Block::OakHangingSign, Block::SpruceHangingSign, Block::BirchHangingSign, @@ -1687,9 +1724,126 @@ pub static ALL_HANGING_SIGNS: Lazy> = Lazy::new(|| { Block::BambooWallHangingSign, ]) }); -pub static SOUL_SPEED_BLOCKS: Lazy> = - Lazy::new(|| HashSet::from_iter(vec![Block::SoulSand, Block::SoulSoil])); -pub static BEE_GROWABLES: Lazy> = Lazy::new(|| { +pub static BEDS: Lazy> = Lazy::new(|| { + HashSet::from_iter(vec![ + Block::RedBed, + Block::BlackBed, + Block::BlueBed, + Block::BrownBed, + Block::CyanBed, + Block::GrayBed, + Block::GreenBed, + Block::LightBlueBed, + Block::LightGrayBed, + Block::LimeBed, + Block::MagentaBed, + Block::OrangeBed, + Block::PinkBed, + Block::PurpleBed, + Block::WhiteBed, + Block::YellowBed, + ]) +}); +pub static FENCES: Lazy> = Lazy::new(|| { + HashSet::from_iter(vec![ + Block::NetherBrickFence, + Block::OakFence, + Block::AcaciaFence, + Block::DarkOakFence, + Block::SpruceFence, + Block::BirchFence, + Block::JungleFence, + Block::CrimsonFence, + Block::WarpedFence, + Block::MangroveFence, + Block::BambooFence, + Block::CherryFence, + ]) +}); +pub static DRAGON_IMMUNE: Lazy> = Lazy::new(|| { + HashSet::from_iter(vec![ + Block::Barrier, + Block::Bedrock, + Block::EndPortal, + Block::EndPortalFrame, + Block::EndGateway, + Block::CommandBlock, + Block::RepeatingCommandBlock, + Block::ChainCommandBlock, + Block::StructureBlock, + Block::Jigsaw, + Block::MovingPiston, + Block::Obsidian, + Block::CryingObsidian, + Block::EndStone, + Block::IronBars, + Block::RespawnAnchor, + Block::ReinforcedDeepslate, + ]) +}); +pub static DRAGON_TRANSPARENT: Lazy> = + Lazy::new(|| HashSet::from_iter(vec![Block::Light, Block::Fire, Block::SoulFire])); +pub static WITHER_IMMUNE: Lazy> = Lazy::new(|| { + HashSet::from_iter(vec![ + Block::Barrier, + Block::Bedrock, + Block::EndPortal, + Block::EndPortalFrame, + Block::EndGateway, + Block::CommandBlock, + Block::RepeatingCommandBlock, + Block::ChainCommandBlock, + Block::StructureBlock, + Block::Jigsaw, + Block::MovingPiston, + Block::Light, + Block::ReinforcedDeepslate, + ]) +}); +pub static WITHER_SUMMON_BASE_BLOCKS: Lazy> = + Lazy::new(|| HashSet::from_iter(vec![Block::SoulSand, Block::SoulSoil])); +pub static TALL_FLOWERS: Lazy> = Lazy::new(|| { + HashSet::from_iter(vec![ + Block::Sunflower, + Block::Lilac, + Block::Peony, + Block::RoseBush, + Block::PitcherPlant, + ]) +}); +pub static FLOWERS: Lazy> = Lazy::new(|| { + HashSet::from_iter(vec![ + Block::FloweringAzaleaLeaves, + Block::FloweringAzalea, + Block::MangrovePropagule, + Block::CherryLeaves, + Block::PinkPetals, + Block::ChorusFlower, + Block::SporeBlossom, + 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::Sunflower, + Block::Lilac, + Block::Peony, + Block::RoseBush, + Block::PitcherPlant, + ]) +}); +pub static BEEHIVES: Lazy> = + Lazy::new(|| HashSet::from_iter(vec![Block::BeeNest, Block::Beehive])); +pub static BEE_GROWABLES: Lazy> = Lazy::new(|| { HashSet::from_iter(vec![ Block::SweetBerryBush, Block::CaveVines, @@ -1704,258 +1858,101 @@ pub static BEE_GROWABLES: Lazy> = Lazy::new(|| { Block::PitcherCrop, ]) }); -pub static COMPLETES_FIND_TREE_TUTORIAL: Lazy> = Lazy::new(|| { +pub static SHULKER_BOXES: Lazy> = Lazy::new(|| { HashSet::from_iter(vec![ - Block::JungleLeaves, - Block::OakLeaves, - Block::SpruceLeaves, - Block::DarkOakLeaves, - Block::AcaciaLeaves, - Block::BirchLeaves, - Block::AzaleaLeaves, - Block::FloweringAzaleaLeaves, - Block::MangroveLeaves, - Block::CherryLeaves, - Block::NetherWartBlock, - Block::WarpedWartBlock, - Block::CrimsonStem, - Block::StrippedCrimsonStem, - Block::CrimsonHyphae, - Block::StrippedCrimsonHyphae, - Block::WarpedStem, - Block::StrippedWarpedStem, - Block::WarpedHyphae, - Block::StrippedWarpedHyphae, - Block::DarkOakLog, - Block::DarkOakWood, - Block::StrippedDarkOakLog, - Block::StrippedDarkOakWood, - Block::OakLog, - Block::OakWood, - Block::StrippedOakLog, - Block::StrippedOakWood, - Block::AcaciaLog, - Block::AcaciaWood, - Block::StrippedAcaciaLog, - Block::StrippedAcaciaWood, - Block::BirchLog, - Block::BirchWood, - Block::StrippedBirchLog, - Block::StrippedBirchWood, - Block::JungleLog, - Block::JungleWood, - Block::StrippedJungleLog, - Block::StrippedJungleWood, - Block::SpruceLog, - Block::SpruceWood, - Block::StrippedSpruceLog, - Block::StrippedSpruceWood, - Block::MangroveLog, - Block::MangroveWood, - Block::StrippedMangroveLog, - Block::StrippedMangroveWood, - Block::CherryLog, - Block::CherryWood, - Block::StrippedCherryLog, - Block::StrippedCherryWood, + Block::ShulkerBox, + Block::BlackShulkerBox, + Block::BlueShulkerBox, + Block::BrownShulkerBox, + Block::CyanShulkerBox, + Block::GrayShulkerBox, + Block::GreenShulkerBox, + Block::LightBlueShulkerBox, + Block::LightGrayShulkerBox, + Block::LimeShulkerBox, + Block::MagentaShulkerBox, + Block::OrangeShulkerBox, + Block::PinkShulkerBox, + Block::PurpleShulkerBox, + Block::RedShulkerBox, + Block::WhiteShulkerBox, + Block::YellowShulkerBox, ]) }); -pub static UNDERWATER_BONEMEALS: Lazy> = Lazy::new(|| { +pub static CROPS: Lazy> = Lazy::new(|| { HashSet::from_iter(vec![ - Block::Seagrass, - Block::TubeCoralFan, - Block::BrainCoralFan, - Block::BubbleCoralFan, - Block::FireCoralFan, - Block::HornCoralFan, - Block::TubeCoralWallFan, - Block::BrainCoralWallFan, - Block::BubbleCoralWallFan, - Block::FireCoralWallFan, - Block::HornCoralWallFan, - Block::TubeCoral, - Block::BrainCoral, - Block::BubbleCoral, - Block::FireCoral, - Block::HornCoral, + Block::Beetroots, + Block::Carrots, + Block::Potatoes, + Block::Wheat, + Block::MelonStem, + Block::PumpkinStem, + Block::TorchflowerCrop, + Block::PitcherCrop, ]) }); -pub static ACACIA_LOGS: Lazy> = Lazy::new(|| { +pub static PORTALS: Lazy> = Lazy::new(|| { HashSet::from_iter(vec![ - Block::AcaciaLog, - Block::AcaciaWood, - Block::StrippedAcaciaLog, - Block::StrippedAcaciaWood, + Block::NetherPortal, + Block::EndPortal, + Block::EndGateway, ]) }); -pub static SAND: Lazy> = Lazy::new(|| { +pub static FIRE: Lazy> = + Lazy::new(|| HashSet::from_iter(vec![Block::Fire, Block::SoulFire])); +pub static BEACON_BASE_BLOCKS: Lazy> = Lazy::new(|| { HashSet::from_iter(vec![ - Block::Sand, - Block::RedSand, - Block::SuspiciousSand, - Block::SuspiciousSand, + Block::NetheriteBlock, + Block::EmeraldBlock, + Block::DiamondBlock, + Block::GoldBlock, + Block::IronBlock, ]) }); -pub static CEILING_HANGING_SIGNS: Lazy> = Lazy::new(|| { - HashSet::from_iter(vec![ - Block::OakHangingSign, - Block::SpruceHangingSign, - Block::BirchHangingSign, - Block::AcaciaHangingSign, - Block::CherryHangingSign, - Block::JungleHangingSign, - Block::DarkOakHangingSign, - Block::CrimsonHangingSign, - Block::WarpedHangingSign, - Block::MangroveHangingSign, - Block::BambooHangingSign, - ]) -}); -pub static WOODEN_TRAPDOORS: Lazy> = Lazy::new(|| { - HashSet::from_iter(vec![ - Block::AcaciaTrapdoor, - Block::BirchTrapdoor, - Block::DarkOakTrapdoor, - Block::JungleTrapdoor, - Block::OakTrapdoor, - Block::SpruceTrapdoor, - Block::CrimsonTrapdoor, - Block::WarpedTrapdoor, - Block::MangroveTrapdoor, - Block::BambooTrapdoor, - Block::CherryTrapdoor, - ]) -}); -pub static BASE_STONE_NETHER: Lazy> = - Lazy::new(|| HashSet::from_iter(vec![Block::Netherrack, Block::Basalt, Block::Blackstone])); -pub static CHERRY_LOGS: Lazy> = Lazy::new(|| { - HashSet::from_iter(vec![ - Block::CherryLog, - Block::CherryWood, - Block::StrippedCherryLog, - Block::StrippedCherryWood, - ]) -}); -pub static SCULK_REPLACEABLE_WORLD_GEN: Lazy> = Lazy::new(|| { - HashSet::from_iter(vec![ - Block::DeepslateBricks, - Block::DeepslateTiles, - Block::CobbledDeepslate, - Block::CrackedDeepslateBricks, - Block::CrackedDeepslateTiles, - Block::PolishedDeepslate, - Block::Sand, - Block::RedSand, - Block::Gravel, - Block::SoulSand, - Block::SoulSoil, - Block::Calcite, - Block::SmoothBasalt, - Block::Clay, - Block::DripstoneBlock, - Block::EndStone, - Block::RedSandstone, - Block::Sandstone, - Block::Stone, - Block::Granite, - Block::Diorite, - Block::Andesite, - Block::Tuff, - Block::Deepslate, - Block::Dirt, - Block::GrassBlock, - Block::Podzol, - Block::CoarseDirt, - Block::Mycelium, - Block::RootedDirt, - Block::MossBlock, - Block::Mud, - Block::MuddyMangroveRoots, - Block::Terracotta, - Block::WhiteTerracotta, - Block::OrangeTerracotta, - Block::MagentaTerracotta, - Block::LightBlueTerracotta, - Block::YellowTerracotta, - Block::LimeTerracotta, - Block::PinkTerracotta, - Block::GrayTerracotta, - Block::LightGrayTerracotta, - Block::CyanTerracotta, - Block::PurpleTerracotta, - Block::BlueTerracotta, - Block::BrownTerracotta, - Block::GreenTerracotta, - Block::RedTerracotta, - Block::BlackTerracotta, - Block::CrimsonNylium, - Block::WarpedNylium, - Block::Netherrack, - Block::Basalt, - Block::Blackstone, - ]) -}); -pub static STAIRS: Lazy> = Lazy::new(|| { - HashSet::from_iter(vec![ - Block::BambooMosaicStairs, - Block::CobblestoneStairs, - Block::SandstoneStairs, - Block::NetherBrickStairs, - Block::StoneBrickStairs, - Block::BrickStairs, - Block::PurpurStairs, - Block::QuartzStairs, - Block::RedSandstoneStairs, - Block::PrismarineBrickStairs, - Block::PrismarineStairs, - Block::DarkPrismarineStairs, - Block::PolishedGraniteStairs, - Block::SmoothRedSandstoneStairs, - Block::MossyStoneBrickStairs, - Block::PolishedDioriteStairs, - Block::MossyCobblestoneStairs, - Block::EndStoneBrickStairs, - Block::StoneStairs, - Block::SmoothSandstoneStairs, - Block::SmoothQuartzStairs, - Block::GraniteStairs, - Block::AndesiteStairs, - Block::RedNetherBrickStairs, - Block::PolishedAndesiteStairs, - Block::DioriteStairs, - Block::BlackstoneStairs, - Block::PolishedBlackstoneBrickStairs, - Block::PolishedBlackstoneStairs, - Block::CobbledDeepslateStairs, - Block::PolishedDeepslateStairs, - Block::DeepslateTileStairs, - Block::DeepslateBrickStairs, - Block::OxidizedCutCopperStairs, - Block::WeatheredCutCopperStairs, - Block::ExposedCutCopperStairs, - Block::CutCopperStairs, - Block::WaxedWeatheredCutCopperStairs, - Block::WaxedExposedCutCopperStairs, - Block::WaxedCutCopperStairs, - Block::WaxedOxidizedCutCopperStairs, - Block::MudBrickStairs, - Block::OakStairs, - Block::SpruceStairs, - Block::BirchStairs, - Block::JungleStairs, - Block::AcaciaStairs, - Block::DarkOakStairs, - Block::CrimsonStairs, - Block::WarpedStairs, - Block::MangroveStairs, - Block::BambooStairs, - Block::CherryStairs, - ]) -}); -pub static ANIMALS_SPAWNABLE_ON: Lazy> = - Lazy::new(|| HashSet::from_iter(vec![Block::GrassBlock])); -pub static SIGNS: Lazy> = Lazy::new(|| { +pub static WART_BLOCKS: Lazy> = + Lazy::new(|| HashSet::from_iter(vec![Block::NetherWartBlock, Block::WarpedWartBlock])); +pub static SOUL_SPEED_BLOCKS: Lazy> = + Lazy::new(|| HashSet::from_iter(vec![Block::SoulSand, Block::SoulSoil])); +pub static WALL_POST_OVERRIDE: Lazy> = Lazy::new(|| { HashSet::from_iter(vec![ + Block::Torch, + Block::SoulTorch, + Block::RedstoneTorch, + Block::Tripwire, + Block::WhiteBanner, + Block::OrangeBanner, + Block::MagentaBanner, + Block::LightBlueBanner, + Block::YellowBanner, + Block::LimeBanner, + Block::PinkBanner, + Block::GrayBanner, + Block::LightGrayBanner, + Block::CyanBanner, + Block::PurpleBanner, + Block::BlueBanner, + Block::BrownBanner, + Block::GreenBanner, + Block::RedBanner, + Block::BlackBanner, + Block::WhiteWallBanner, + Block::OrangeWallBanner, + Block::MagentaWallBanner, + Block::LightBlueWallBanner, + Block::YellowWallBanner, + Block::LimeWallBanner, + Block::PinkWallBanner, + Block::GrayWallBanner, + Block::LightGrayWallBanner, + Block::CyanWallBanner, + Block::PurpleWallBanner, + Block::BlueWallBanner, + Block::BrownWallBanner, + Block::GreenWallBanner, + Block::RedWallBanner, + Block::BlackWallBanner, + Block::LightWeightedPressurePlate, + Block::HeavyWeightedPressurePlate, Block::OakSign, Block::SpruceSign, Block::BirchSign, @@ -1978,6 +1975,32 @@ pub static SIGNS: Lazy> = Lazy::new(|| { Block::MangroveWallSign, Block::BambooWallSign, Block::CherryWallSign, + Block::OakPressurePlate, + Block::SprucePressurePlate, + Block::BirchPressurePlate, + Block::JunglePressurePlate, + Block::AcaciaPressurePlate, + Block::DarkOakPressurePlate, + Block::CrimsonPressurePlate, + Block::WarpedPressurePlate, + Block::MangrovePressurePlate, + Block::BambooPressurePlate, + Block::CherryPressurePlate, + Block::StonePressurePlate, + Block::PolishedBlackstonePressurePlate, + ]) +}); +pub static CLIMBABLE: Lazy> = Lazy::new(|| { + HashSet::from_iter(vec![ + Block::Ladder, + Block::Vine, + Block::Scaffolding, + Block::WeepingVines, + Block::WeepingVinesPlant, + Block::TwistingVines, + Block::TwistingVinesPlant, + Block::CaveVines, + Block::CaveVinesPlant, ]) }); pub static FALL_DAMAGE_RESETTING: Lazy> = Lazy::new(|| { @@ -1995,298 +2018,44 @@ pub static FALL_DAMAGE_RESETTING: Lazy> = Lazy::new(|| { Block::CaveVinesPlant, ]) }); -pub static ENDERMAN_HOLDABLE: Lazy> = Lazy::new(|| { +pub static HOGLIN_REPELLENTS: Lazy> = Lazy::new(|| { HashSet::from_iter(vec![ - Block::Sand, - Block::RedSand, - Block::Gravel, - Block::BrownMushroom, - Block::RedMushroom, - Block::Tnt, - Block::Cactus, - Block::Clay, - Block::Pumpkin, - Block::CarvedPumpkin, - Block::Melon, - Block::CrimsonFungus, - Block::CrimsonNylium, - Block::CrimsonRoots, Block::WarpedFungus, - Block::WarpedNylium, - Block::WarpedRoots, - 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::Dirt, - Block::GrassBlock, - Block::Podzol, - Block::CoarseDirt, - Block::Mycelium, - Block::RootedDirt, - Block::MossBlock, - Block::Mud, - Block::MuddyMangroveRoots, + Block::PottedWarpedFungus, + Block::NetherPortal, + Block::RespawnAnchor, ]) }); -pub static GEODE_INVALID_BLOCKS: Lazy> = Lazy::new(|| { - HashSet::from_iter(vec![ - Block::Bedrock, - Block::Water, - Block::Lava, - Block::Ice, - Block::PackedIce, - Block::BlueIce, - ]) -}); -pub static SMALL_DRIPLEAF_PLACEABLE: Lazy> = - Lazy::new(|| HashSet::from_iter(vec![Block::Clay, Block::MossBlock])); -pub static ENCHANTMENT_POWER_TRANSMITTER: Lazy> = Lazy::new(|| { +pub static PIGLIN_REPELLENTS: Lazy> = Lazy::new(|| { HashSet::from_iter(vec![ - Block::Air, - Block::Water, - Block::Lava, - Block::ShortGrass, - Block::Fern, - Block::DeadBush, - Block::Seagrass, - Block::TallSeagrass, - Block::Fire, Block::SoulFire, - Block::Snow, - Block::Vine, - Block::GlowLichen, - Block::Light, - Block::TallGrass, - Block::LargeFern, - Block::StructureVoid, - Block::VoidAir, - Block::CaveAir, - Block::BubbleColumn, - Block::WarpedRoots, - Block::NetherSprouts, - Block::CrimsonRoots, - Block::HangingRoots, - ]) -}); -pub static ANVIL: Lazy> = - Lazy::new(|| HashSet::from_iter(vec![Block::Anvil, Block::ChippedAnvil, Block::DamagedAnvil])); -pub static CONVERTABLE_TO_MUD: Lazy> = - Lazy::new(|| HashSet::from_iter(vec![Block::Dirt, Block::CoarseDirt, Block::RootedDirt])); -pub static SMELTS_TO_GLASS: Lazy> = - Lazy::new(|| HashSet::from_iter(vec![Block::Sand, Block::RedSand])); -pub static BAMBOO_BLOCKS: Lazy> = - Lazy::new(|| HashSet::from_iter(vec![Block::BambooBlock, Block::StrippedBambooBlock])); -pub static WALL_POST_OVERRIDE: Lazy> = Lazy::new(|| { - HashSet::from_iter(vec![ - Block::Torch, Block::SoulTorch, - Block::RedstoneTorch, - Block::Tripwire, - Block::WhiteBanner, - Block::OrangeBanner, - Block::MagentaBanner, - Block::LightBlueBanner, - Block::YellowBanner, - Block::LimeBanner, - Block::PinkBanner, - Block::GrayBanner, - Block::LightGrayBanner, - Block::CyanBanner, - Block::PurpleBanner, - Block::BlueBanner, - Block::BrownBanner, - Block::GreenBanner, - Block::RedBanner, - Block::BlackBanner, - Block::WhiteWallBanner, - Block::OrangeWallBanner, - Block::MagentaWallBanner, - Block::LightBlueWallBanner, - Block::YellowWallBanner, - Block::LimeWallBanner, - Block::PinkWallBanner, - Block::GrayWallBanner, - Block::LightGrayWallBanner, - Block::CyanWallBanner, - Block::PurpleWallBanner, - Block::BlueWallBanner, - Block::BrownWallBanner, - Block::GreenWallBanner, - Block::RedWallBanner, - Block::BlackWallBanner, - Block::LightWeightedPressurePlate, - Block::HeavyWeightedPressurePlate, - Block::OakSign, - Block::SpruceSign, - Block::BirchSign, - Block::AcaciaSign, - Block::JungleSign, - Block::DarkOakSign, - Block::CrimsonSign, - Block::WarpedSign, - Block::MangroveSign, - Block::BambooSign, - Block::CherrySign, - Block::OakWallSign, - Block::SpruceWallSign, - Block::BirchWallSign, - Block::AcaciaWallSign, - Block::JungleWallSign, - Block::DarkOakWallSign, - Block::CrimsonWallSign, - Block::WarpedWallSign, - Block::MangroveWallSign, - Block::BambooWallSign, - Block::CherryWallSign, - Block::OakPressurePlate, - Block::SprucePressurePlate, - Block::BirchPressurePlate, - Block::JunglePressurePlate, - Block::AcaciaPressurePlate, - Block::DarkOakPressurePlate, - Block::CrimsonPressurePlate, - Block::WarpedPressurePlate, - Block::MangrovePressurePlate, - Block::BambooPressurePlate, - Block::CherryPressurePlate, - Block::StonePressurePlate, - Block::PolishedBlackstonePressurePlate, - ]) -}); -pub static BASE_STONE_OVERWORLD: Lazy> = Lazy::new(|| { - HashSet::from_iter(vec![ - Block::Stone, - Block::Granite, - Block::Diorite, - Block::Andesite, - Block::Tuff, - Block::Deepslate, + Block::SoulLantern, + Block::SoulWallTorch, + Block::SoulCampfire, ]) }); -pub static INCORRECT_FOR_WOODEN_TOOL: Lazy> = Lazy::new(|| { +pub static GOLD_ORES: Lazy> = Lazy::new(|| { HashSet::from_iter(vec![ - Block::Obsidian, - Block::CryingObsidian, - Block::NetheriteBlock, - Block::RespawnAnchor, - Block::AncientDebris, - Block::DiamondBlock, - Block::DiamondOre, - Block::DeepslateDiamondOre, - Block::EmeraldOre, - Block::DeepslateEmeraldOre, - Block::EmeraldBlock, - Block::GoldBlock, - Block::RawGoldBlock, Block::GoldOre, + Block::NetherGoldOre, Block::DeepslateGoldOre, - Block::RedstoneOre, - Block::DeepslateRedstoneOre, - Block::IronBlock, - Block::RawIronBlock, - Block::IronOre, - Block::DeepslateIronOre, - Block::LapisBlock, - Block::LapisOre, - Block::DeepslateLapisOre, - Block::CopperBlock, - Block::RawCopperBlock, - Block::CopperOre, - Block::DeepslateCopperOre, - Block::CutCopperSlab, - Block::CutCopperStairs, - Block::CutCopper, - Block::WeatheredCopper, - Block::WeatheredCutCopperSlab, - Block::WeatheredCutCopperStairs, - Block::WeatheredCutCopper, - Block::OxidizedCopper, - Block::OxidizedCutCopperSlab, - Block::OxidizedCutCopperStairs, - Block::OxidizedCutCopper, - Block::ExposedCopper, - Block::ExposedCutCopperSlab, - Block::ExposedCutCopperStairs, - Block::ExposedCutCopper, - Block::WaxedCopperBlock, - Block::WaxedCutCopperSlab, - Block::WaxedCutCopperStairs, - Block::WaxedCutCopper, - Block::WaxedWeatheredCopper, - Block::WaxedWeatheredCutCopperSlab, - Block::WaxedWeatheredCutCopperStairs, - Block::WaxedWeatheredCutCopper, - Block::WaxedExposedCopper, - Block::WaxedExposedCutCopperSlab, - Block::WaxedExposedCutCopperStairs, - Block::WaxedExposedCutCopper, - Block::WaxedOxidizedCopper, - Block::WaxedOxidizedCutCopperSlab, - Block::WaxedOxidizedCutCopperStairs, - Block::WaxedOxidizedCutCopper, - Block::LightningRod, - ]) -}); -pub static MANGROVE_ROOTS_CAN_GROW_THROUGH: Lazy> = Lazy::new(|| { - HashSet::from_iter(vec![ - Block::Mud, - Block::MuddyMangroveRoots, - Block::MangroveRoots, - Block::MossCarpet, - Block::Vine, - Block::MangrovePropagule, - Block::Snow, - ]) -}); -pub static WOODEN_STAIRS: Lazy> = Lazy::new(|| { - HashSet::from_iter(vec![ - Block::OakStairs, - Block::SpruceStairs, - Block::BirchStairs, - Block::JungleStairs, - Block::AcaciaStairs, - Block::DarkOakStairs, - Block::CrimsonStairs, - Block::WarpedStairs, - Block::MangroveStairs, - Block::BambooStairs, - Block::CherryStairs, ]) }); -pub static DEAD_BUSH_MAY_PLACE_ON: Lazy> = Lazy::new(|| { +pub static IRON_ORES: Lazy> = + Lazy::new(|| HashSet::from_iter(vec![Block::IronOre, Block::DeepslateIronOre])); +pub static DIAMOND_ORES: Lazy> = + Lazy::new(|| HashSet::from_iter(vec![Block::DiamondOre, Block::DeepslateDiamondOre])); +pub static BAMBOO_PLANTABLE_ON: Lazy> = Lazy::new(|| { HashSet::from_iter(vec![ + Block::Bamboo, + Block::BambooSapling, + Block::Gravel, + Block::SuspiciousGravel, Block::Sand, Block::RedSand, Block::SuspiciousSand, Block::SuspiciousSand, - Block::Terracotta, - Block::WhiteTerracotta, - Block::OrangeTerracotta, - Block::MagentaTerracotta, - Block::LightBlueTerracotta, - Block::YellowTerracotta, - Block::LimeTerracotta, - Block::PinkTerracotta, - Block::GrayTerracotta, - Block::LightGrayTerracotta, - Block::CyanTerracotta, - Block::PurpleTerracotta, - Block::BlueTerracotta, - Block::BrownTerracotta, - Block::GreenTerracotta, - Block::RedTerracotta, - Block::BlackTerracotta, Block::Dirt, Block::GrassBlock, Block::Podzol, @@ -2298,214 +2067,258 @@ pub static DEAD_BUSH_MAY_PLACE_ON: Lazy> = Lazy::new(|| { Block::MuddyMangroveRoots, ]) }); -pub static LAVA_POOL_STONE_CANNOT_REPLACE: Lazy> = Lazy::new(|| { - HashSet::from_iter(vec![ - Block::Bedrock, - Block::Spawner, - Block::Chest, - Block::EndPortalFrame, - Block::ReinforcedDeepslate, - Block::JungleLeaves, - Block::OakLeaves, - Block::SpruceLeaves, - Block::DarkOakLeaves, - Block::AcaciaLeaves, - Block::BirchLeaves, - Block::AzaleaLeaves, - Block::FloweringAzaleaLeaves, - Block::MangroveLeaves, - Block::CherryLeaves, - Block::CrimsonStem, - Block::StrippedCrimsonStem, - Block::CrimsonHyphae, - Block::StrippedCrimsonHyphae, - Block::WarpedStem, - Block::StrippedWarpedStem, - Block::WarpedHyphae, - Block::StrippedWarpedHyphae, - Block::DarkOakLog, - Block::DarkOakWood, - Block::StrippedDarkOakLog, - Block::StrippedDarkOakWood, - Block::OakLog, - Block::OakWood, - Block::StrippedOakLog, - Block::StrippedOakWood, - Block::AcaciaLog, - Block::AcaciaWood, - Block::StrippedAcaciaLog, - Block::StrippedAcaciaWood, - Block::BirchLog, - Block::BirchWood, - Block::StrippedBirchLog, - Block::StrippedBirchWood, - Block::JungleLog, - Block::JungleWood, - Block::StrippedJungleLog, - Block::StrippedJungleWood, - Block::SpruceLog, - Block::SpruceWood, - Block::StrippedSpruceLog, - Block::StrippedSpruceWood, - Block::MangroveLog, - Block::MangroveWood, - Block::StrippedMangroveLog, - Block::StrippedMangroveWood, - Block::CherryLog, - Block::CherryWood, - Block::StrippedCherryLog, - Block::StrippedCherryWood, - ]) -}); -pub static STONE_BUTTONS: Lazy> = - Lazy::new(|| HashSet::from_iter(vec![Block::StoneButton, Block::PolishedBlackstoneButton])); -pub static DRIPSTONE_REPLACEABLE_BLOCKS: Lazy> = Lazy::new(|| { +pub static COAL_ORES: Lazy> = + Lazy::new(|| HashSet::from_iter(vec![Block::CoalOre, Block::DeepslateCoalOre])); +pub static REDSTONE_ORES: Lazy> = + Lazy::new(|| HashSet::from_iter(vec![Block::RedstoneOre, Block::DeepslateRedstoneOre])); +pub static EMERALD_ORES: Lazy> = + Lazy::new(|| HashSet::from_iter(vec![Block::EmeraldOre, Block::DeepslateEmeraldOre])); +pub static COPPER_ORES: Lazy> = + Lazy::new(|| HashSet::from_iter(vec![Block::CopperOre, Block::DeepslateCopperOre])); +pub static LAPIS_ORES: Lazy> = + Lazy::new(|| HashSet::from_iter(vec![Block::LapisOre, Block::DeepslateLapisOre])); +pub static SOUL_FIRE_BASE_BLOCKS: Lazy> = + Lazy::new(|| HashSet::from_iter(vec![Block::SoulSand, Block::SoulSoil])); +pub static STRIDER_WARM_BLOCKS: Lazy> = + Lazy::new(|| HashSet::from_iter(vec![Block::Lava])); +pub static CAMPFIRES: Lazy> = + Lazy::new(|| HashSet::from_iter(vec![Block::Campfire, Block::SoulCampfire])); +pub static GUARDED_BY_PIGLINS: Lazy> = Lazy::new(|| { HashSet::from_iter(vec![ - Block::Stone, - Block::Granite, - Block::Diorite, - Block::Andesite, - Block::Tuff, - Block::Deepslate, + Block::GoldBlock, + Block::Barrel, + Block::Chest, + Block::EnderChest, + Block::GildedBlackstone, + Block::TrappedChest, + Block::RawGoldBlock, + Block::ShulkerBox, + Block::BlackShulkerBox, + Block::BlueShulkerBox, + Block::BrownShulkerBox, + Block::CyanShulkerBox, + Block::GrayShulkerBox, + Block::GreenShulkerBox, + Block::LightBlueShulkerBox, + Block::LightGrayShulkerBox, + Block::LimeShulkerBox, + Block::MagentaShulkerBox, + Block::OrangeShulkerBox, + Block::PinkShulkerBox, + Block::PurpleShulkerBox, + Block::RedShulkerBox, + Block::WhiteShulkerBox, + Block::YellowShulkerBox, + Block::GoldOre, + Block::NetherGoldOre, + Block::DeepslateGoldOre, ]) }); -pub static BUTTONS: Lazy> = Lazy::new(|| { +pub static PREVENT_MOB_SPAWNING_INSIDE: Lazy> = Lazy::new(|| { HashSet::from_iter(vec![ - Block::OakButton, - Block::SpruceButton, - Block::BirchButton, - Block::JungleButton, - Block::AcaciaButton, - Block::DarkOakButton, - Block::CrimsonButton, - Block::WarpedButton, - Block::MangroveButton, - Block::BambooButton, - Block::CherryButton, - Block::StoneButton, - Block::PolishedBlackstoneButton, + Block::Rail, + Block::PoweredRail, + Block::DetectorRail, + Block::ActivatorRail, ]) }); -pub static PIGLIN_REPELLENTS: Lazy> = Lazy::new(|| { +pub static FENCE_GATES: Lazy> = Lazy::new(|| { HashSet::from_iter(vec![ - Block::SoulFire, - Block::SoulTorch, - Block::SoulLantern, - Block::SoulWallTorch, - Block::SoulCampfire, + Block::AcaciaFenceGate, + Block::BirchFenceGate, + Block::DarkOakFenceGate, + Block::JungleFenceGate, + Block::OakFenceGate, + Block::SpruceFenceGate, + Block::CrimsonFenceGate, + Block::WarpedFenceGate, + Block::MangroveFenceGate, + Block::BambooFenceGate, + Block::CherryFenceGate, ]) }); -pub static RABBITS_SPAWNABLE_ON: Lazy> = Lazy::new(|| { +pub static UNSTABLE_BOTTOM_CENTER: Lazy> = Lazy::new(|| { HashSet::from_iter(vec![ - Block::GrassBlock, - Block::Snow, - Block::SnowBlock, - Block::Sand, + Block::AcaciaFenceGate, + Block::BirchFenceGate, + Block::DarkOakFenceGate, + Block::JungleFenceGate, + Block::OakFenceGate, + Block::SpruceFenceGate, + Block::CrimsonFenceGate, + Block::WarpedFenceGate, + Block::MangroveFenceGate, + Block::BambooFenceGate, + Block::CherryFenceGate, ]) }); -pub static SMALL_FLOWERS: Lazy> = Lazy::new(|| { +pub static MUSHROOM_GROW_BLOCK: Lazy> = Lazy::new(|| { HashSet::from_iter(vec![ - 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::Mycelium, + Block::Podzol, + Block::CrimsonNylium, + Block::WarpedNylium, ]) }); -pub static CAULDRONS: Lazy> = Lazy::new(|| { +pub static INFINIBURN_OVERWORLD: Lazy> = + Lazy::new(|| HashSet::from_iter(vec![Block::Netherrack, Block::MagmaBlock])); +pub static INFINIBURN_NETHER: Lazy> = + Lazy::new(|| HashSet::from_iter(vec![Block::Netherrack, Block::MagmaBlock])); +pub static INFINIBURN_END: Lazy> = + Lazy::new(|| HashSet::from_iter(vec![Block::Bedrock, Block::Netherrack, Block::MagmaBlock])); +pub static STONE_ORE_REPLACEABLES: Lazy> = Lazy::new(|| { HashSet::from_iter(vec![ - Block::Cauldron, - Block::WaterCauldron, - Block::LavaCauldron, - Block::PowderSnowCauldron, + Block::Stone, + Block::Granite, + Block::Diorite, + Block::Andesite, ]) }); -pub static MANGROVE_LOGS_CAN_GROW_THROUGH: Lazy> = Lazy::new(|| { +pub static DEEPSLATE_ORE_REPLACEABLES: Lazy> = + Lazy::new(|| HashSet::from_iter(vec![Block::Deepslate, Block::Tuff])); +pub static BASE_STONE_OVERWORLD: Lazy> = Lazy::new(|| { HashSet::from_iter(vec![ - Block::Mud, - Block::MuddyMangroveRoots, - Block::MangroveRoots, - Block::MangroveLeaves, - Block::MangroveLog, - Block::MangrovePropagule, - Block::MossCarpet, - Block::Vine, + Block::Stone, + Block::Granite, + Block::Diorite, + Block::Andesite, + Block::Tuff, + Block::Deepslate, ]) }); -pub static IMPERMEABLE: Lazy> = Lazy::new(|| { +pub static CANDLES: Lazy> = Lazy::new(|| { HashSet::from_iter(vec![ - Block::Glass, - Block::WhiteStainedGlass, - Block::OrangeStainedGlass, - Block::MagentaStainedGlass, - Block::LightBlueStainedGlass, - Block::YellowStainedGlass, - Block::LimeStainedGlass, - Block::PinkStainedGlass, - Block::GrayStainedGlass, - Block::LightGrayStainedGlass, - Block::CyanStainedGlass, - Block::PurpleStainedGlass, - Block::BlueStainedGlass, - Block::BrownStainedGlass, - Block::GreenStainedGlass, - Block::RedStainedGlass, - Block::BlackStainedGlass, - Block::TintedGlass, + Block::Candle, + Block::WhiteCandle, + Block::OrangeCandle, + Block::MagentaCandle, + Block::LightBlueCandle, + Block::YellowCandle, + Block::LimeCandle, + Block::PinkCandle, + Block::GrayCandle, + Block::LightGrayCandle, + Block::CyanCandle, + Block::PurpleCandle, + Block::BlueCandle, + Block::BrownCandle, + Block::GreenCandle, + Block::RedCandle, + Block::BlackCandle, ]) }); -pub static DIAMOND_ORES: Lazy> = - Lazy::new(|| HashSet::from_iter(vec![Block::DiamondOre, Block::DeepslateDiamondOre])); -pub static IRON_ORES: Lazy> = - Lazy::new(|| HashSet::from_iter(vec![Block::IronOre, Block::DeepslateIronOre])); -pub static TERRACOTTA: Lazy> = Lazy::new(|| { +pub static STANDING_SIGNS: Lazy> = Lazy::new(|| { HashSet::from_iter(vec![ - Block::Terracotta, - Block::WhiteTerracotta, - Block::OrangeTerracotta, - Block::MagentaTerracotta, - Block::LightBlueTerracotta, - Block::YellowTerracotta, - Block::LimeTerracotta, - Block::PinkTerracotta, - Block::GrayTerracotta, - Block::LightGrayTerracotta, - Block::CyanTerracotta, - Block::PurpleTerracotta, - Block::BlueTerracotta, - Block::BrownTerracotta, - Block::GreenTerracotta, - Block::RedTerracotta, - Block::BlackTerracotta, + Block::OakSign, + Block::SpruceSign, + Block::BirchSign, + Block::AcaciaSign, + Block::JungleSign, + Block::DarkOakSign, + Block::CrimsonSign, + Block::WarpedSign, + Block::MangroveSign, + Block::BambooSign, + Block::CherrySign, ]) }); -pub static OVERWORLD_CARVER_REPLACEABLES: Lazy> = Lazy::new(|| { +pub static WALL_SIGNS: Lazy> = Lazy::new(|| { HashSet::from_iter(vec![ - Block::Water, - Block::Gravel, - Block::SuspiciousGravel, - Block::Sandstone, - Block::RedSandstone, - Block::Calcite, + Block::OakWallSign, + Block::SpruceWallSign, + Block::BirchWallSign, + Block::AcaciaWallSign, + Block::JungleWallSign, + Block::DarkOakWallSign, + Block::CrimsonWallSign, + Block::WarpedWallSign, + Block::MangroveWallSign, + Block::BambooWallSign, + Block::CherryWallSign, + ]) +}); +pub static CANDLE_CAKES: Lazy> = Lazy::new(|| { + HashSet::from_iter(vec![ + Block::CandleCake, + Block::WhiteCandleCake, + Block::OrangeCandleCake, + Block::MagentaCandleCake, + Block::LightBlueCandleCake, + Block::YellowCandleCake, + Block::LimeCandleCake, + Block::PinkCandleCake, + Block::GrayCandleCake, + Block::LightGrayCandleCake, + Block::CyanCandleCake, + Block::PurpleCandleCake, + Block::BlueCandleCake, + Block::BrownCandleCake, + Block::GreenCandleCake, + Block::RedCandleCake, + Block::BlackCandleCake, + ]) +}); +pub static CRYSTAL_SOUND_BLOCKS: Lazy> = + Lazy::new(|| HashSet::from_iter(vec![Block::AmethystBlock, Block::BuddingAmethyst])); +pub static SMELTS_TO_GLASS: Lazy> = + Lazy::new(|| HashSet::from_iter(vec![Block::Sand, Block::RedSand])); +pub static INSIDE_STEP_SOUND_BLOCKS: Lazy> = Lazy::new(|| { + HashSet::from_iter(vec![ + Block::PowderSnow, + Block::SculkVein, + Block::GlowLichen, + Block::LilyPad, + Block::SmallAmethystBud, + Block::PinkPetals, + ]) +}); +pub static COMBINATION_STEP_SOUND_BLOCKS: Lazy> = Lazy::new(|| { + HashSet::from_iter(vec![ + Block::MossCarpet, Block::Snow, - Block::PackedIce, - Block::RawIronBlock, - Block::RawCopperBlock, + Block::NetherSprouts, + Block::WarpedRoots, + Block::CrimsonRoots, + Block::WhiteCarpet, + Block::OrangeCarpet, + Block::MagentaCarpet, + Block::LightBlueCarpet, + Block::YellowCarpet, + Block::LimeCarpet, + Block::PinkCarpet, + Block::GrayCarpet, + Block::LightGrayCarpet, + Block::CyanCarpet, + Block::PurpleCarpet, + Block::BlueCarpet, + Block::BrownCarpet, + Block::GreenCarpet, + Block::RedCarpet, + Block::BlackCarpet, + ]) +}); +pub static DRIPSTONE_REPLACEABLE_BLOCKS: Lazy> = Lazy::new(|| { + HashSet::from_iter(vec![ + Block::Stone, + Block::Granite, + Block::Diorite, + Block::Andesite, + Block::Tuff, + Block::Deepslate, + ]) +}); +pub static BASE_STONE_NETHER: Lazy> = + Lazy::new(|| HashSet::from_iter(vec![Block::Netherrack, Block::Basalt, Block::Blackstone])); +pub static MOSS_REPLACEABLE: Lazy> = Lazy::new(|| { + HashSet::from_iter(vec![ Block::Stone, Block::Granite, Block::Diorite, Block::Andesite, Block::Tuff, Block::Deepslate, + Block::CaveVinesPlant, + Block::CaveVines, Block::Dirt, Block::GrassBlock, Block::Podzol, @@ -2515,10 +2328,59 @@ pub static OVERWORLD_CARVER_REPLACEABLES: Lazy> = Lazy::new(|| { Block::MossBlock, Block::Mud, Block::MuddyMangroveRoots, + ]) +}); +pub static CAVE_VINES: Lazy> = + Lazy::new(|| HashSet::from_iter(vec![Block::CaveVinesPlant, Block::CaveVines])); +pub static LUSH_GROUND_REPLACEABLE: Lazy> = Lazy::new(|| { + HashSet::from_iter(vec![ + Block::Clay, + Block::Gravel, Block::Sand, + Block::Stone, + Block::Granite, + Block::Diorite, + Block::Andesite, + Block::Tuff, + Block::Deepslate, + Block::CaveVinesPlant, + Block::CaveVines, + Block::Dirt, + Block::GrassBlock, + Block::Podzol, + Block::CoarseDirt, + Block::Mycelium, + Block::RootedDirt, + Block::MossBlock, + Block::Mud, + Block::MuddyMangroveRoots, + ]) +}); +pub static SMALL_DRIPLEAF_PLACEABLE: Lazy> = + Lazy::new(|| HashSet::from_iter(vec![Block::Clay, Block::MossBlock])); +pub static AZALEA_ROOT_REPLACEABLE: Lazy> = Lazy::new(|| { + HashSet::from_iter(vec![ Block::RedSand, - Block::SuspiciousSand, - Block::SuspiciousSand, + Block::Clay, + Block::Gravel, + Block::Sand, + Block::SnowBlock, + Block::PowderSnow, + Block::Stone, + Block::Granite, + Block::Diorite, + Block::Andesite, + Block::Tuff, + Block::Deepslate, + Block::Dirt, + Block::GrassBlock, + Block::Podzol, + Block::CoarseDirt, + Block::Mycelium, + Block::RootedDirt, + Block::MossBlock, + Block::Mud, + Block::MuddyMangroveRoots, Block::Terracotta, Block::WhiteTerracotta, Block::OrangeTerracotta, @@ -2536,183 +2398,89 @@ pub static OVERWORLD_CARVER_REPLACEABLES: Lazy> = Lazy::new(|| { Block::GreenTerracotta, Block::RedTerracotta, Block::BlackTerracotta, - Block::IronOre, - Block::DeepslateIronOre, - Block::CopperOre, - Block::DeepslateCopperOre, ]) }); -pub static GOATS_SPAWNABLE_ON: Lazy> = Lazy::new(|| { +pub static BIG_DRIPLEAF_PLACEABLE: Lazy> = Lazy::new(|| { HashSet::from_iter(vec![ - Block::Stone, - Block::Snow, - Block::SnowBlock, - Block::PackedIce, - Block::Gravel, + Block::Farmland, + Block::Clay, + Block::MossBlock, + Block::Dirt, Block::GrassBlock, + Block::Podzol, + Block::CoarseDirt, + Block::Mycelium, + Block::RootedDirt, + Block::MossBlock, + Block::Mud, + Block::MuddyMangroveRoots, ]) }); -pub static NEEDS_DIAMOND_TOOL: Lazy> = Lazy::new(|| { - HashSet::from_iter(vec![ - Block::Obsidian, - Block::CryingObsidian, - Block::NetheriteBlock, - Block::RespawnAnchor, - Block::AncientDebris, - ]) -}); -pub static WALLS: Lazy> = Lazy::new(|| { +pub static OCCLUDES_VIBRATION_SIGNALS: Lazy> = Lazy::new(|| { HashSet::from_iter(vec![ - Block::CobblestoneWall, - Block::MossyCobblestoneWall, - Block::BrickWall, - Block::PrismarineWall, - Block::RedSandstoneWall, - Block::MossyStoneBrickWall, - Block::GraniteWall, - Block::StoneBrickWall, - Block::NetherBrickWall, - Block::AndesiteWall, - Block::RedNetherBrickWall, - Block::SandstoneWall, - Block::EndStoneBrickWall, - Block::DioriteWall, - Block::BlackstoneWall, - Block::PolishedBlackstoneBrickWall, - Block::PolishedBlackstoneWall, - Block::CobbledDeepslateWall, - Block::PolishedDeepslateWall, - Block::DeepslateTileWall, - Block::DeepslateBrickWall, - Block::MudBrickWall, + Block::WhiteWool, + Block::OrangeWool, + Block::MagentaWool, + Block::LightBlueWool, + Block::YellowWool, + Block::LimeWool, + Block::PinkWool, + Block::GrayWool, + Block::LightGrayWool, + Block::CyanWool, + Block::PurpleWool, + Block::BlueWool, + Block::BrownWool, + Block::GreenWool, + Block::RedWool, + Block::BlackWool, ]) }); -pub static GUARDED_BY_PIGLINS: Lazy> = Lazy::new(|| { +pub static DAMPENS_VIBRATIONS: Lazy> = Lazy::new(|| { HashSet::from_iter(vec![ - Block::GoldBlock, - Block::Barrel, - Block::Chest, - Block::EnderChest, - Block::GildedBlackstone, - Block::TrappedChest, - Block::RawGoldBlock, - Block::ShulkerBox, - Block::BlackShulkerBox, - Block::BlueShulkerBox, - Block::BrownShulkerBox, - Block::CyanShulkerBox, - Block::GrayShulkerBox, - Block::GreenShulkerBox, - Block::LightBlueShulkerBox, - Block::LightGrayShulkerBox, - Block::LimeShulkerBox, - Block::MagentaShulkerBox, - Block::OrangeShulkerBox, - Block::PinkShulkerBox, - Block::PurpleShulkerBox, - Block::RedShulkerBox, - Block::WhiteShulkerBox, - Block::YellowShulkerBox, - Block::GoldOre, - Block::NetherGoldOre, - Block::DeepslateGoldOre, - ]) -}); -pub static LEAVES: Lazy> = Lazy::new(|| { - HashSet::from_iter(vec![ - Block::JungleLeaves, - Block::OakLeaves, - Block::SpruceLeaves, - Block::DarkOakLeaves, - Block::AcaciaLeaves, - Block::BirchLeaves, - Block::AzaleaLeaves, - Block::FloweringAzaleaLeaves, - Block::MangroveLeaves, - Block::CherryLeaves, - ]) -}); -pub static FENCE_GATES: Lazy> = Lazy::new(|| { - HashSet::from_iter(vec![ - Block::AcaciaFenceGate, - Block::BirchFenceGate, - Block::DarkOakFenceGate, - Block::JungleFenceGate, - Block::OakFenceGate, - Block::SpruceFenceGate, - Block::CrimsonFenceGate, - Block::WarpedFenceGate, - Block::MangroveFenceGate, - Block::BambooFenceGate, - Block::CherryFenceGate, - ]) -}); -pub static PREVENT_MOB_SPAWNING_INSIDE: Lazy> = Lazy::new(|| { - HashSet::from_iter(vec![ - Block::Rail, - Block::PoweredRail, - Block::DetectorRail, - Block::ActivatorRail, - ]) -}); -pub static DOORS: Lazy> = Lazy::new(|| { - HashSet::from_iter(vec![ - Block::IronDoor, - Block::OakDoor, - Block::SpruceDoor, - Block::BirchDoor, - Block::JungleDoor, - Block::AcaciaDoor, - Block::DarkOakDoor, - Block::CrimsonDoor, - Block::WarpedDoor, - Block::MangroveDoor, - Block::BambooDoor, - Block::CherryDoor, - ]) -}); -pub static WOODEN_PRESSURE_PLATES: Lazy> = Lazy::new(|| { - HashSet::from_iter(vec![ - Block::OakPressurePlate, - Block::SprucePressurePlate, - Block::BirchPressurePlate, - Block::JunglePressurePlate, - Block::AcaciaPressurePlate, - Block::DarkOakPressurePlate, - Block::CrimsonPressurePlate, - Block::WarpedPressurePlate, - Block::MangrovePressurePlate, - Block::BambooPressurePlate, - Block::CherryPressurePlate, + Block::WhiteWool, + Block::OrangeWool, + Block::MagentaWool, + Block::LightBlueWool, + Block::YellowWool, + Block::LimeWool, + Block::PinkWool, + Block::GrayWool, + Block::LightGrayWool, + Block::CyanWool, + Block::PurpleWool, + Block::BlueWool, + Block::BrownWool, + Block::GreenWool, + Block::RedWool, + Block::BlackWool, + Block::WhiteCarpet, + Block::OrangeCarpet, + Block::MagentaCarpet, + Block::LightBlueCarpet, + Block::YellowCarpet, + Block::LimeCarpet, + Block::PinkCarpet, + Block::GrayCarpet, + Block::LightGrayCarpet, + Block::CyanCarpet, + Block::PurpleCarpet, + Block::BlueCarpet, + Block::BrownCarpet, + Block::GreenCarpet, + Block::RedCarpet, + Block::BlackCarpet, ]) }); -pub static INCORRECT_FOR_STONE_TOOL: Lazy> = Lazy::new(|| { +pub static SNOW: Lazy> = + Lazy::new(|| HashSet::from_iter(vec![Block::Snow, Block::SnowBlock, Block::PowderSnow])); +pub static NEEDS_DIAMOND_TOOL: Lazy> = Lazy::new(|| { HashSet::from_iter(vec![ Block::Obsidian, Block::CryingObsidian, Block::NetheriteBlock, Block::RespawnAnchor, Block::AncientDebris, - Block::DiamondBlock, - Block::DiamondOre, - Block::DeepslateDiamondOre, - Block::EmeraldOre, - Block::DeepslateEmeraldOre, - Block::EmeraldBlock, - Block::GoldBlock, - Block::RawGoldBlock, - Block::GoldOre, - Block::DeepslateGoldOre, - Block::RedstoneOre, - Block::DeepslateRedstoneOre, - ]) -}); -pub static SPRUCE_LOGS: Lazy> = Lazy::new(|| { - HashSet::from_iter(vec![ - Block::SpruceLog, - Block::SpruceWood, - Block::StrippedSpruceLog, - Block::StrippedSpruceWood, ]) }); pub static SWORD_EFFICIENT: Lazy> = Lazy::new(|| { @@ -2807,347 +2575,502 @@ pub static SWORD_EFFICIENT: Lazy> = Lazy::new(|| { Block::PitcherCrop, ]) }); -pub static BANNERS: Lazy> = Lazy::new(|| { +pub static NEEDS_IRON_TOOL: Lazy> = Lazy::new(|| { HashSet::from_iter(vec![ - Block::WhiteBanner, - Block::OrangeBanner, - Block::MagentaBanner, - Block::LightBlueBanner, - Block::YellowBanner, - Block::LimeBanner, - Block::PinkBanner, - Block::GrayBanner, - Block::LightGrayBanner, - Block::CyanBanner, - Block::PurpleBanner, - Block::BlueBanner, - Block::BrownBanner, - Block::GreenBanner, - Block::RedBanner, - Block::BlackBanner, - Block::WhiteWallBanner, - Block::OrangeWallBanner, - Block::MagentaWallBanner, - Block::LightBlueWallBanner, - Block::YellowWallBanner, - Block::LimeWallBanner, - Block::PinkWallBanner, - Block::GrayWallBanner, - Block::LightGrayWallBanner, - Block::CyanWallBanner, - Block::PurpleWallBanner, - Block::BlueWallBanner, - Block::BrownWallBanner, - Block::GreenWallBanner, - Block::RedWallBanner, - Block::BlackWallBanner, + Block::DiamondBlock, + Block::DiamondOre, + Block::DeepslateDiamondOre, + Block::EmeraldOre, + Block::DeepslateEmeraldOre, + Block::EmeraldBlock, + Block::GoldBlock, + Block::RawGoldBlock, + Block::GoldOre, + Block::DeepslateGoldOre, + Block::RedstoneOre, + Block::DeepslateRedstoneOre, ]) }); -pub static WOLVES_SPAWNABLE_ON: Lazy> = Lazy::new(|| { +pub static INCORRECT_FOR_NETHERITE_TOOL: Lazy> = + Lazy::new(|| HashSet::from_iter(vec![])); +pub static CAULDRONS: Lazy> = Lazy::new(|| { HashSet::from_iter(vec![ - Block::GrassBlock, - Block::Snow, - Block::SnowBlock, - Block::CoarseDirt, - Block::Podzol, + Block::Cauldron, + Block::WaterCauldron, + Block::LavaCauldron, + Block::PowderSnowCauldron, ]) }); -pub static INSIDE_STEP_SOUND_BLOCKS: Lazy> = Lazy::new(|| { +pub static INCORRECT_FOR_DIAMOND_TOOL: Lazy> = + Lazy::new(|| HashSet::from_iter(vec![])); +pub static INCORRECT_FOR_IRON_TOOL: Lazy> = Lazy::new(|| { HashSet::from_iter(vec![ - Block::PowderSnow, - Block::SculkVein, - Block::GlowLichen, - Block::LilyPad, - Block::SmallAmethystBud, - Block::PinkPetals, + Block::Obsidian, + Block::CryingObsidian, + Block::NetheriteBlock, + Block::RespawnAnchor, + Block::AncientDebris, ]) }); -pub static CRYSTAL_SOUND_BLOCKS: Lazy> = - Lazy::new(|| HashSet::from_iter(vec![Block::AmethystBlock, Block::BuddingAmethyst])); -pub static GOLD_ORES: Lazy> = Lazy::new(|| { +pub static INCORRECT_FOR_STONE_TOOL: Lazy> = Lazy::new(|| { HashSet::from_iter(vec![ + Block::Obsidian, + Block::CryingObsidian, + Block::NetheriteBlock, + Block::RespawnAnchor, + Block::AncientDebris, + Block::DiamondBlock, + Block::DiamondOre, + Block::DeepslateDiamondOre, + Block::EmeraldOre, + Block::DeepslateEmeraldOre, + Block::EmeraldBlock, + Block::GoldBlock, + Block::RawGoldBlock, Block::GoldOre, - Block::NetherGoldOre, Block::DeepslateGoldOre, + Block::RedstoneOre, + Block::DeepslateRedstoneOre, ]) }); -pub static BEEHIVES: Lazy> = - Lazy::new(|| HashSet::from_iter(vec![Block::BeeNest, Block::Beehive])); -pub static REPLACEABLE: Lazy> = Lazy::new(|| { +pub static INCORRECT_FOR_GOLD_TOOL: Lazy> = Lazy::new(|| { HashSet::from_iter(vec![ - Block::Air, - Block::Water, - Block::Lava, - Block::ShortGrass, - Block::Fern, - Block::DeadBush, - Block::Seagrass, - Block::TallSeagrass, - Block::Fire, - Block::SoulFire, - Block::Snow, - Block::Vine, - Block::GlowLichen, - Block::Light, - Block::TallGrass, - Block::LargeFern, - Block::StructureVoid, - Block::VoidAir, - Block::CaveAir, - Block::BubbleColumn, - Block::WarpedRoots, - Block::NetherSprouts, - Block::CrimsonRoots, - Block::HangingRoots, + Block::Obsidian, + Block::CryingObsidian, + Block::NetheriteBlock, + Block::RespawnAnchor, + Block::AncientDebris, + Block::DiamondBlock, + Block::DiamondOre, + Block::DeepslateDiamondOre, + Block::EmeraldOre, + Block::DeepslateEmeraldOre, + Block::EmeraldBlock, + Block::GoldBlock, + Block::RawGoldBlock, + Block::GoldOre, + Block::DeepslateGoldOre, + Block::RedstoneOre, + Block::DeepslateRedstoneOre, + Block::IronBlock, + Block::RawIronBlock, + Block::IronOre, + Block::DeepslateIronOre, + Block::LapisBlock, + Block::LapisOre, + Block::DeepslateLapisOre, + Block::CopperBlock, + Block::RawCopperBlock, + Block::CopperOre, + Block::DeepslateCopperOre, + Block::CutCopperSlab, + Block::CutCopperStairs, + Block::CutCopper, + Block::WeatheredCopper, + Block::WeatheredCutCopperSlab, + Block::WeatheredCutCopperStairs, + Block::WeatheredCutCopper, + Block::OxidizedCopper, + Block::OxidizedCutCopperSlab, + Block::OxidizedCutCopperStairs, + Block::OxidizedCutCopper, + Block::ExposedCopper, + Block::ExposedCutCopperSlab, + Block::ExposedCutCopperStairs, + Block::ExposedCutCopper, + Block::WaxedCopperBlock, + Block::WaxedCutCopperSlab, + Block::WaxedCutCopperStairs, + Block::WaxedCutCopper, + Block::WaxedWeatheredCopper, + Block::WaxedWeatheredCutCopperSlab, + Block::WaxedWeatheredCutCopperStairs, + Block::WaxedWeatheredCutCopper, + Block::WaxedExposedCopper, + Block::WaxedExposedCutCopperSlab, + Block::WaxedExposedCutCopperStairs, + Block::WaxedExposedCutCopper, + Block::WaxedOxidizedCopper, + Block::WaxedOxidizedCutCopperSlab, + Block::WaxedOxidizedCutCopperStairs, + Block::WaxedOxidizedCutCopper, + Block::LightningRod, ]) }); -pub static COPPER_ORES: Lazy> = - Lazy::new(|| HashSet::from_iter(vec![Block::CopperOre, Block::DeepslateCopperOre])); -pub static CORAL_PLANTS: Lazy> = Lazy::new(|| { +pub static INCORRECT_FOR_WOODEN_TOOL: Lazy> = Lazy::new(|| { HashSet::from_iter(vec![ - Block::TubeCoral, - Block::BrainCoral, - Block::BubbleCoral, - Block::FireCoral, - Block::HornCoral, + Block::Obsidian, + Block::CryingObsidian, + Block::NetheriteBlock, + Block::RespawnAnchor, + Block::AncientDebris, + Block::DiamondBlock, + Block::DiamondOre, + Block::DeepslateDiamondOre, + Block::EmeraldOre, + Block::DeepslateEmeraldOre, + Block::EmeraldBlock, + Block::GoldBlock, + Block::RawGoldBlock, + Block::GoldOre, + Block::DeepslateGoldOre, + Block::RedstoneOre, + Block::DeepslateRedstoneOre, + Block::IronBlock, + Block::RawIronBlock, + Block::IronOre, + Block::DeepslateIronOre, + Block::LapisBlock, + Block::LapisOre, + Block::DeepslateLapisOre, + Block::CopperBlock, + Block::RawCopperBlock, + Block::CopperOre, + Block::DeepslateCopperOre, + Block::CutCopperSlab, + Block::CutCopperStairs, + Block::CutCopper, + Block::WeatheredCopper, + Block::WeatheredCutCopperSlab, + Block::WeatheredCutCopperStairs, + Block::WeatheredCutCopper, + Block::OxidizedCopper, + Block::OxidizedCutCopperSlab, + Block::OxidizedCutCopperStairs, + Block::OxidizedCutCopper, + Block::ExposedCopper, + Block::ExposedCutCopperSlab, + Block::ExposedCutCopperStairs, + Block::ExposedCutCopper, + Block::WaxedCopperBlock, + Block::WaxedCutCopperSlab, + Block::WaxedCutCopperStairs, + Block::WaxedCutCopper, + Block::WaxedWeatheredCopper, + Block::WaxedWeatheredCutCopperSlab, + Block::WaxedWeatheredCutCopperStairs, + Block::WaxedWeatheredCutCopper, + Block::WaxedExposedCopper, + Block::WaxedExposedCutCopperSlab, + Block::WaxedExposedCutCopperStairs, + Block::WaxedExposedCutCopper, + Block::WaxedOxidizedCopper, + Block::WaxedOxidizedCutCopperSlab, + Block::WaxedOxidizedCutCopperStairs, + Block::WaxedOxidizedCutCopper, + Block::LightningRod, ]) }); -pub static SAPLINGS: Lazy> = Lazy::new(|| { +pub static FEATURES_CANNOT_REPLACE: Lazy> = Lazy::new(|| { HashSet::from_iter(vec![ - Block::OakSapling, - Block::SpruceSapling, - Block::BirchSapling, - Block::JungleSapling, - Block::AcaciaSapling, - Block::DarkOakSapling, - Block::Azalea, - Block::FloweringAzalea, - Block::MangrovePropagule, - Block::CherrySapling, + Block::Bedrock, + Block::Spawner, + Block::Chest, + Block::EndPortalFrame, + Block::ReinforcedDeepslate, ]) }); -pub static DRAGON_IMMUNE: Lazy> = Lazy::new(|| { +pub static LAVA_POOL_STONE_CANNOT_REPLACE: Lazy> = Lazy::new(|| { HashSet::from_iter(vec![ - Block::Barrier, Block::Bedrock, - Block::EndPortal, + Block::Spawner, + Block::Chest, Block::EndPortalFrame, - Block::EndGateway, - Block::CommandBlock, - Block::RepeatingCommandBlock, - Block::ChainCommandBlock, - Block::StructureBlock, - Block::Jigsaw, - Block::MovingPiston, - Block::Obsidian, - Block::CryingObsidian, - Block::EndStone, - Block::IronBars, - Block::RespawnAnchor, Block::ReinforcedDeepslate, + Block::JungleLeaves, + Block::OakLeaves, + Block::SpruceLeaves, + Block::DarkOakLeaves, + Block::AcaciaLeaves, + Block::BirchLeaves, + Block::AzaleaLeaves, + Block::FloweringAzaleaLeaves, + Block::MangroveLeaves, + Block::CherryLeaves, + Block::CrimsonStem, + Block::StrippedCrimsonStem, + Block::CrimsonHyphae, + Block::StrippedCrimsonHyphae, + Block::WarpedStem, + Block::StrippedWarpedStem, + Block::WarpedHyphae, + Block::StrippedWarpedHyphae, + Block::DarkOakLog, + Block::DarkOakWood, + Block::StrippedDarkOakLog, + Block::StrippedDarkOakWood, + Block::OakLog, + Block::OakWood, + Block::StrippedOakLog, + Block::StrippedOakWood, + Block::AcaciaLog, + Block::AcaciaWood, + Block::StrippedAcaciaLog, + Block::StrippedAcaciaWood, + Block::BirchLog, + Block::BirchWood, + Block::StrippedBirchLog, + Block::StrippedBirchWood, + Block::JungleLog, + Block::JungleWood, + Block::StrippedJungleLog, + Block::StrippedJungleWood, + Block::SpruceLog, + Block::SpruceWood, + Block::StrippedSpruceLog, + Block::StrippedSpruceWood, + Block::MangroveLog, + Block::MangroveWood, + Block::StrippedMangroveLog, + Block::StrippedMangroveWood, + Block::CherryLog, + Block::CherryWood, + Block::StrippedCherryLog, + Block::StrippedCherryWood, ]) }); -pub static REDSTONE_ORES: Lazy> = - Lazy::new(|| HashSet::from_iter(vec![Block::RedstoneOre, Block::DeepslateRedstoneOre])); -pub static PLANKS: Lazy> = Lazy::new(|| { +pub static GEODE_INVALID_BLOCKS: Lazy> = Lazy::new(|| { HashSet::from_iter(vec![ - Block::OakPlanks, - Block::SprucePlanks, - Block::BirchPlanks, - Block::JunglePlanks, - Block::AcaciaPlanks, - Block::DarkOakPlanks, - Block::CrimsonPlanks, - Block::WarpedPlanks, - Block::MangrovePlanks, - Block::BambooPlanks, - Block::CherryPlanks, + Block::Bedrock, + Block::Water, + Block::Lava, + Block::Ice, + Block::PackedIce, + Block::BlueIce, ]) }); -pub static AZALEA_ROOT_REPLACEABLE: Lazy> = Lazy::new(|| { +pub static ANIMALS_SPAWNABLE_ON: Lazy> = + Lazy::new(|| HashSet::from_iter(vec![Block::GrassBlock])); +pub static ARMADILLO_SPAWNABLE_ON: Lazy> = Lazy::new(|| { HashSet::from_iter(vec![ Block::RedSand, - Block::Clay, - Block::Gravel, - Block::Sand, - Block::SnowBlock, - Block::PowderSnow, - Block::Stone, - Block::Granite, - Block::Diorite, - Block::Andesite, - Block::Tuff, - Block::Deepslate, - Block::Dirt, - Block::GrassBlock, - Block::Podzol, Block::CoarseDirt, - Block::Mycelium, - Block::RootedDirt, - Block::MossBlock, - Block::Mud, - Block::MuddyMangroveRoots, + Block::GrassBlock, Block::Terracotta, Block::WhiteTerracotta, - Block::OrangeTerracotta, - Block::MagentaTerracotta, - Block::LightBlueTerracotta, Block::YellowTerracotta, - Block::LimeTerracotta, - Block::PinkTerracotta, - Block::GrayTerracotta, - Block::LightGrayTerracotta, - Block::CyanTerracotta, - Block::PurpleTerracotta, - Block::BlueTerracotta, - Block::BrownTerracotta, - Block::GreenTerracotta, + Block::OrangeTerracotta, Block::RedTerracotta, - Block::BlackTerracotta, + Block::BrownTerracotta, + Block::LightGrayTerracotta, ]) }); -pub static CLIMBABLE: Lazy> = Lazy::new(|| { +pub static AXOLOTLS_SPAWNABLE_ON: Lazy> = + Lazy::new(|| HashSet::from_iter(vec![Block::Clay])); +pub static GOATS_SPAWNABLE_ON: Lazy> = Lazy::new(|| { HashSet::from_iter(vec![ - Block::Ladder, - Block::Vine, - Block::Scaffolding, - Block::WeepingVines, - Block::WeepingVinesPlant, - Block::TwistingVines, - Block::TwistingVinesPlant, - Block::CaveVines, - Block::CaveVinesPlant, + Block::Stone, + Block::Snow, + Block::SnowBlock, + Block::PackedIce, + Block::Gravel, + Block::GrassBlock, ]) }); -pub static BIRCH_LOGS: Lazy> = Lazy::new(|| { +pub static MOOSHROOMS_SPAWNABLE_ON: Lazy> = + Lazy::new(|| HashSet::from_iter(vec![Block::Mycelium])); +pub static PARROTS_SPAWNABLE_ON: Lazy> = Lazy::new(|| { HashSet::from_iter(vec![ + Block::GrassBlock, + Block::Air, + Block::JungleLeaves, + Block::OakLeaves, + Block::SpruceLeaves, + Block::DarkOakLeaves, + Block::AcaciaLeaves, + Block::BirchLeaves, + Block::AzaleaLeaves, + Block::FloweringAzaleaLeaves, + Block::MangroveLeaves, + Block::CherryLeaves, + Block::CrimsonStem, + Block::StrippedCrimsonStem, + Block::CrimsonHyphae, + Block::StrippedCrimsonHyphae, + Block::WarpedStem, + Block::StrippedWarpedStem, + Block::WarpedHyphae, + Block::StrippedWarpedHyphae, + Block::DarkOakLog, + Block::DarkOakWood, + Block::StrippedDarkOakLog, + Block::StrippedDarkOakWood, + Block::OakLog, + Block::OakWood, + Block::StrippedOakLog, + Block::StrippedOakWood, + Block::AcaciaLog, + Block::AcaciaWood, + Block::StrippedAcaciaLog, + Block::StrippedAcaciaWood, Block::BirchLog, Block::BirchWood, Block::StrippedBirchLog, Block::StrippedBirchWood, + Block::JungleLog, + Block::JungleWood, + Block::StrippedJungleLog, + Block::StrippedJungleWood, + Block::SpruceLog, + Block::SpruceWood, + Block::StrippedSpruceLog, + Block::StrippedSpruceWood, + Block::MangroveLog, + Block::MangroveWood, + Block::StrippedMangroveLog, + Block::StrippedMangroveWood, + Block::CherryLog, + Block::CherryWood, + Block::StrippedCherryLog, + Block::StrippedCherryWood, ]) }); -pub static SNIFFER_DIGGABLE_BLOCK: Lazy> = Lazy::new(|| { +pub static POLAR_BEARS_SPAWNABLE_ON_ALTERNATE: Lazy> = + Lazy::new(|| HashSet::from_iter(vec![Block::Ice])); +pub static RABBITS_SPAWNABLE_ON: Lazy> = Lazy::new(|| { + HashSet::from_iter(vec![ + Block::GrassBlock, + Block::Snow, + Block::SnowBlock, + Block::Sand, + ]) +}); +pub static FOXES_SPAWNABLE_ON: Lazy> = Lazy::new(|| { HashSet::from_iter(vec![ - Block::Dirt, Block::GrassBlock, + Block::Snow, + Block::SnowBlock, Block::Podzol, Block::CoarseDirt, - Block::RootedDirt, - Block::MossBlock, - Block::Mud, - Block::MuddyMangroveRoots, ]) }); -pub static INFINIBURN_NETHER: Lazy> = - Lazy::new(|| HashSet::from_iter(vec![Block::Netherrack, Block::MagmaBlock])); -pub static SNIFFER_EGG_HATCH_BOOST: Lazy> = - Lazy::new(|| HashSet::from_iter(vec![Block::MossBlock])); -pub static INCORRECT_FOR_IRON_TOOL: Lazy> = Lazy::new(|| { +pub static WOLVES_SPAWNABLE_ON: Lazy> = Lazy::new(|| { HashSet::from_iter(vec![ - Block::Obsidian, - Block::CryingObsidian, - Block::NetheriteBlock, - Block::RespawnAnchor, - Block::AncientDebris, + Block::GrassBlock, + Block::Snow, + Block::SnowBlock, + Block::CoarseDirt, + Block::Podzol, ]) }); -pub static DRAGON_TRANSPARENT: Lazy> = - Lazy::new(|| HashSet::from_iter(vec![Block::Light, Block::Fire, Block::SoulFire])); -pub static PRESSURE_PLATES: Lazy> = Lazy::new(|| { +pub static FROGS_SPAWNABLE_ON: Lazy> = Lazy::new(|| { HashSet::from_iter(vec![ - Block::LightWeightedPressurePlate, - Block::HeavyWeightedPressurePlate, - Block::OakPressurePlate, - Block::SprucePressurePlate, - Block::BirchPressurePlate, - Block::JunglePressurePlate, - Block::AcaciaPressurePlate, - Block::DarkOakPressurePlate, - Block::CrimsonPressurePlate, - Block::WarpedPressurePlate, - Block::MangrovePressurePlate, - Block::BambooPressurePlate, - Block::CherryPressurePlate, - Block::StonePressurePlate, - Block::PolishedBlackstonePressurePlate, + Block::GrassBlock, + Block::Mud, + Block::MangroveRoots, + Block::MuddyMangroveRoots, ]) }); -pub static SHULKER_BOXES: Lazy> = Lazy::new(|| { +pub static BADLANDS_TERRACOTTA: Lazy> = Lazy::new(|| { HashSet::from_iter(vec![ - Block::ShulkerBox, - Block::BlackShulkerBox, - Block::BlueShulkerBox, - Block::BrownShulkerBox, - Block::CyanShulkerBox, - Block::GrayShulkerBox, - Block::GreenShulkerBox, - Block::LightBlueShulkerBox, - Block::LightGrayShulkerBox, - Block::LimeShulkerBox, - Block::MagentaShulkerBox, - Block::OrangeShulkerBox, - Block::PinkShulkerBox, - Block::PurpleShulkerBox, - Block::RedShulkerBox, - Block::WhiteShulkerBox, - Block::YellowShulkerBox, + Block::Terracotta, + Block::WhiteTerracotta, + Block::YellowTerracotta, + Block::OrangeTerracotta, + Block::RedTerracotta, + Block::BrownTerracotta, + Block::LightGrayTerracotta, ]) }); -pub static TALL_FLOWERS: Lazy> = Lazy::new(|| { +pub static TERRACOTTA: Lazy> = Lazy::new(|| { HashSet::from_iter(vec![ - Block::Sunflower, - Block::Lilac, - Block::Peony, - Block::RoseBush, - Block::PitcherPlant, + Block::Terracotta, + Block::WhiteTerracotta, + Block::OrangeTerracotta, + Block::MagentaTerracotta, + Block::LightBlueTerracotta, + Block::YellowTerracotta, + Block::LimeTerracotta, + Block::PinkTerracotta, + Block::GrayTerracotta, + Block::LightGrayTerracotta, + Block::CyanTerracotta, + Block::PurpleTerracotta, + Block::BlueTerracotta, + Block::BrownTerracotta, + Block::GreenTerracotta, + Block::RedTerracotta, + Block::BlackTerracotta, ]) }); -pub static DEEPSLATE_ORE_REPLACEABLES: Lazy> = - Lazy::new(|| HashSet::from_iter(vec![Block::Deepslate, Block::Tuff])); -pub static OCCLUDES_VIBRATION_SIGNALS: Lazy> = Lazy::new(|| { +pub static CONCRETE_POWDER: Lazy> = Lazy::new(|| { HashSet::from_iter(vec![ - Block::WhiteWool, - Block::OrangeWool, - Block::MagentaWool, - Block::LightBlueWool, - Block::YellowWool, - Block::LimeWool, - Block::PinkWool, - Block::GrayWool, - Block::LightGrayWool, - Block::CyanWool, - Block::PurpleWool, - Block::BlueWool, - Block::BrownWool, - Block::GreenWool, - Block::RedWool, - Block::BlackWool, + Block::WhiteConcretePowder, + Block::OrangeConcretePowder, + Block::MagentaConcretePowder, + Block::LightBlueConcretePowder, + Block::YellowConcretePowder, + Block::LimeConcretePowder, + Block::PinkConcretePowder, + Block::GrayConcretePowder, + Block::LightGrayConcretePowder, + Block::CyanConcretePowder, + Block::PurpleConcretePowder, + Block::BlueConcretePowder, + Block::BrownConcretePowder, + Block::GreenConcretePowder, + Block::RedConcretePowder, + Block::BlackConcretePowder, ]) }); -pub static CRIMSON_STEMS: Lazy> = Lazy::new(|| { +pub static AZALEA_GROWS_ON: Lazy> = Lazy::new(|| { HashSet::from_iter(vec![ - Block::CrimsonStem, - Block::StrippedCrimsonStem, - Block::CrimsonHyphae, - Block::StrippedCrimsonHyphae, + Block::SnowBlock, + Block::PowderSnow, + Block::Dirt, + Block::GrassBlock, + Block::Podzol, + Block::CoarseDirt, + Block::Mycelium, + Block::RootedDirt, + Block::MossBlock, + Block::Mud, + Block::MuddyMangroveRoots, + Block::Sand, + Block::RedSand, + Block::SuspiciousSand, + Block::SuspiciousSand, + Block::Terracotta, + Block::WhiteTerracotta, + Block::OrangeTerracotta, + Block::MagentaTerracotta, + Block::LightBlueTerracotta, + Block::YellowTerracotta, + Block::LimeTerracotta, + Block::PinkTerracotta, + Block::GrayTerracotta, + Block::LightGrayTerracotta, + Block::CyanTerracotta, + Block::PurpleTerracotta, + Block::BlueTerracotta, + Block::BrownTerracotta, + Block::GreenTerracotta, + Block::RedTerracotta, + Block::BlackTerracotta, ]) }); -pub static DOES_NOT_BLOCK_HOPPERS: Lazy> = - Lazy::new(|| HashSet::from_iter(vec![Block::BeeNest, Block::Beehive])); -pub static LUSH_GROUND_REPLACEABLE: Lazy> = Lazy::new(|| { +pub static FROG_PREFER_JUMP_TO: Lazy> = + Lazy::new(|| HashSet::from_iter(vec![Block::LilyPad, Block::BigDripleaf])); +pub static SCULK_REPLACEABLE: Lazy> = Lazy::new(|| { HashSet::from_iter(vec![ - Block::Clay, - Block::Gravel, Block::Sand, + Block::RedSand, + Block::Gravel, + Block::SoulSand, + Block::SoulSoil, + Block::Calcite, + Block::SmoothBasalt, + Block::Clay, + Block::DripstoneBlock, + Block::EndStone, + Block::RedSandstone, + Block::Sandstone, Block::Stone, Block::Granite, Block::Diorite, Block::Andesite, Block::Tuff, Block::Deepslate, - Block::CaveVinesPlant, - Block::CaveVines, Block::Dirt, Block::GrassBlock, Block::Podzol, @@ -3157,36 +3080,56 @@ pub static LUSH_GROUND_REPLACEABLE: Lazy> = Lazy::new(|| { Block::MossBlock, Block::Mud, Block::MuddyMangroveRoots, + Block::Terracotta, + Block::WhiteTerracotta, + Block::OrangeTerracotta, + Block::MagentaTerracotta, + Block::LightBlueTerracotta, + Block::YellowTerracotta, + Block::LimeTerracotta, + Block::PinkTerracotta, + Block::GrayTerracotta, + Block::LightGrayTerracotta, + Block::CyanTerracotta, + Block::PurpleTerracotta, + Block::BlueTerracotta, + Block::BrownTerracotta, + Block::GreenTerracotta, + Block::RedTerracotta, + Block::BlackTerracotta, + Block::CrimsonNylium, + Block::WarpedNylium, + Block::Netherrack, + Block::Basalt, + Block::Blackstone, ]) }); -pub static WOODEN_BUTTONS: Lazy> = Lazy::new(|| { - HashSet::from_iter(vec![ - Block::OakButton, - Block::SpruceButton, - Block::BirchButton, - Block::JungleButton, - Block::AcaciaButton, - Block::DarkOakButton, - Block::CrimsonButton, - Block::WarpedButton, - Block::MangroveButton, - Block::BambooButton, - Block::CherryButton, - ]) -}); -pub static STONE_PRESSURE_PLATES: Lazy> = Lazy::new(|| { - HashSet::from_iter(vec![ - Block::StonePressurePlate, - Block::PolishedBlackstonePressurePlate, - ]) -}); -pub static SOUL_FIRE_BASE_BLOCKS: Lazy> = - Lazy::new(|| HashSet::from_iter(vec![Block::SoulSand, Block::SoulSoil])); -pub static BIG_DRIPLEAF_PLACEABLE: Lazy> = Lazy::new(|| { +pub static SCULK_REPLACEABLE_WORLD_GEN: Lazy> = Lazy::new(|| { HashSet::from_iter(vec![ - Block::Farmland, + Block::DeepslateBricks, + Block::DeepslateTiles, + Block::CobbledDeepslate, + Block::CrackedDeepslateBricks, + Block::CrackedDeepslateTiles, + Block::PolishedDeepslate, + Block::Sand, + Block::RedSand, + Block::Gravel, + Block::SoulSand, + Block::SoulSoil, + Block::Calcite, + Block::SmoothBasalt, Block::Clay, - Block::MossBlock, + Block::DripstoneBlock, + Block::EndStone, + Block::RedSandstone, + Block::Sandstone, + Block::Stone, + Block::Granite, + Block::Diorite, + Block::Andesite, + Block::Tuff, + Block::Deepslate, Block::Dirt, Block::GrassBlock, Block::Podzol, @@ -3196,54 +3139,75 @@ pub static BIG_DRIPLEAF_PLACEABLE: Lazy> = Lazy::new(|| { Block::MossBlock, Block::Mud, Block::MuddyMangroveRoots, + Block::Terracotta, + Block::WhiteTerracotta, + Block::OrangeTerracotta, + Block::MagentaTerracotta, + Block::LightBlueTerracotta, + Block::YellowTerracotta, + Block::LimeTerracotta, + Block::PinkTerracotta, + Block::GrayTerracotta, + Block::LightGrayTerracotta, + Block::CyanTerracotta, + Block::PurpleTerracotta, + Block::BlueTerracotta, + Block::BrownTerracotta, + Block::GreenTerracotta, + Block::RedTerracotta, + Block::BlackTerracotta, + Block::CrimsonNylium, + Block::WarpedNylium, + Block::Netherrack, + Block::Basalt, + Block::Blackstone, ]) }); -pub static POLAR_BEARS_SPAWNABLE_ON_ALTERNATE: Lazy> = - Lazy::new(|| HashSet::from_iter(vec![Block::Ice])); -pub static CAVE_VINES: Lazy> = - Lazy::new(|| HashSet::from_iter(vec![Block::CaveVinesPlant, Block::CaveVines])); -pub static OVERWORLD_NATURAL_LOGS: Lazy> = Lazy::new(|| { +pub static CONVERTABLE_TO_MUD: Lazy> = + Lazy::new(|| HashSet::from_iter(vec![Block::Dirt, Block::CoarseDirt, Block::RootedDirt])); +pub static VIBRATION_RESONATORS: Lazy> = + Lazy::new(|| HashSet::from_iter(vec![Block::AmethystBlock])); +pub static ANCIENT_CITY_REPLACEABLE: Lazy> = Lazy::new(|| { HashSet::from_iter(vec![ - Block::AcaciaLog, - Block::BirchLog, - Block::OakLog, - Block::JungleLog, - Block::SpruceLog, - Block::DarkOakLog, - Block::MangroveLog, - Block::CherryLog, + Block::Deepslate, + Block::DeepslateBricks, + Block::DeepslateTiles, + Block::DeepslateBrickSlab, + Block::DeepslateTileSlab, + Block::DeepslateBrickStairs, + Block::DeepslateTileWall, + Block::DeepslateBrickWall, + Block::CobbledDeepslate, + Block::CrackedDeepslateBricks, + Block::CrackedDeepslateTiles, + Block::GrayWool, ]) }); -pub static WOODEN_FENCES: Lazy> = Lazy::new(|| { +pub static MANGROVE_LOGS_CAN_GROW_THROUGH: Lazy> = Lazy::new(|| { HashSet::from_iter(vec![ - Block::OakFence, - Block::AcaciaFence, - Block::DarkOakFence, - Block::SpruceFence, - Block::BirchFence, - Block::JungleFence, - Block::CrimsonFence, - Block::WarpedFence, - Block::MangroveFence, - Block::BambooFence, - Block::CherryFence, + Block::Mud, + Block::MuddyMangroveRoots, + Block::MangroveRoots, + Block::MangroveLeaves, + Block::MangroveLog, + Block::MangrovePropagule, + Block::MossCarpet, + Block::Vine, ]) }); -pub static CAMPFIRES: Lazy> = - Lazy::new(|| HashSet::from_iter(vec![Block::Campfire, Block::SoulCampfire])); -pub static AZALEA_GROWS_ON: Lazy> = Lazy::new(|| { - HashSet::from_iter(vec![ - Block::SnowBlock, - Block::PowderSnow, - Block::Dirt, - Block::GrassBlock, - Block::Podzol, - Block::CoarseDirt, - Block::Mycelium, - Block::RootedDirt, - Block::MossBlock, +pub static MANGROVE_ROOTS_CAN_GROW_THROUGH: Lazy> = Lazy::new(|| { + HashSet::from_iter(vec![ Block::Mud, Block::MuddyMangroveRoots, + Block::MangroveRoots, + Block::MossCarpet, + Block::Vine, + Block::MangrovePropagule, + Block::Snow, + ]) +}); +pub static DEAD_BUSH_MAY_PLACE_ON: Lazy> = Lazy::new(|| { + HashSet::from_iter(vec![ Block::Sand, Block::RedSand, Block::SuspiciousSand, @@ -3265,59 +3229,6 @@ pub static AZALEA_GROWS_ON: Lazy> = Lazy::new(|| { Block::GreenTerracotta, Block::RedTerracotta, Block::BlackTerracotta, - ]) -}); -pub static WALL_SIGNS: Lazy> = Lazy::new(|| { - HashSet::from_iter(vec![ - Block::OakWallSign, - Block::SpruceWallSign, - Block::BirchWallSign, - Block::AcaciaWallSign, - Block::JungleWallSign, - Block::DarkOakWallSign, - Block::CrimsonWallSign, - Block::WarpedWallSign, - Block::MangroveWallSign, - Block::BambooWallSign, - Block::CherryWallSign, - ]) -}); -pub static BADLANDS_TERRACOTTA: Lazy> = Lazy::new(|| { - HashSet::from_iter(vec![ - Block::Terracotta, - Block::WhiteTerracotta, - Block::YellowTerracotta, - Block::OrangeTerracotta, - Block::RedTerracotta, - Block::BrownTerracotta, - Block::LightGrayTerracotta, - ]) -}); -pub static WALL_HANGING_SIGNS: Lazy> = Lazy::new(|| { - HashSet::from_iter(vec![ - Block::OakWallHangingSign, - Block::SpruceWallHangingSign, - Block::BirchWallHangingSign, - Block::AcaciaWallHangingSign, - Block::CherryWallHangingSign, - Block::JungleWallHangingSign, - Block::DarkOakWallHangingSign, - Block::CrimsonWallHangingSign, - Block::WarpedWallHangingSign, - Block::MangroveWallHangingSign, - Block::BambooWallHangingSign, - ]) -}); -pub static BAMBOO_PLANTABLE_ON: Lazy> = Lazy::new(|| { - HashSet::from_iter(vec![ - Block::Bamboo, - Block::BambooSapling, - Block::Gravel, - Block::SuspiciousGravel, - Block::Sand, - Block::RedSand, - Block::SuspiciousSand, - Block::SuspiciousSand, Block::Dirt, Block::GrassBlock, Block::Podzol, @@ -3329,47 +3240,10 @@ pub static BAMBOO_PLANTABLE_ON: Lazy> = Lazy::new(|| { Block::MuddyMangroveRoots, ]) }); -pub static WITHER_SUMMON_BASE_BLOCKS: Lazy> = - Lazy::new(|| HashSet::from_iter(vec![Block::SoulSand, Block::SoulSoil])); -pub static WALL_CORALS: Lazy> = Lazy::new(|| { - HashSet::from_iter(vec![ - Block::TubeCoralWallFan, - Block::BrainCoralWallFan, - Block::BubbleCoralWallFan, - Block::FireCoralWallFan, - Block::HornCoralWallFan, - ]) -}); -pub static MAINTAINS_FARMLAND: Lazy> = Lazy::new(|| { - HashSet::from_iter(vec![ - Block::PumpkinStem, - Block::AttachedPumpkinStem, - Block::MelonStem, - Block::AttachedMelonStem, - Block::Beetroots, - Block::Carrots, - Block::Potatoes, - Block::TorchflowerCrop, - Block::Torchflower, - Block::PitcherCrop, - Block::Wheat, - ]) -}); -pub static WOODEN_SLABS: Lazy> = Lazy::new(|| { - HashSet::from_iter(vec![ - Block::OakSlab, - Block::SpruceSlab, - Block::BirchSlab, - Block::JungleSlab, - Block::AcaciaSlab, - Block::DarkOakSlab, - Block::CrimsonSlab, - Block::WarpedSlab, - Block::MangroveSlab, - Block::BambooSlab, - Block::CherrySlab, - ]) -}); +pub static SNOW_LAYER_CANNOT_SURVIVE_ON: Lazy> = + Lazy::new(|| HashSet::from_iter(vec![Block::Ice, Block::PackedIce, Block::Barrier])); +pub static SNOW_LAYER_CAN_SURVIVE_ON: Lazy> = + Lazy::new(|| HashSet::from_iter(vec![Block::HoneyBlock, Block::SoulSand, Block::Mud])); pub static REPLACEABLE_BY_TREES: Lazy> = Lazy::new(|| { HashSet::from_iter(vec![ Block::ShortGrass, @@ -3403,118 +3277,197 @@ pub static REPLACEABLE_BY_TREES: Lazy> = Lazy::new(|| { Block::CherryLeaves, ]) }); -pub static FEATURES_CANNOT_REPLACE: Lazy> = Lazy::new(|| { +pub static COMPLETES_FIND_TREE_TUTORIAL: Lazy> = Lazy::new(|| { HashSet::from_iter(vec![ - Block::Bedrock, - Block::Spawner, - Block::Chest, - Block::EndPortalFrame, - Block::ReinforcedDeepslate, + Block::JungleLeaves, + Block::OakLeaves, + Block::SpruceLeaves, + Block::DarkOakLeaves, + Block::AcaciaLeaves, + Block::BirchLeaves, + Block::AzaleaLeaves, + Block::FloweringAzaleaLeaves, + Block::MangroveLeaves, + Block::CherryLeaves, + Block::NetherWartBlock, + Block::WarpedWartBlock, + Block::CrimsonStem, + Block::StrippedCrimsonStem, + Block::CrimsonHyphae, + Block::StrippedCrimsonHyphae, + Block::WarpedStem, + Block::StrippedWarpedStem, + Block::WarpedHyphae, + Block::StrippedWarpedHyphae, + Block::DarkOakLog, + Block::DarkOakWood, + Block::StrippedDarkOakLog, + Block::StrippedDarkOakWood, + Block::OakLog, + Block::OakWood, + Block::StrippedOakLog, + Block::StrippedOakWood, + Block::AcaciaLog, + Block::AcaciaWood, + Block::StrippedAcaciaLog, + Block::StrippedAcaciaWood, + Block::BirchLog, + Block::BirchWood, + Block::StrippedBirchLog, + Block::StrippedBirchWood, + Block::JungleLog, + Block::JungleWood, + Block::StrippedJungleLog, + Block::StrippedJungleWood, + Block::SpruceLog, + Block::SpruceWood, + Block::StrippedSpruceLog, + Block::StrippedSpruceWood, + Block::MangroveLog, + Block::MangroveWood, + Block::StrippedMangroveLog, + Block::StrippedMangroveWood, + Block::CherryLog, + Block::CherryWood, + Block::StrippedCherryLog, + Block::StrippedCherryWood, ]) }); -pub static INCORRECT_FOR_DIAMOND_TOOL: Lazy> = - Lazy::new(|| HashSet::from_iter(vec![])); -pub static AXOLOTLS_SPAWNABLE_ON: Lazy> = - Lazy::new(|| HashSet::from_iter(vec![Block::Clay])); -pub static PORTALS: Lazy> = Lazy::new(|| { +pub static SNAPS_GOAT_HORN: Lazy> = Lazy::new(|| { HashSet::from_iter(vec![ - Block::NetherPortal, - Block::EndPortal, - Block::EndGateway, + Block::Stone, + Block::PackedIce, + Block::IronOre, + Block::CoalOre, + Block::CopperOre, + Block::EmeraldOre, + Block::AcaciaLog, + Block::BirchLog, + Block::OakLog, + Block::JungleLog, + Block::SpruceLog, + Block::DarkOakLog, + Block::MangroveLog, + Block::CherryLog, ]) }); -pub static FLOWER_POTS: Lazy> = Lazy::new(|| { +pub static TRAIL_RUINS_REPLACEABLE: Lazy> = + Lazy::new(|| HashSet::from_iter(vec![Block::Gravel])); +pub static INVALID_SPAWN_INSIDE: Lazy> = + Lazy::new(|| HashSet::from_iter(vec![Block::EndPortal, Block::EndGateway])); +pub static SNIFFER_DIGGABLE_BLOCK: Lazy> = Lazy::new(|| { HashSet::from_iter(vec![ - Block::FlowerPot, - Block::PottedPoppy, - Block::PottedBlueOrchid, - Block::PottedAllium, - Block::PottedAzureBluet, - Block::PottedRedTulip, - Block::PottedOrangeTulip, - Block::PottedWhiteTulip, - Block::PottedPinkTulip, - Block::PottedOxeyeDaisy, - Block::PottedDandelion, - Block::PottedOakSapling, - Block::PottedSpruceSapling, - Block::PottedBirchSapling, - Block::PottedJungleSapling, - Block::PottedAcaciaSapling, - Block::PottedDarkOakSapling, - Block::PottedRedMushroom, - Block::PottedBrownMushroom, - Block::PottedDeadBush, - Block::PottedFern, - Block::PottedCactus, - Block::PottedCornflower, - Block::PottedLilyOfTheValley, - Block::PottedWitherRose, - Block::PottedBamboo, - Block::PottedCrimsonFungus, - Block::PottedWarpedFungus, - Block::PottedCrimsonRoots, - Block::PottedWarpedRoots, - Block::PottedAzaleaBush, - Block::PottedFloweringAzaleaBush, - Block::PottedMangrovePropagule, - Block::PottedCherrySapling, - Block::PottedTorchflower, + Block::Dirt, + Block::GrassBlock, + Block::Podzol, + Block::CoarseDirt, + Block::RootedDirt, + Block::MossBlock, + Block::Mud, + Block::MuddyMangroveRoots, + ]) +}); +pub static SNIFFER_EGG_HATCH_BOOST: Lazy> = + Lazy::new(|| HashSet::from_iter(vec![Block::MossBlock])); +pub static REPLACEABLE: Lazy> = Lazy::new(|| { + HashSet::from_iter(vec![ + Block::Air, + Block::Water, + Block::Lava, + Block::ShortGrass, + Block::Fern, + Block::DeadBush, + Block::Seagrass, + Block::TallSeagrass, + Block::Fire, + Block::SoulFire, + Block::Snow, + Block::Vine, + Block::GlowLichen, + Block::Light, + Block::TallGrass, + Block::LargeFern, + Block::StructureVoid, + Block::VoidAir, + Block::CaveAir, + Block::BubbleColumn, + Block::WarpedRoots, + Block::NetherSprouts, + Block::CrimsonRoots, + Block::HangingRoots, ]) }); -pub static FLOWERS: Lazy> = Lazy::new(|| { +pub static ENCHANTMENT_POWER_PROVIDER: Lazy> = + Lazy::new(|| HashSet::from_iter(vec![Block::Bookshelf])); +pub static ENCHANTMENT_POWER_TRANSMITTER: Lazy> = Lazy::new(|| { HashSet::from_iter(vec![ - Block::FloweringAzaleaLeaves, - Block::FloweringAzalea, - Block::MangrovePropagule, - Block::CherryLeaves, - Block::PinkPetals, - Block::ChorusFlower, - Block::SporeBlossom, - 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::Air, + Block::Water, + Block::Lava, + Block::ShortGrass, + Block::Fern, + Block::DeadBush, + Block::Seagrass, + Block::TallSeagrass, + Block::Fire, + Block::SoulFire, + Block::Snow, + Block::Vine, + Block::GlowLichen, + Block::Light, + Block::TallGrass, + Block::LargeFern, + Block::StructureVoid, + Block::VoidAir, + Block::CaveAir, + Block::BubbleColumn, + Block::WarpedRoots, + Block::NetherSprouts, + Block::CrimsonRoots, + Block::HangingRoots, + ]) +}); +pub static MAINTAINS_FARMLAND: Lazy> = Lazy::new(|| { + HashSet::from_iter(vec![ + Block::PumpkinStem, + Block::AttachedPumpkinStem, + Block::MelonStem, + Block::AttachedMelonStem, + Block::Beetroots, + Block::Carrots, + Block::Potatoes, + Block::TorchflowerCrop, Block::Torchflower, - Block::Sunflower, - Block::Lilac, - Block::Peony, - Block::RoseBush, - Block::PitcherPlant, + Block::PitcherCrop, + Block::Wheat, ]) }); -pub static CANDLE_CAKES: Lazy> = Lazy::new(|| { +pub static CAMEL_SAND_STEP_SOUND_BLOCKS: Lazy> = Lazy::new(|| { HashSet::from_iter(vec![ - Block::CandleCake, - Block::WhiteCandleCake, - Block::OrangeCandleCake, - Block::MagentaCandleCake, - Block::LightBlueCandleCake, - Block::YellowCandleCake, - Block::LimeCandleCake, - Block::PinkCandleCake, - Block::GrayCandleCake, - Block::LightGrayCandleCake, - Block::CyanCandleCake, - Block::PurpleCandleCake, - Block::BlueCandleCake, - Block::BrownCandleCake, - Block::GreenCandleCake, - Block::RedCandleCake, - Block::BlackCandleCake, + Block::Sand, + Block::RedSand, + Block::SuspiciousSand, + Block::SuspiciousSand, + Block::WhiteConcretePowder, + Block::OrangeConcretePowder, + Block::MagentaConcretePowder, + Block::LightBlueConcretePowder, + Block::YellowConcretePowder, + Block::LimeConcretePowder, + Block::PinkConcretePowder, + Block::GrayConcretePowder, + Block::LightGrayConcretePowder, + Block::CyanConcretePowder, + Block::PurpleConcretePowder, + Block::BlueConcretePowder, + Block::BrownConcretePowder, + Block::GreenConcretePowder, + Block::RedConcretePowder, + Block::BlackConcretePowder, ]) }); -pub static INCORRECT_FOR_NETHERITE_TOOL: Lazy> = - Lazy::new(|| HashSet::from_iter(vec![])); +pub static DOES_NOT_BLOCK_HOPPERS: Lazy> = + Lazy::new(|| HashSet::from_iter(vec![Block::BeeNest, Block::Beehive])); pub static NEEDS_STONE_TOOL: Lazy> = Lazy::new(|| { HashSet::from_iter(vec![ Block::IronBlock, @@ -3562,55 +3515,102 @@ pub static NEEDS_STONE_TOOL: Lazy> = Lazy::new(|| { Block::LightningRod, ]) }); -pub static CANDLES: Lazy> = Lazy::new(|| { +pub static OVERWORLD_CARVER_REPLACEABLES: Lazy> = Lazy::new(|| { HashSet::from_iter(vec![ - Block::Candle, - Block::WhiteCandle, - Block::OrangeCandle, - Block::MagentaCandle, - Block::LightBlueCandle, - Block::YellowCandle, - Block::LimeCandle, - Block::PinkCandle, - Block::GrayCandle, - Block::LightGrayCandle, - Block::CyanCandle, - Block::PurpleCandle, - Block::BlueCandle, - Block::BrownCandle, - Block::GreenCandle, - Block::RedCandle, - Block::BlackCandle, + Block::Water, + Block::Gravel, + Block::SuspiciousGravel, + Block::Sandstone, + Block::RedSandstone, + Block::Calcite, + Block::Snow, + Block::PackedIce, + Block::RawIronBlock, + Block::RawCopperBlock, + Block::Stone, + Block::Granite, + Block::Diorite, + Block::Andesite, + Block::Tuff, + Block::Deepslate, + Block::Dirt, + Block::GrassBlock, + Block::Podzol, + Block::CoarseDirt, + Block::Mycelium, + Block::RootedDirt, + Block::MossBlock, + Block::Mud, + Block::MuddyMangroveRoots, + Block::Sand, + Block::RedSand, + Block::SuspiciousSand, + Block::SuspiciousSand, + Block::Terracotta, + Block::WhiteTerracotta, + Block::OrangeTerracotta, + Block::MagentaTerracotta, + Block::LightBlueTerracotta, + Block::YellowTerracotta, + Block::LimeTerracotta, + Block::PinkTerracotta, + Block::GrayTerracotta, + Block::LightGrayTerracotta, + Block::CyanTerracotta, + Block::PurpleTerracotta, + Block::BlueTerracotta, + Block::BrownTerracotta, + Block::GreenTerracotta, + Block::RedTerracotta, + Block::BlackTerracotta, + Block::IronOre, + Block::DeepslateIronOre, + Block::CopperOre, + Block::DeepslateCopperOre, ]) }); -pub static EMERALD_ORES: Lazy> = - Lazy::new(|| HashSet::from_iter(vec![Block::EmeraldOre, Block::DeepslateEmeraldOre])); -pub static CORAL_BLOCKS: Lazy> = Lazy::new(|| { +pub static NYLIUM: Lazy> = + Lazy::new(|| HashSet::from_iter(vec![Block::CrimsonNylium, Block::WarpedNylium])); +pub static WALL_HANGING_SIGNS: Lazy> = Lazy::new(|| { HashSet::from_iter(vec![ - Block::TubeCoralBlock, - Block::BrainCoralBlock, - Block::BubbleCoralBlock, - Block::FireCoralBlock, - Block::HornCoralBlock, + Block::OakWallHangingSign, + Block::SpruceWallHangingSign, + Block::BirchWallHangingSign, + Block::AcaciaWallHangingSign, + Block::CherryWallHangingSign, + Block::JungleWallHangingSign, + Block::DarkOakWallHangingSign, + Block::CrimsonWallHangingSign, + Block::WarpedWallHangingSign, + Block::MangroveWallHangingSign, + Block::BambooWallHangingSign, ]) }); -pub static BEDS: Lazy> = Lazy::new(|| { +pub static NETHER_CARVER_REPLACEABLES: Lazy> = Lazy::new(|| { HashSet::from_iter(vec![ - Block::RedBed, - Block::BlackBed, - Block::BlueBed, - Block::BrownBed, - Block::CyanBed, - Block::GrayBed, - Block::GreenBed, - Block::LightBlueBed, - Block::LightGrayBed, - Block::LimeBed, - Block::MagentaBed, - Block::OrangeBed, - Block::PinkBed, - Block::PurpleBed, - Block::WhiteBed, - Block::YellowBed, + Block::SoulSand, + Block::SoulSoil, + Block::Stone, + Block::Granite, + Block::Diorite, + Block::Andesite, + Block::Tuff, + Block::Deepslate, + Block::Netherrack, + Block::Basalt, + Block::Blackstone, + Block::Dirt, + Block::GrassBlock, + Block::Podzol, + Block::CoarseDirt, + Block::Mycelium, + Block::RootedDirt, + Block::MossBlock, + Block::Mud, + Block::MuddyMangroveRoots, + Block::CrimsonNylium, + Block::WarpedNylium, + Block::NetherWartBlock, + Block::WarpedWartBlock, ]) }); diff --git a/azalea-registry/src/tags/items.rs b/azalea-registry/src/tags/items.rs index 8ab6f9ae4..71cf247c8 100644 --- a/azalea-registry/src/tags/items.rs +++ b/azalea-registry/src/tags/items.rs @@ -6,14 +6,34 @@ use once_cell::sync::Lazy; use crate::Item; -pub static ENCHANTABLE_FIRE_ASPECT: Lazy> = Lazy::new(|| { +pub static ENCHANTABLE_FOOT_ARMOR: Lazy> = Lazy::new(|| { HashSet::from_iter(vec![ - Item::DiamondSword, - Item::StoneSword, - Item::GoldenSword, - Item::NetheriteSword, - Item::WoodenSword, - Item::IronSword, + Item::LeatherBoots, + Item::ChainmailBoots, + Item::GoldenBoots, + Item::IronBoots, + Item::DiamondBoots, + Item::NetheriteBoots, + ]) +}); +pub static ENCHANTABLE_LEG_ARMOR: Lazy> = Lazy::new(|| { + HashSet::from_iter(vec![ + Item::LeatherLeggings, + Item::ChainmailLeggings, + Item::GoldenLeggings, + Item::IronLeggings, + Item::DiamondLeggings, + Item::NetheriteLeggings, + ]) +}); +pub static ENCHANTABLE_CHEST_ARMOR: Lazy> = Lazy::new(|| { + HashSet::from_iter(vec![ + Item::LeatherChestplate, + Item::ChainmailChestplate, + Item::GoldenChestplate, + Item::IronChestplate, + Item::DiamondChestplate, + Item::NetheriteChestplate, ]) }); pub static ENCHANTABLE_HEAD_ARMOR: Lazy> = Lazy::new(|| { @@ -27,8 +47,6 @@ pub static ENCHANTABLE_HEAD_ARMOR: Lazy> = Lazy::new(|| { Item::TurtleHelmet, ]) }); -pub static ENCHANTABLE_CROSSBOW: Lazy> = - Lazy::new(|| HashSet::from_iter(vec![Item::Crossbow])); pub static ENCHANTABLE_ARMOR: Lazy> = Lazy::new(|| { HashSet::from_iter(vec![ Item::LeatherBoots, @@ -58,6 +76,26 @@ pub static ENCHANTABLE_ARMOR: Lazy> = Lazy::new(|| { Item::TurtleHelmet, ]) }); +pub static ENCHANTABLE_SWORD: Lazy> = Lazy::new(|| { + HashSet::from_iter(vec![ + Item::DiamondSword, + Item::StoneSword, + Item::GoldenSword, + Item::NetheriteSword, + Item::WoodenSword, + Item::IronSword, + ]) +}); +pub static ENCHANTABLE_FIRE_ASPECT: Lazy> = Lazy::new(|| { + HashSet::from_iter(vec![ + Item::DiamondSword, + Item::StoneSword, + Item::GoldenSword, + Item::NetheriteSword, + Item::WoodenSword, + Item::IronSword, + ]) +}); pub static ENCHANTABLE_MINING: Lazy> = Lazy::new(|| { HashSet::from_iter(vec![ Item::Shears, @@ -87,6 +125,42 @@ pub static ENCHANTABLE_MINING: Lazy> = Lazy::new(|| { Item::IronHoe, ]) }); +pub static ENCHANTABLE_FISHING: Lazy> = + Lazy::new(|| HashSet::from_iter(vec![Item::FishingRod])); +pub static ENCHANTABLE_SHARP_WEAPON: Lazy> = Lazy::new(|| { + HashSet::from_iter(vec![ + Item::DiamondSword, + Item::StoneSword, + Item::GoldenSword, + Item::NetheriteSword, + Item::WoodenSword, + Item::IronSword, + Item::DiamondAxe, + Item::StoneAxe, + Item::GoldenAxe, + Item::NetheriteAxe, + Item::WoodenAxe, + Item::IronAxe, + ]) +}); +pub static ENCHANTABLE_WEAPON: Lazy> = Lazy::new(|| { + HashSet::from_iter(vec![ + Item::DiamondSword, + Item::StoneSword, + Item::GoldenSword, + Item::NetheriteSword, + Item::WoodenSword, + Item::IronSword, + Item::DiamondAxe, + Item::StoneAxe, + Item::GoldenAxe, + Item::NetheriteAxe, + Item::WoodenAxe, + Item::IronAxe, + ]) +}); +pub static ENCHANTABLE_TRIDENT: Lazy> = + Lazy::new(|| HashSet::from_iter(vec![Item::Trident])); pub static ENCHANTABLE_DURABILITY: Lazy> = Lazy::new(|| { HashSet::from_iter(vec![ Item::Elytra, @@ -157,62 +231,45 @@ pub static ENCHANTABLE_DURABILITY: Lazy> = Lazy::new(|| { Item::IronHoe, ]) }); -pub static ENCHANTABLE_SWORD: Lazy> = Lazy::new(|| { - HashSet::from_iter(vec![ - Item::DiamondSword, - Item::StoneSword, - Item::GoldenSword, - Item::NetheriteSword, - Item::WoodenSword, - Item::IronSword, - ]) -}); -pub static ENCHANTABLE_LEG_ARMOR: Lazy> = Lazy::new(|| { +pub static ENCHANTABLE_BOW: Lazy> = Lazy::new(|| HashSet::from_iter(vec![Item::Bow])); +pub static ENCHANTABLE_CROSSBOW: Lazy> = + Lazy::new(|| HashSet::from_iter(vec![Item::Crossbow])); +pub static ENCHANTABLE_EQUIPPABLE: Lazy> = Lazy::new(|| { HashSet::from_iter(vec![ + Item::Elytra, + Item::CarvedPumpkin, + Item::LeatherBoots, + Item::ChainmailBoots, + Item::GoldenBoots, + Item::IronBoots, + Item::DiamondBoots, + Item::NetheriteBoots, Item::LeatherLeggings, Item::ChainmailLeggings, Item::GoldenLeggings, Item::IronLeggings, Item::DiamondLeggings, Item::NetheriteLeggings, - ]) -}); -pub static ENCHANTABLE_MINING_LOOT: Lazy> = Lazy::new(|| { - HashSet::from_iter(vec![ - Item::DiamondAxe, - Item::StoneAxe, - Item::GoldenAxe, - Item::NetheriteAxe, - Item::WoodenAxe, - Item::IronAxe, - Item::DiamondPickaxe, - Item::StonePickaxe, - Item::GoldenPickaxe, - Item::NetheritePickaxe, - Item::WoodenPickaxe, - Item::IronPickaxe, - Item::DiamondShovel, - Item::StoneShovel, - Item::GoldenShovel, - Item::NetheriteShovel, - Item::WoodenShovel, - Item::IronShovel, - Item::DiamondHoe, - Item::StoneHoe, - Item::GoldenHoe, - Item::NetheriteHoe, - Item::WoodenHoe, - Item::IronHoe, - ]) -}); -pub static ENCHANTABLE_CHEST_ARMOR: Lazy> = Lazy::new(|| { - HashSet::from_iter(vec![ Item::LeatherChestplate, Item::ChainmailChestplate, Item::GoldenChestplate, Item::IronChestplate, Item::DiamondChestplate, Item::NetheriteChestplate, + Item::LeatherHelmet, + Item::ChainmailHelmet, + Item::GoldenHelmet, + Item::IronHelmet, + Item::DiamondHelmet, + Item::NetheriteHelmet, + Item::TurtleHelmet, + Item::PlayerHead, + Item::CreeperHead, + Item::ZombieHead, + Item::SkeletonSkull, + Item::WitherSkeletonSkull, + Item::DragonHead, + Item::PiglinHead, ]) }); pub static ENCHANTABLE_VANISHING: Lazy> = Lazy::new(|| { @@ -294,176 +351,113 @@ pub static ENCHANTABLE_VANISHING: Lazy> = Lazy::new(|| { Item::IronHoe, ]) }); -pub static ENCHANTABLE_FOOT_ARMOR: Lazy> = Lazy::new(|| { - HashSet::from_iter(vec![ - Item::LeatherBoots, - Item::ChainmailBoots, - Item::GoldenBoots, - Item::IronBoots, - Item::DiamondBoots, - Item::NetheriteBoots, - ]) -}); -pub static ENCHANTABLE_EQUIPPABLE: Lazy> = Lazy::new(|| { - HashSet::from_iter(vec![ - Item::Elytra, - Item::CarvedPumpkin, - Item::LeatherBoots, - Item::ChainmailBoots, - Item::GoldenBoots, - Item::IronBoots, - Item::DiamondBoots, - Item::NetheriteBoots, - Item::LeatherLeggings, - Item::ChainmailLeggings, - Item::GoldenLeggings, - Item::IronLeggings, - Item::DiamondLeggings, - Item::NetheriteLeggings, - Item::LeatherChestplate, - Item::ChainmailChestplate, - Item::GoldenChestplate, - Item::IronChestplate, - Item::DiamondChestplate, - Item::NetheriteChestplate, - Item::LeatherHelmet, - Item::ChainmailHelmet, - Item::GoldenHelmet, - Item::IronHelmet, - Item::DiamondHelmet, - Item::NetheriteHelmet, - Item::TurtleHelmet, - Item::PlayerHead, - Item::CreeperHead, - Item::ZombieHead, - Item::SkeletonSkull, - Item::WitherSkeletonSkull, - Item::DragonHead, - Item::PiglinHead, - ]) -}); -pub static ENCHANTABLE_TRIDENT: Lazy> = - Lazy::new(|| HashSet::from_iter(vec![Item::Trident])); -pub static ENCHANTABLE_FISHING: Lazy> = - Lazy::new(|| HashSet::from_iter(vec![Item::FishingRod])); -pub static ENCHANTABLE_SHARP_WEAPON: Lazy> = Lazy::new(|| { +pub static ENCHANTABLE_MINING_LOOT: Lazy> = Lazy::new(|| { HashSet::from_iter(vec![ - Item::DiamondSword, - Item::StoneSword, - Item::GoldenSword, - Item::NetheriteSword, - Item::WoodenSword, - Item::IronSword, Item::DiamondAxe, Item::StoneAxe, Item::GoldenAxe, Item::NetheriteAxe, Item::WoodenAxe, Item::IronAxe, + Item::DiamondPickaxe, + Item::StonePickaxe, + Item::GoldenPickaxe, + Item::NetheritePickaxe, + Item::WoodenPickaxe, + Item::IronPickaxe, + Item::DiamondShovel, + Item::StoneShovel, + Item::GoldenShovel, + Item::NetheriteShovel, + Item::WoodenShovel, + Item::IronShovel, + Item::DiamondHoe, + Item::StoneHoe, + Item::GoldenHoe, + Item::NetheriteHoe, + Item::WoodenHoe, + Item::IronHoe, ]) }); -pub static ENCHANTABLE_BOW: Lazy> = Lazy::new(|| HashSet::from_iter(vec![Item::Bow])); -pub static ENCHANTABLE_WEAPON: Lazy> = Lazy::new(|| { +pub static BANNERS: Lazy> = Lazy::new(|| { HashSet::from_iter(vec![ - Item::DiamondSword, - Item::StoneSword, - Item::GoldenSword, - Item::NetheriteSword, - Item::WoodenSword, - Item::IronSword, - Item::DiamondAxe, - Item::StoneAxe, - Item::GoldenAxe, - Item::NetheriteAxe, - Item::WoodenAxe, - Item::IronAxe, - ]) -}); -pub static WOOL: Lazy> = Lazy::new(|| { - HashSet::from_iter(vec![ - Item::WhiteWool, - Item::OrangeWool, - Item::MagentaWool, - Item::LightBlueWool, - Item::YellowWool, - Item::LimeWool, - Item::PinkWool, - Item::GrayWool, - Item::LightGrayWool, - Item::CyanWool, - Item::PurpleWool, - Item::BlueWool, - Item::BrownWool, - Item::GreenWool, - Item::RedWool, - Item::BlackWool, + Item::WhiteBanner, + Item::OrangeBanner, + Item::MagentaBanner, + Item::LightBlueBanner, + Item::YellowBanner, + Item::LimeBanner, + Item::PinkBanner, + Item::GrayBanner, + Item::LightGrayBanner, + Item::CyanBanner, + Item::PurpleBanner, + Item::BlueBanner, + Item::BrownBanner, + Item::GreenBanner, + Item::RedBanner, + Item::BlackBanner, ]) }); -pub static LOGS_THAT_BURN: Lazy> = Lazy::new(|| { +pub static FISHES: Lazy> = Lazy::new(|| { HashSet::from_iter(vec![ - Item::DarkOakLog, - Item::DarkOakWood, - Item::StrippedDarkOakLog, - Item::StrippedDarkOakWood, - Item::OakLog, - Item::OakWood, - Item::StrippedOakLog, - Item::StrippedOakWood, - Item::AcaciaLog, - Item::AcaciaWood, - Item::StrippedAcaciaLog, - Item::StrippedAcaciaWood, - Item::BirchLog, - Item::BirchWood, - Item::StrippedBirchLog, - Item::StrippedBirchWood, - Item::JungleLog, - Item::JungleWood, - Item::StrippedJungleLog, - Item::StrippedJungleWood, - Item::SpruceLog, - Item::SpruceWood, - Item::StrippedSpruceLog, - Item::StrippedSpruceWood, - Item::MangroveLog, - Item::MangroveWood, - Item::StrippedMangroveLog, - Item::StrippedMangroveWood, - Item::CherryLog, - Item::CherryWood, - Item::StrippedCherryLog, - Item::StrippedCherryWood, + Item::Cod, + Item::CookedCod, + Item::Salmon, + Item::CookedSalmon, + Item::Pufferfish, + Item::TropicalFish, ]) }); -pub static PARROT_POISONOUS_FOOD: Lazy> = - Lazy::new(|| HashSet::from_iter(vec![Item::Cookie])); -pub static RAILS: Lazy> = Lazy::new(|| { +pub static CHEST_BOATS: Lazy> = Lazy::new(|| { HashSet::from_iter(vec![ - Item::Rail, - Item::PoweredRail, - Item::DetectorRail, - Item::ActivatorRail, + Item::OakChestBoat, + Item::SpruceChestBoat, + Item::BirchChestBoat, + Item::JungleChestBoat, + Item::AcaciaChestBoat, + Item::DarkOakChestBoat, + Item::MangroveChestBoat, + Item::BambooChestRaft, + Item::CherryChestBoat, ]) }); -pub static HEAD_ARMOR: Lazy> = Lazy::new(|| { +pub static BOATS: Lazy> = Lazy::new(|| { HashSet::from_iter(vec![ - Item::LeatherHelmet, - Item::ChainmailHelmet, - Item::GoldenHelmet, - Item::IronHelmet, - Item::DiamondHelmet, - Item::NetheriteHelmet, - Item::TurtleHelmet, + Item::OakBoat, + Item::SpruceBoat, + Item::BirchBoat, + Item::JungleBoat, + Item::AcaciaBoat, + Item::DarkOakBoat, + Item::MangroveBoat, + Item::BambooRaft, + Item::CherryBoat, + Item::OakChestBoat, + Item::SpruceChestBoat, + Item::BirchChestBoat, + Item::JungleChestBoat, + Item::AcaciaChestBoat, + Item::DarkOakChestBoat, + Item::MangroveChestBoat, + Item::BambooChestRaft, + Item::CherryChestBoat, ]) }); -pub static CAMEL_FOOD: Lazy> = Lazy::new(|| HashSet::from_iter(vec![Item::Cactus])); -pub static BOOKSHELF_BOOKS: Lazy> = Lazy::new(|| { +pub static CREEPER_DROP_MUSIC_DISCS: Lazy> = Lazy::new(|| { HashSet::from_iter(vec![ - Item::Book, - Item::WrittenBook, - Item::EnchantedBook, - Item::WritableBook, - Item::KnowledgeBook, + Item::MusicDisc13, + Item::MusicDiscCat, + Item::MusicDiscBlocks, + Item::MusicDiscChirp, + Item::MusicDiscFar, + Item::MusicDiscMall, + Item::MusicDiscMellohi, + Item::MusicDiscStal, + Item::MusicDiscStrad, + Item::MusicDiscWard, + Item::MusicDisc11, + Item::MusicDiscWait, ]) }); pub static MUSIC_DISCS: Lazy> = Lazy::new(|| { @@ -486,23 +480,117 @@ pub static MUSIC_DISCS: Lazy> = Lazy::new(|| { Item::MusicDiscWait, ]) }); -pub static STONE_BRICKS: Lazy> = Lazy::new(|| { +pub static COALS: Lazy> = + Lazy::new(|| HashSet::from_iter(vec![Item::Coal, Item::Charcoal])); +pub static ARROWS: Lazy> = + Lazy::new(|| HashSet::from_iter(vec![Item::Arrow, Item::TippedArrow, Item::SpectralArrow])); +pub static LECTERN_BOOKS: Lazy> = + Lazy::new(|| HashSet::from_iter(vec![Item::WrittenBook, Item::WritableBook])); +pub static BEACON_PAYMENT_ITEMS: Lazy> = Lazy::new(|| { HashSet::from_iter(vec![ - Item::StoneBricks, - Item::MossyStoneBricks, - Item::CrackedStoneBricks, - Item::ChiseledStoneBricks, + Item::NetheriteIngot, + Item::Emerald, + Item::Diamond, + Item::GoldIngot, + Item::IronIngot, ]) }); -pub static WARPED_STEMS: Lazy> = Lazy::new(|| { +pub static PIGLIN_REPELLENTS: Lazy> = + Lazy::new(|| HashSet::from_iter(vec![Item::SoulTorch, Item::SoulLantern, Item::SoulCampfire])); +pub static IGNORED_BY_PIGLIN_BABIES: Lazy> = + Lazy::new(|| HashSet::from_iter(vec![Item::Leather])); +pub static PIGLIN_LOVED: Lazy> = Lazy::new(|| { + HashSet::from_iter(vec![ + Item::GoldBlock, + Item::GildedBlackstone, + Item::LightWeightedPressurePlate, + Item::GoldIngot, + Item::Bell, + Item::Clock, + Item::GoldenCarrot, + Item::GlisteringMelonSlice, + Item::GoldenApple, + Item::EnchantedGoldenApple, + Item::GoldenHelmet, + Item::GoldenChestplate, + Item::GoldenLeggings, + Item::GoldenBoots, + Item::GoldenHorseArmor, + Item::GoldenSword, + Item::GoldenPickaxe, + Item::GoldenShovel, + Item::GoldenAxe, + Item::GoldenHoe, + Item::RawGold, + Item::RawGoldBlock, + Item::GoldOre, + Item::NetherGoldOre, + Item::DeepslateGoldOre, + ]) +}); +pub static PIGLIN_FOOD: Lazy> = + Lazy::new(|| HashSet::from_iter(vec![Item::Porkchop, Item::CookedPorkchop])); +pub static FOX_FOOD: Lazy> = + Lazy::new(|| HashSet::from_iter(vec![Item::SweetBerries, Item::GlowBerries])); +pub static STONE_TOOL_MATERIALS: Lazy> = Lazy::new(|| { + HashSet::from_iter(vec![ + Item::Cobblestone, + Item::Blackstone, + Item::CobbledDeepslate, + ]) +}); +pub static NON_FLAMMABLE_WOOD: Lazy> = Lazy::new(|| { HashSet::from_iter(vec![ Item::WarpedStem, Item::StrippedWarpedStem, Item::WarpedHyphae, Item::StrippedWarpedHyphae, + Item::CrimsonStem, + Item::StrippedCrimsonStem, + Item::CrimsonHyphae, + Item::StrippedCrimsonHyphae, + Item::CrimsonPlanks, + Item::WarpedPlanks, + Item::CrimsonSlab, + Item::WarpedSlab, + Item::CrimsonPressurePlate, + Item::WarpedPressurePlate, + Item::CrimsonFence, + Item::WarpedFence, + Item::CrimsonTrapdoor, + Item::WarpedTrapdoor, + Item::CrimsonFenceGate, + Item::WarpedFenceGate, + Item::CrimsonStairs, + Item::WarpedStairs, + Item::CrimsonButton, + Item::WarpedButton, + Item::CrimsonDoor, + Item::WarpedDoor, + Item::CrimsonSign, + Item::WarpedSign, + Item::WarpedHangingSign, + Item::CrimsonHangingSign, ]) }); -pub static FROG_FOOD: Lazy> = Lazy::new(|| HashSet::from_iter(vec![Item::SlimeBall])); +pub static STONE_CRAFTING_MATERIALS: Lazy> = Lazy::new(|| { + HashSet::from_iter(vec![ + Item::Cobblestone, + Item::Blackstone, + Item::CobbledDeepslate, + ]) +}); +pub static FREEZE_IMMUNE_WEARABLES: Lazy> = Lazy::new(|| { + HashSet::from_iter(vec![ + Item::LeatherBoots, + Item::LeatherLeggings, + Item::LeatherChestplate, + Item::LeatherHelmet, + Item::LeatherHorseArmor, + ]) +}); +pub static AXOLOTL_FOOD: Lazy> = + Lazy::new(|| HashSet::from_iter(vec![Item::TropicalFishBucket])); pub static CLUSTER_MAX_HARVESTABLES: Lazy> = Lazy::new(|| { HashSet::from_iter(vec![ Item::DiamondPickaxe, @@ -513,301 +601,366 @@ pub static CLUSTER_MAX_HARVESTABLES: Lazy> = Lazy::new(|| { Item::WoodenPickaxe, ]) }); -pub static OAK_LOGS: Lazy> = Lazy::new(|| { +pub static COMPASSES: Lazy> = + Lazy::new(|| HashSet::from_iter(vec![Item::Compass, Item::RecoveryCompass])); +pub static CREEPER_IGNITERS: Lazy> = + Lazy::new(|| HashSet::from_iter(vec![Item::FlintAndSteel, Item::FireCharge])); +pub static SWORDS: Lazy> = Lazy::new(|| { HashSet::from_iter(vec![ - Item::OakLog, - Item::OakWood, - Item::StrippedOakLog, - Item::StrippedOakWood, + Item::DiamondSword, + Item::StoneSword, + Item::GoldenSword, + Item::NetheriteSword, + Item::WoodenSword, + Item::IronSword, ]) }); -pub static SLABS: Lazy> = Lazy::new(|| { +pub static AXES: Lazy> = Lazy::new(|| { HashSet::from_iter(vec![ - Item::BambooMosaicSlab, - Item::StoneSlab, - Item::SmoothStoneSlab, - Item::StoneBrickSlab, - Item::SandstoneSlab, - Item::PurpurSlab, - Item::QuartzSlab, - Item::RedSandstoneSlab, - Item::BrickSlab, - Item::CobblestoneSlab, - Item::NetherBrickSlab, - Item::PetrifiedOakSlab, - Item::PrismarineSlab, - Item::PrismarineBrickSlab, - Item::DarkPrismarineSlab, - Item::PolishedGraniteSlab, - Item::SmoothRedSandstoneSlab, - Item::MossyStoneBrickSlab, - Item::PolishedDioriteSlab, - Item::MossyCobblestoneSlab, - Item::EndStoneBrickSlab, - Item::SmoothSandstoneSlab, - Item::SmoothQuartzSlab, - Item::GraniteSlab, - Item::AndesiteSlab, - Item::RedNetherBrickSlab, - Item::PolishedAndesiteSlab, - Item::DioriteSlab, - Item::CutSandstoneSlab, - Item::CutRedSandstoneSlab, - Item::BlackstoneSlab, - Item::PolishedBlackstoneBrickSlab, - Item::PolishedBlackstoneSlab, - Item::CobbledDeepslateSlab, - Item::PolishedDeepslateSlab, - Item::DeepslateTileSlab, - Item::DeepslateBrickSlab, - Item::WaxedWeatheredCutCopperSlab, - Item::WaxedExposedCutCopperSlab, - Item::WaxedCutCopperSlab, - Item::OxidizedCutCopperSlab, - Item::WeatheredCutCopperSlab, - Item::ExposedCutCopperSlab, - Item::CutCopperSlab, - Item::WaxedOxidizedCutCopperSlab, - Item::MudBrickSlab, - Item::OakSlab, - Item::SpruceSlab, - Item::BirchSlab, - Item::JungleSlab, - Item::AcaciaSlab, - Item::DarkOakSlab, - Item::CrimsonSlab, - Item::WarpedSlab, - Item::MangroveSlab, - Item::BambooSlab, - Item::CherrySlab, + Item::DiamondAxe, + Item::StoneAxe, + Item::GoldenAxe, + Item::NetheriteAxe, + Item::WoodenAxe, + Item::IronAxe, ]) }); -pub static WART_BLOCKS: Lazy> = - Lazy::new(|| HashSet::from_iter(vec![Item::NetherWartBlock, Item::WarpedWartBlock])); -pub static LOGS: Lazy> = Lazy::new(|| { +pub static PICKAXES: Lazy> = Lazy::new(|| { HashSet::from_iter(vec![ - Item::CrimsonStem, - Item::StrippedCrimsonStem, - Item::CrimsonHyphae, - Item::StrippedCrimsonHyphae, - Item::WarpedStem, - Item::StrippedWarpedStem, - Item::WarpedHyphae, - Item::StrippedWarpedHyphae, - Item::DarkOakLog, - Item::DarkOakWood, - Item::StrippedDarkOakLog, - Item::StrippedDarkOakWood, - Item::OakLog, - Item::OakWood, - Item::StrippedOakLog, - Item::StrippedOakWood, - Item::AcaciaLog, - Item::AcaciaWood, - Item::StrippedAcaciaLog, - Item::StrippedAcaciaWood, - Item::BirchLog, - Item::BirchWood, - Item::StrippedBirchLog, - Item::StrippedBirchWood, - Item::JungleLog, - Item::JungleWood, - Item::StrippedJungleLog, - Item::StrippedJungleWood, - Item::SpruceLog, - Item::SpruceWood, - Item::StrippedSpruceLog, - Item::StrippedSpruceWood, - Item::MangroveLog, - Item::MangroveWood, - Item::StrippedMangroveLog, - Item::StrippedMangroveWood, - Item::CherryLog, - Item::CherryWood, - Item::StrippedCherryLog, - Item::StrippedCherryWood, + Item::DiamondPickaxe, + Item::StonePickaxe, + Item::GoldenPickaxe, + Item::NetheritePickaxe, + Item::WoodenPickaxe, + Item::IronPickaxe, ]) }); -pub static DARK_OAK_LOGS: Lazy> = Lazy::new(|| { +pub static SHOVELS: Lazy> = Lazy::new(|| { HashSet::from_iter(vec![ - Item::DarkOakLog, - Item::DarkOakWood, - Item::StrippedDarkOakLog, - Item::StrippedDarkOakWood, + Item::DiamondShovel, + Item::StoneShovel, + Item::GoldenShovel, + Item::NetheriteShovel, + Item::WoodenShovel, + Item::IronShovel, ]) }); -pub static JUNGLE_LOGS: Lazy> = Lazy::new(|| { +pub static HOES: Lazy> = Lazy::new(|| { HashSet::from_iter(vec![ - Item::JungleLog, - Item::JungleWood, - Item::StrippedJungleLog, - Item::StrippedJungleWood, + Item::DiamondHoe, + Item::StoneHoe, + Item::GoldenHoe, + Item::NetheriteHoe, + Item::WoodenHoe, + Item::IronHoe, ]) }); -pub static ARROWS: Lazy> = - Lazy::new(|| HashSet::from_iter(vec![Item::Arrow, Item::TippedArrow, Item::SpectralArrow])); -pub static DAMPENS_VIBRATIONS: Lazy> = Lazy::new(|| { +pub static BREAKS_DECORATED_POTS: Lazy> = Lazy::new(|| { HashSet::from_iter(vec![ - Item::WhiteWool, - Item::OrangeWool, - Item::MagentaWool, - Item::LightBlueWool, - Item::YellowWool, - Item::LimeWool, - Item::PinkWool, - Item::GrayWool, - Item::LightGrayWool, - Item::CyanWool, - Item::PurpleWool, - Item::BlueWool, - Item::BrownWool, - Item::GreenWool, - Item::RedWool, - Item::BlackWool, - Item::WhiteCarpet, - Item::OrangeCarpet, - Item::MagentaCarpet, - Item::LightBlueCarpet, - Item::YellowCarpet, - Item::LimeCarpet, - Item::PinkCarpet, - Item::GrayCarpet, - Item::LightGrayCarpet, - Item::CyanCarpet, - Item::PurpleCarpet, - Item::BlueCarpet, - Item::BrownCarpet, - Item::GreenCarpet, - Item::RedCarpet, - Item::BlackCarpet, + Item::Trident, + Item::DiamondSword, + Item::StoneSword, + Item::GoldenSword, + Item::NetheriteSword, + Item::WoodenSword, + Item::IronSword, + Item::DiamondAxe, + Item::StoneAxe, + Item::GoldenAxe, + Item::NetheriteAxe, + Item::WoodenAxe, + Item::IronAxe, + Item::DiamondPickaxe, + Item::StonePickaxe, + Item::GoldenPickaxe, + Item::NetheritePickaxe, + Item::WoodenPickaxe, + Item::IronPickaxe, + Item::DiamondShovel, + Item::StoneShovel, + Item::GoldenShovel, + Item::NetheriteShovel, + Item::WoodenShovel, + Item::IronShovel, + Item::DiamondHoe, + Item::StoneHoe, + Item::GoldenHoe, + Item::NetheriteHoe, + Item::WoodenHoe, + Item::IronHoe, ]) }); -pub static LAPIS_ORES: Lazy> = - Lazy::new(|| HashSet::from_iter(vec![Item::LapisOre, Item::DeepslateLapisOre])); -pub static NOTEBLOCK_TOP_INSTRUMENTS: Lazy> = Lazy::new(|| { +pub static DECORATED_POT_SHERDS: Lazy> = Lazy::new(|| { + HashSet::from_iter(vec![ + Item::AnglerPotterySherd, + Item::ArcherPotterySherd, + Item::ArmsUpPotterySherd, + Item::BladePotterySherd, + Item::BrewerPotterySherd, + Item::BurnPotterySherd, + Item::DangerPotterySherd, + Item::ExplorerPotterySherd, + Item::FriendPotterySherd, + Item::HeartPotterySherd, + Item::HeartbreakPotterySherd, + Item::HowlPotterySherd, + Item::MinerPotterySherd, + Item::MournerPotterySherd, + Item::PlentyPotterySherd, + Item::PrizePotterySherd, + Item::SheafPotterySherd, + Item::ShelterPotterySherd, + Item::SkullPotterySherd, + Item::SnortPotterySherd, + ]) +}); +pub static DECORATED_POT_INGREDIENTS: Lazy> = Lazy::new(|| { + HashSet::from_iter(vec![ + Item::Brick, + Item::AnglerPotterySherd, + Item::ArcherPotterySherd, + Item::ArmsUpPotterySherd, + Item::BladePotterySherd, + Item::BrewerPotterySherd, + Item::BurnPotterySherd, + Item::DangerPotterySherd, + Item::ExplorerPotterySherd, + Item::FriendPotterySherd, + Item::HeartPotterySherd, + Item::HeartbreakPotterySherd, + Item::HowlPotterySherd, + Item::MinerPotterySherd, + Item::MournerPotterySherd, + Item::PlentyPotterySherd, + Item::PrizePotterySherd, + Item::SheafPotterySherd, + Item::ShelterPotterySherd, + Item::SkullPotterySherd, + Item::SnortPotterySherd, + ]) +}); +pub static FOOT_ARMOR: Lazy> = Lazy::new(|| { + HashSet::from_iter(vec![ + Item::LeatherBoots, + Item::ChainmailBoots, + Item::GoldenBoots, + Item::IronBoots, + Item::DiamondBoots, + Item::NetheriteBoots, + ]) +}); +pub static LEG_ARMOR: Lazy> = Lazy::new(|| { + HashSet::from_iter(vec![ + Item::LeatherLeggings, + Item::ChainmailLeggings, + Item::GoldenLeggings, + Item::IronLeggings, + Item::DiamondLeggings, + Item::NetheriteLeggings, + ]) +}); +pub static CHEST_ARMOR: Lazy> = Lazy::new(|| { + HashSet::from_iter(vec![ + Item::LeatherChestplate, + Item::ChainmailChestplate, + Item::GoldenChestplate, + Item::IronChestplate, + Item::DiamondChestplate, + Item::NetheriteChestplate, + ]) +}); +pub static HEAD_ARMOR: Lazy> = Lazy::new(|| { + HashSet::from_iter(vec![ + Item::LeatherHelmet, + Item::ChainmailHelmet, + Item::GoldenHelmet, + Item::IronHelmet, + Item::DiamondHelmet, + Item::NetheriteHelmet, + Item::TurtleHelmet, + ]) +}); +pub static SKULLS: Lazy> = Lazy::new(|| { HashSet::from_iter(vec![ + Item::PlayerHead, + Item::CreeperHead, Item::ZombieHead, Item::SkeletonSkull, - Item::CreeperHead, - Item::DragonHead, Item::WitherSkeletonSkull, + Item::DragonHead, Item::PiglinHead, - Item::PlayerHead, ]) }); -pub static NON_FLAMMABLE_WOOD: Lazy> = Lazy::new(|| { +pub static TRIMMABLE_ARMOR: Lazy> = Lazy::new(|| { HashSet::from_iter(vec![ - Item::WarpedStem, - Item::StrippedWarpedStem, - Item::WarpedHyphae, - Item::StrippedWarpedHyphae, - Item::CrimsonStem, - Item::StrippedCrimsonStem, - Item::CrimsonHyphae, - Item::StrippedCrimsonHyphae, - Item::CrimsonPlanks, - Item::WarpedPlanks, - Item::CrimsonSlab, - Item::WarpedSlab, - Item::CrimsonPressurePlate, - Item::WarpedPressurePlate, - Item::CrimsonFence, - Item::WarpedFence, - Item::CrimsonTrapdoor, - Item::WarpedTrapdoor, - Item::CrimsonFenceGate, - Item::WarpedFenceGate, - Item::CrimsonStairs, - Item::WarpedStairs, - Item::CrimsonButton, - Item::WarpedButton, - Item::CrimsonDoor, - Item::WarpedDoor, - Item::CrimsonSign, - Item::WarpedSign, - Item::WarpedHangingSign, - Item::CrimsonHangingSign, + Item::LeatherBoots, + Item::ChainmailBoots, + Item::GoldenBoots, + Item::IronBoots, + Item::DiamondBoots, + Item::NetheriteBoots, + Item::LeatherLeggings, + Item::ChainmailLeggings, + Item::GoldenLeggings, + Item::IronLeggings, + Item::DiamondLeggings, + Item::NetheriteLeggings, + Item::LeatherChestplate, + Item::ChainmailChestplate, + Item::GoldenChestplate, + Item::IronChestplate, + Item::DiamondChestplate, + Item::NetheriteChestplate, + Item::LeatherHelmet, + Item::ChainmailHelmet, + Item::GoldenHelmet, + Item::IronHelmet, + Item::DiamondHelmet, + Item::NetheriteHelmet, + Item::TurtleHelmet, + ]) +}); +pub static TRIM_MATERIALS: Lazy> = 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> = 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, + ]) +}); +pub static BOOKSHELF_BOOKS: Lazy> = Lazy::new(|| { + HashSet::from_iter(vec![ + Item::Book, + Item::WrittenBook, + Item::EnchantedBook, + Item::WritableBook, + Item::KnowledgeBook, ]) }); -pub static CREEPER_DROP_MUSIC_DISCS: Lazy> = Lazy::new(|| { +pub static NOTEBLOCK_TOP_INSTRUMENTS: Lazy> = Lazy::new(|| { HashSet::from_iter(vec![ - Item::MusicDisc13, - Item::MusicDiscCat, - Item::MusicDiscBlocks, - Item::MusicDiscChirp, - Item::MusicDiscFar, - Item::MusicDiscMall, - Item::MusicDiscMellohi, - Item::MusicDiscStal, - Item::MusicDiscStrad, - Item::MusicDiscWard, - Item::MusicDisc11, - Item::MusicDiscWait, + Item::ZombieHead, + Item::SkeletonSkull, + Item::CreeperHead, + Item::DragonHead, + Item::WitherSkeletonSkull, + Item::PiglinHead, + Item::PlayerHead, ]) }); -pub static MANGROVE_LOGS: Lazy> = Lazy::new(|| { +pub static SNIFFER_FOOD: Lazy> = + Lazy::new(|| HashSet::from_iter(vec![Item::TorchflowerSeeds])); +pub static VILLAGER_PLANTABLE_SEEDS: Lazy> = Lazy::new(|| { HashSet::from_iter(vec![ - Item::MangroveLog, - Item::MangroveWood, - Item::StrippedMangroveLog, - Item::StrippedMangroveWood, + Item::WheatSeeds, + Item::Potato, + Item::Carrot, + Item::BeetrootSeeds, + Item::TorchflowerSeeds, + Item::PitcherPod, ]) }); -pub static BEE_FOOD: Lazy> = Lazy::new(|| { +pub static DYEABLE: Lazy> = 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, + Item::LeatherHelmet, + Item::LeatherChestplate, + Item::LeatherLeggings, + Item::LeatherBoots, + Item::LeatherHorseArmor, + Item::WolfArmor, ]) }); -pub static DIRT: Lazy> = Lazy::new(|| { +pub static MEAT: Lazy> = Lazy::new(|| { HashSet::from_iter(vec![ - Item::Dirt, - Item::GrassBlock, - Item::Podzol, - Item::CoarseDirt, - Item::Mycelium, - Item::RootedDirt, - Item::MossBlock, - Item::Mud, - Item::MuddyMangroveRoots, + Item::Beef, + Item::Chicken, + Item::CookedBeef, + Item::CookedChicken, + Item::CookedMutton, + Item::CookedPorkchop, + Item::CookedRabbit, + Item::Mutton, + Item::Porkchop, + Item::Rabbit, + Item::RottenFlesh, + ]) +}); +pub static CAMEL_FOOD: Lazy> = Lazy::new(|| HashSet::from_iter(vec![Item::Cactus])); +pub static ARMADILLO_FOOD: Lazy> = + Lazy::new(|| HashSet::from_iter(vec![Item::SpiderEye])); +pub static WOLF_FOOD: Lazy> = Lazy::new(|| { + HashSet::from_iter(vec![ + Item::Beef, + Item::Chicken, + Item::CookedBeef, + Item::CookedChicken, + Item::CookedMutton, + Item::CookedPorkchop, + Item::CookedRabbit, + Item::Mutton, + Item::Porkchop, + Item::Rabbit, + Item::RottenFlesh, ]) }); +pub static LLAMA_FOOD: Lazy> = + Lazy::new(|| HashSet::from_iter(vec![Item::Wheat, Item::HayBlock])); pub static OCELOT_FOOD: Lazy> = Lazy::new(|| HashSet::from_iter(vec![Item::Cod, Item::Salmon])); -pub static HOES: Lazy> = Lazy::new(|| { +pub static LLAMA_TEMPT_ITEMS: Lazy> = + Lazy::new(|| HashSet::from_iter(vec![Item::HayBlock])); +pub static PANDA_FOOD: Lazy> = Lazy::new(|| HashSet::from_iter(vec![Item::Bamboo])); +pub static PIG_FOOD: Lazy> = + Lazy::new(|| HashSet::from_iter(vec![Item::Carrot, Item::Potato, Item::Beetroot])); +pub static RABBIT_FOOD: Lazy> = + Lazy::new(|| HashSet::from_iter(vec![Item::Carrot, Item::GoldenCarrot, Item::Dandelion])); +pub static STRIDER_FOOD: Lazy> = + Lazy::new(|| HashSet::from_iter(vec![Item::WarpedFungus])); +pub static STRIDER_TEMPT_ITEMS: Lazy> = + Lazy::new(|| HashSet::from_iter(vec![Item::WarpedFungusOnAStick, Item::WarpedFungus])); +pub static TURTLE_FOOD: Lazy> = + Lazy::new(|| HashSet::from_iter(vec![Item::Seagrass])); +pub static PARROT_FOOD: Lazy> = Lazy::new(|| { HashSet::from_iter(vec![ - Item::DiamondHoe, - Item::StoneHoe, - Item::GoldenHoe, - Item::NetheriteHoe, - Item::WoodenHoe, - Item::IronHoe, + Item::WheatSeeds, + Item::MelonSeeds, + Item::PumpkinSeeds, + Item::BeetrootSeeds, + Item::TorchflowerSeeds, + Item::PitcherPod, ]) }); +pub static PARROT_POISONOUS_FOOD: Lazy> = + Lazy::new(|| HashSet::from_iter(vec![Item::Cookie])); +pub static COW_FOOD: Lazy> = Lazy::new(|| HashSet::from_iter(vec![Item::Wheat])); +pub static SHEEP_FOOD: Lazy> = Lazy::new(|| HashSet::from_iter(vec![Item::Wheat])); +pub static GOAT_FOOD: Lazy> = Lazy::new(|| HashSet::from_iter(vec![Item::Wheat])); pub static FENCES: Lazy> = Lazy::new(|| { HashSet::from_iter(vec![ Item::NetherBrickFence, @@ -824,121 +977,26 @@ pub static FENCES: Lazy> = Lazy::new(|| { Item::CherryFence, ]) }); -pub static WOOL_CARPETS: Lazy> = Lazy::new(|| { - HashSet::from_iter(vec![ - Item::WhiteCarpet, - Item::OrangeCarpet, - Item::MagentaCarpet, - Item::LightBlueCarpet, - Item::YellowCarpet, - Item::LimeCarpet, - Item::PinkCarpet, - Item::GrayCarpet, - Item::LightGrayCarpet, - Item::CyanCarpet, - Item::PurpleCarpet, - Item::BlueCarpet, - Item::BrownCarpet, - Item::GreenCarpet, - Item::RedCarpet, - Item::BlackCarpet, - ]) -}); -pub static LEG_ARMOR: Lazy> = Lazy::new(|| { - HashSet::from_iter(vec![ - Item::LeatherLeggings, - Item::ChainmailLeggings, - Item::GoldenLeggings, - Item::IronLeggings, - Item::DiamondLeggings, - Item::NetheriteLeggings, - ]) -}); -pub static SWORDS: Lazy> = Lazy::new(|| { - HashSet::from_iter(vec![ - Item::DiamondSword, - Item::StoneSword, - Item::GoldenSword, - Item::NetheriteSword, - Item::WoodenSword, - Item::IronSword, - ]) -}); -pub static COAL_ORES: Lazy> = - Lazy::new(|| HashSet::from_iter(vec![Item::CoalOre, Item::DeepslateCoalOre])); -pub static CREEPER_IGNITERS: Lazy> = - Lazy::new(|| HashSet::from_iter(vec![Item::FlintAndSteel, Item::FireCharge])); -pub static WOODEN_DOORS: Lazy> = Lazy::new(|| { - HashSet::from_iter(vec![ - Item::OakDoor, - Item::SpruceDoor, - Item::BirchDoor, - Item::JungleDoor, - Item::AcaciaDoor, - Item::DarkOakDoor, - Item::CrimsonDoor, - Item::WarpedDoor, - Item::MangroveDoor, - Item::BambooDoor, - Item::CherryDoor, - ]) -}); -pub static PICKAXES: Lazy> = Lazy::new(|| { - HashSet::from_iter(vec![ - Item::DiamondPickaxe, - Item::StonePickaxe, - Item::GoldenPickaxe, - Item::NetheritePickaxe, - Item::WoodenPickaxe, - Item::IronPickaxe, - ]) -}); -pub static FOX_FOOD: Lazy> = - Lazy::new(|| HashSet::from_iter(vec![Item::SweetBerries, Item::GlowBerries])); -pub static PANDA_FOOD: Lazy> = Lazy::new(|| HashSet::from_iter(vec![Item::Bamboo])); -pub static HORSE_FOOD: Lazy> = Lazy::new(|| { - HashSet::from_iter(vec![ - Item::Wheat, - Item::Sugar, - Item::HayBlock, - Item::Apple, - Item::GoldenCarrot, - Item::GoldenApple, - Item::EnchantedGoldenApple, - ]) -}); -pub static CHEST_ARMOR: Lazy> = Lazy::new(|| { - HashSet::from_iter(vec![ - Item::LeatherChestplate, - Item::ChainmailChestplate, - Item::GoldenChestplate, - Item::IronChestplate, - Item::DiamondChestplate, - Item::NetheriteChestplate, - ]) -}); -pub static TRAPDOORS: Lazy> = Lazy::new(|| { - HashSet::from_iter(vec![ - Item::IronTrapdoor, - Item::AcaciaTrapdoor, - Item::BirchTrapdoor, - Item::DarkOakTrapdoor, - Item::JungleTrapdoor, - Item::OakTrapdoor, - Item::SpruceTrapdoor, - Item::CrimsonTrapdoor, - Item::WarpedTrapdoor, - Item::MangroveTrapdoor, - Item::BambooTrapdoor, - Item::CherryTrapdoor, +pub static CAT_FOOD: Lazy> = + Lazy::new(|| HashSet::from_iter(vec![Item::Cod, Item::Salmon])); +pub static LEAVES: Lazy> = Lazy::new(|| { + HashSet::from_iter(vec![ + Item::JungleLeaves, + Item::OakLeaves, + Item::SpruceLeaves, + Item::DarkOakLeaves, + Item::AcaciaLeaves, + Item::BirchLeaves, + Item::AzaleaLeaves, + Item::FloweringAzaleaLeaves, + Item::MangroveLeaves, + Item::CherryLeaves, ]) }); -pub static LLAMA_FOOD: Lazy> = - Lazy::new(|| HashSet::from_iter(vec![Item::Wheat, Item::HayBlock])); -pub static COMPASSES: Lazy> = - Lazy::new(|| HashSet::from_iter(vec![Item::Compass, Item::RecoveryCompass])); -pub static HOGLIN_FOOD: Lazy> = - Lazy::new(|| HashSet::from_iter(vec![Item::CrimsonFungus])); +pub static DIAMOND_ORES: Lazy> = + Lazy::new(|| HashSet::from_iter(vec![Item::DiamondOre, Item::DeepslateDiamondOre])); +pub static IRON_ORES: Lazy> = + Lazy::new(|| HashSet::from_iter(vec![Item::IronOre, Item::DeepslateIronOre])); pub static COMPLETES_FIND_TREE_TUTORIAL: Lazy> = Lazy::new(|| { HashSet::from_iter(vec![ Item::JungleLeaves, @@ -995,70 +1053,54 @@ pub static COMPLETES_FIND_TREE_TUTORIAL: Lazy> = Lazy::new(|| { Item::StrippedCherryWood, ]) }); -pub static BEACON_PAYMENT_ITEMS: Lazy> = Lazy::new(|| { - HashSet::from_iter(vec![ - Item::NetheriteIngot, - Item::Emerald, - Item::Diamond, - Item::GoldIngot, - Item::IronIngot, - ]) -}); -pub static HORSE_TEMPT_ITEMS: Lazy> = Lazy::new(|| { - HashSet::from_iter(vec![ - Item::GoldenCarrot, - Item::GoldenApple, - Item::EnchantedGoldenApple, - ]) -}); -pub static WOLF_FOOD: Lazy> = Lazy::new(|| { - HashSet::from_iter(vec![ - Item::Beef, - Item::Chicken, - Item::CookedBeef, - Item::CookedChicken, - Item::CookedMutton, - Item::CookedPorkchop, - Item::CookedRabbit, - Item::Mutton, - Item::Porkchop, - Item::Rabbit, - Item::RottenFlesh, - ]) -}); -pub static ACACIA_LOGS: Lazy> = Lazy::new(|| { - HashSet::from_iter(vec![ - Item::AcaciaLog, - Item::AcaciaWood, - Item::StrippedAcaciaLog, - Item::StrippedAcaciaWood, - ]) -}); -pub static MEAT: Lazy> = Lazy::new(|| { +pub static PLANKS: Lazy> = Lazy::new(|| { HashSet::from_iter(vec![ - Item::Beef, - Item::Chicken, - Item::CookedBeef, - Item::CookedChicken, - Item::CookedMutton, - Item::CookedPorkchop, - Item::CookedRabbit, - Item::Mutton, - Item::Porkchop, - Item::Rabbit, - Item::RottenFlesh, + Item::OakPlanks, + Item::SprucePlanks, + Item::BirchPlanks, + Item::JunglePlanks, + Item::AcaciaPlanks, + Item::DarkOakPlanks, + Item::CrimsonPlanks, + Item::WarpedPlanks, + Item::MangrovePlanks, + Item::BambooPlanks, + Item::CherryPlanks, ]) }); -pub static SAND: Lazy> = Lazy::new(|| { +pub static FLOWERS: Lazy> = Lazy::new(|| { HashSet::from_iter(vec![ - Item::Sand, - Item::RedSand, - Item::SuspiciousSand, - Item::SuspiciousSand, + 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 WOODEN_TRAPDOORS: Lazy> = Lazy::new(|| { +pub static TRAPDOORS: Lazy> = Lazy::new(|| { HashSet::from_iter(vec![ + Item::IronTrapdoor, Item::AcaciaTrapdoor, Item::BirchTrapdoor, Item::DarkOakTrapdoor, @@ -1080,7 +1122,57 @@ pub static CHERRY_LOGS: Lazy> = Lazy::new(|| { Item::StrippedCherryWood, ]) }); -pub static GOAT_FOOD: Lazy> = Lazy::new(|| HashSet::from_iter(vec![Item::Wheat])); +pub static STONE_BUTTONS: Lazy> = + Lazy::new(|| HashSet::from_iter(vec![Item::StoneButton, Item::PolishedBlackstoneButton])); +pub static BUTTONS: Lazy> = Lazy::new(|| { + HashSet::from_iter(vec![ + Item::OakButton, + Item::SpruceButton, + Item::BirchButton, + Item::JungleButton, + Item::AcaciaButton, + Item::DarkOakButton, + Item::CrimsonButton, + Item::WarpedButton, + Item::MangroveButton, + Item::BambooButton, + Item::CherryButton, + Item::StoneButton, + Item::PolishedBlackstoneButton, + ]) +}); +pub static HORSE_FOOD: Lazy> = Lazy::new(|| { + HashSet::from_iter(vec![ + Item::Wheat, + Item::Sugar, + Item::HayBlock, + Item::Apple, + Item::GoldenCarrot, + Item::GoldenApple, + Item::EnchantedGoldenApple, + ]) +}); +pub static TERRACOTTA: Lazy> = Lazy::new(|| { + HashSet::from_iter(vec![ + Item::Terracotta, + Item::WhiteTerracotta, + Item::OrangeTerracotta, + Item::MagentaTerracotta, + Item::LightBlueTerracotta, + Item::YellowTerracotta, + Item::LimeTerracotta, + Item::PinkTerracotta, + Item::GrayTerracotta, + Item::LightGrayTerracotta, + Item::CyanTerracotta, + Item::PurpleTerracotta, + Item::BlueTerracotta, + Item::BrownTerracotta, + Item::GreenTerracotta, + Item::RedTerracotta, + Item::BlackTerracotta, + ]) +}); pub static STAIRS: Lazy> = Lazy::new(|| { HashSet::from_iter(vec![ Item::BambooMosaicStairs, @@ -1111,90 +1203,20 @@ pub static STAIRS: Lazy> = Lazy::new(|| { Item::DioriteStairs, Item::BlackstoneStairs, Item::PolishedBlackstoneBrickStairs, - Item::PolishedBlackstoneStairs, - Item::CobbledDeepslateStairs, - Item::PolishedDeepslateStairs, - Item::DeepslateTileStairs, - Item::DeepslateBrickStairs, - Item::OxidizedCutCopperStairs, - Item::WeatheredCutCopperStairs, - Item::ExposedCutCopperStairs, - Item::CutCopperStairs, - Item::WaxedWeatheredCutCopperStairs, - Item::WaxedExposedCutCopperStairs, - Item::WaxedCutCopperStairs, - Item::WaxedOxidizedCutCopperStairs, - Item::MudBrickStairs, - Item::OakStairs, - Item::SpruceStairs, - Item::BirchStairs, - Item::JungleStairs, - Item::AcaciaStairs, - Item::DarkOakStairs, - Item::CrimsonStairs, - Item::WarpedStairs, - Item::MangroveStairs, - Item::BambooStairs, - Item::CherryStairs, - ]) -}); -pub static SIGNS: Lazy> = Lazy::new(|| { - HashSet::from_iter(vec![ - Item::OakSign, - Item::SpruceSign, - Item::BirchSign, - Item::AcaciaSign, - Item::JungleSign, - Item::DarkOakSign, - Item::CrimsonSign, - Item::WarpedSign, - Item::MangroveSign, - Item::BambooSign, - Item::CherrySign, - ]) -}); -pub static PARROT_FOOD: Lazy> = Lazy::new(|| { - HashSet::from_iter(vec![ - Item::WheatSeeds, - Item::MelonSeeds, - Item::PumpkinSeeds, - Item::BeetrootSeeds, - Item::TorchflowerSeeds, - Item::PitcherPod, - ]) -}); -pub static BOATS: Lazy> = Lazy::new(|| { - HashSet::from_iter(vec![ - Item::OakBoat, - Item::SpruceBoat, - Item::BirchBoat, - Item::JungleBoat, - Item::AcaciaBoat, - Item::DarkOakBoat, - Item::MangroveBoat, - Item::BambooRaft, - Item::CherryBoat, - Item::OakChestBoat, - Item::SpruceChestBoat, - Item::BirchChestBoat, - Item::JungleChestBoat, - Item::AcaciaChestBoat, - Item::DarkOakChestBoat, - Item::MangroveChestBoat, - Item::BambooChestRaft, - Item::CherryChestBoat, - ]) -}); -pub static STRIDER_TEMPT_ITEMS: Lazy> = - Lazy::new(|| HashSet::from_iter(vec![Item::WarpedFungusOnAStick, Item::WarpedFungus])); -pub static ANVIL: Lazy> = - Lazy::new(|| HashSet::from_iter(vec![Item::Anvil, Item::ChippedAnvil, Item::DamagedAnvil])); -pub static SMELTS_TO_GLASS: Lazy> = - Lazy::new(|| HashSet::from_iter(vec![Item::Sand, Item::RedSand])); -pub static BAMBOO_BLOCKS: Lazy> = - Lazy::new(|| HashSet::from_iter(vec![Item::BambooBlock, Item::StrippedBambooBlock])); -pub static WOODEN_STAIRS: Lazy> = Lazy::new(|| { - HashSet::from_iter(vec![ + Item::PolishedBlackstoneStairs, + Item::CobbledDeepslateStairs, + Item::PolishedDeepslateStairs, + Item::DeepslateTileStairs, + Item::DeepslateBrickStairs, + Item::OxidizedCutCopperStairs, + Item::WeatheredCutCopperStairs, + Item::ExposedCutCopperStairs, + Item::CutCopperStairs, + Item::WaxedWeatheredCutCopperStairs, + Item::WaxedExposedCutCopperStairs, + Item::WaxedCutCopperStairs, + Item::WaxedOxidizedCutCopperStairs, + Item::MudBrickStairs, Item::OakStairs, Item::SpruceStairs, Item::BirchStairs, @@ -1208,177 +1230,244 @@ pub static WOODEN_STAIRS: Lazy> = Lazy::new(|| { Item::CherryStairs, ]) }); -pub static STONE_BUTTONS: Lazy> = - Lazy::new(|| HashSet::from_iter(vec![Item::StoneButton, Item::PolishedBlackstoneButton])); -pub static BUTTONS: Lazy> = Lazy::new(|| { +pub static REDSTONE_ORES: Lazy> = + Lazy::new(|| HashSet::from_iter(vec![Item::RedstoneOre, Item::DeepslateRedstoneOre])); +pub static SPRUCE_LOGS: Lazy> = Lazy::new(|| { HashSet::from_iter(vec![ - Item::OakButton, - Item::SpruceButton, - Item::BirchButton, - Item::JungleButton, - Item::AcaciaButton, - Item::DarkOakButton, - Item::CrimsonButton, - Item::WarpedButton, - Item::MangroveButton, - Item::BambooButton, - Item::CherryButton, - Item::StoneButton, - Item::PolishedBlackstoneButton, + Item::SpruceLog, + Item::SpruceWood, + Item::StrippedSpruceLog, + Item::StrippedSpruceWood, ]) }); -pub static PIGLIN_REPELLENTS: Lazy> = - Lazy::new(|| HashSet::from_iter(vec![Item::SoulTorch, Item::SoulLantern, Item::SoulCampfire])); -pub static TURTLE_FOOD: Lazy> = - Lazy::new(|| HashSet::from_iter(vec![Item::Seagrass])); -pub static SMALL_FLOWERS: Lazy> = Lazy::new(|| { +pub static HORSE_TEMPT_ITEMS: Lazy> = Lazy::new(|| { HashSet::from_iter(vec![ - 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::GoldenCarrot, + Item::GoldenApple, + Item::EnchantedGoldenApple, ]) }); -pub static DECORATED_POT_INGREDIENTS: Lazy> = Lazy::new(|| { +pub static LOGS: Lazy> = Lazy::new(|| { HashSet::from_iter(vec![ - Item::Brick, - Item::AnglerPotterySherd, - Item::ArcherPotterySherd, - Item::ArmsUpPotterySherd, - Item::BladePotterySherd, - Item::BrewerPotterySherd, - Item::BurnPotterySherd, - Item::DangerPotterySherd, - Item::ExplorerPotterySherd, - Item::FriendPotterySherd, - Item::HeartPotterySherd, - Item::HeartbreakPotterySherd, - Item::HowlPotterySherd, - Item::MinerPotterySherd, - Item::MournerPotterySherd, - Item::PlentyPotterySherd, - Item::PrizePotterySherd, - Item::SheafPotterySherd, - Item::ShelterPotterySherd, - Item::SkullPotterySherd, - Item::SnortPotterySherd, + Item::CrimsonStem, + Item::StrippedCrimsonStem, + Item::CrimsonHyphae, + Item::StrippedCrimsonHyphae, + Item::WarpedStem, + Item::StrippedWarpedStem, + Item::WarpedHyphae, + Item::StrippedWarpedHyphae, + Item::DarkOakLog, + Item::DarkOakWood, + Item::StrippedDarkOakLog, + Item::StrippedDarkOakWood, + Item::OakLog, + Item::OakWood, + Item::StrippedOakLog, + Item::StrippedOakWood, + Item::AcaciaLog, + Item::AcaciaWood, + Item::StrippedAcaciaLog, + Item::StrippedAcaciaWood, + Item::BirchLog, + Item::BirchWood, + Item::StrippedBirchLog, + Item::StrippedBirchWood, + Item::JungleLog, + Item::JungleWood, + Item::StrippedJungleLog, + Item::StrippedJungleWood, + Item::SpruceLog, + Item::SpruceWood, + Item::StrippedSpruceLog, + Item::StrippedSpruceWood, + Item::MangroveLog, + Item::MangroveWood, + Item::StrippedMangroveLog, + Item::StrippedMangroveWood, + Item::CherryLog, + Item::CherryWood, + Item::StrippedCherryLog, + Item::StrippedCherryWood, ]) }); -pub static FOOT_ARMOR: Lazy> = Lazy::new(|| { +pub static WALLS: Lazy> = Lazy::new(|| { HashSet::from_iter(vec![ - Item::LeatherBoots, - Item::ChainmailBoots, - Item::GoldenBoots, - Item::IronBoots, - Item::DiamondBoots, - Item::NetheriteBoots, + Item::CobblestoneWall, + Item::MossyCobblestoneWall, + Item::BrickWall, + Item::PrismarineWall, + Item::RedSandstoneWall, + Item::MossyStoneBrickWall, + Item::GraniteWall, + Item::StoneBrickWall, + Item::NetherBrickWall, + Item::AndesiteWall, + Item::RedNetherBrickWall, + Item::SandstoneWall, + Item::EndStoneBrickWall, + Item::DioriteWall, + Item::BlackstoneWall, + Item::PolishedBlackstoneBrickWall, + Item::PolishedBlackstoneWall, + Item::CobbledDeepslateWall, + Item::PolishedDeepslateWall, + Item::DeepslateTileWall, + Item::DeepslateBrickWall, + Item::MudBrickWall, ]) }); -pub static DIAMOND_ORES: Lazy> = - Lazy::new(|| HashSet::from_iter(vec![Item::DiamondOre, Item::DeepslateDiamondOre])); -pub static IRON_ORES: Lazy> = - Lazy::new(|| HashSet::from_iter(vec![Item::IronOre, Item::DeepslateIronOre])); -pub static TERRACOTTA: Lazy> = Lazy::new(|| { +pub static OAK_LOGS: Lazy> = Lazy::new(|| { HashSet::from_iter(vec![ - Item::Terracotta, - Item::WhiteTerracotta, - Item::OrangeTerracotta, - Item::MagentaTerracotta, - Item::LightBlueTerracotta, - Item::YellowTerracotta, - Item::LimeTerracotta, - Item::PinkTerracotta, - Item::GrayTerracotta, - Item::LightGrayTerracotta, - Item::CyanTerracotta, - Item::PurpleTerracotta, - Item::BlueTerracotta, - Item::BrownTerracotta, - Item::GreenTerracotta, - Item::RedTerracotta, - Item::BlackTerracotta, + Item::OakLog, + Item::OakWood, + Item::StrippedOakLog, + Item::StrippedOakWood, ]) }); -pub static LECTERN_BOOKS: Lazy> = - Lazy::new(|| HashSet::from_iter(vec![Item::WrittenBook, Item::WritableBook])); -pub static RABBIT_FOOD: Lazy> = - Lazy::new(|| HashSet::from_iter(vec![Item::Carrot, Item::GoldenCarrot, Item::Dandelion])); -pub static FREEZE_IMMUNE_WEARABLES: Lazy> = Lazy::new(|| { +pub static TALL_FLOWERS: Lazy> = Lazy::new(|| { HashSet::from_iter(vec![ - Item::LeatherBoots, - Item::LeatherLeggings, - Item::LeatherChestplate, - Item::LeatherHelmet, - Item::LeatherHorseArmor, + Item::Sunflower, + Item::Lilac, + Item::Peony, + Item::RoseBush, + Item::PitcherPlant, + ]) +}); +pub static DARK_OAK_LOGS: Lazy> = Lazy::new(|| { + HashSet::from_iter(vec![ + Item::DarkOakLog, + Item::DarkOakWood, + Item::StrippedDarkOakLog, + Item::StrippedDarkOakWood, + ]) +}); +pub static HANGING_SIGNS: Lazy> = Lazy::new(|| { + HashSet::from_iter(vec![ + Item::OakHangingSign, + Item::SpruceHangingSign, + Item::BirchHangingSign, + Item::AcaciaHangingSign, + Item::CherryHangingSign, + Item::JungleHangingSign, + Item::DarkOakHangingSign, + Item::CrimsonHangingSign, + Item::WarpedHangingSign, + Item::MangroveHangingSign, + Item::BambooHangingSign, + ]) +}); +pub static CANDLES: Lazy> = Lazy::new(|| { + HashSet::from_iter(vec![ + Item::Candle, + Item::WhiteCandle, + Item::OrangeCandle, + Item::MagentaCandle, + Item::LightBlueCandle, + Item::YellowCandle, + Item::LimeCandle, + Item::PinkCandle, + Item::GrayCandle, + Item::LightGrayCandle, + Item::CyanCandle, + Item::PurpleCandle, + Item::BlueCandle, + Item::BrownCandle, + Item::GreenCandle, + Item::RedCandle, + Item::BlackCandle, + ]) +}); +pub static BAMBOO_BLOCKS: Lazy> = + Lazy::new(|| HashSet::from_iter(vec![Item::BambooBlock, Item::StrippedBambooBlock])); +pub static CRIMSON_STEMS: Lazy> = Lazy::new(|| { + HashSet::from_iter(vec![ + Item::CrimsonStem, + Item::StrippedCrimsonStem, + Item::CrimsonHyphae, + Item::StrippedCrimsonHyphae, + ]) +}); +pub static LOGS_THAT_BURN: Lazy> = Lazy::new(|| { + HashSet::from_iter(vec![ + Item::DarkOakLog, + Item::DarkOakWood, + Item::StrippedDarkOakLog, + Item::StrippedDarkOakWood, + Item::OakLog, + Item::OakWood, + Item::StrippedOakLog, + Item::StrippedOakWood, + Item::AcaciaLog, + Item::AcaciaWood, + Item::StrippedAcaciaLog, + Item::StrippedAcaciaWood, + Item::BirchLog, + Item::BirchWood, + Item::StrippedBirchLog, + Item::StrippedBirchWood, + Item::JungleLog, + Item::JungleWood, + Item::StrippedJungleLog, + Item::StrippedJungleWood, + Item::SpruceLog, + Item::SpruceWood, + Item::StrippedSpruceLog, + Item::StrippedSpruceWood, + Item::MangroveLog, + Item::MangroveWood, + Item::StrippedMangroveLog, + Item::StrippedMangroveWood, + Item::CherryLog, + Item::CherryWood, + Item::StrippedCherryLog, + Item::StrippedCherryWood, ]) }); -pub static WALLS: Lazy> = Lazy::new(|| { +pub static SAPLINGS: Lazy> = Lazy::new(|| { HashSet::from_iter(vec![ - Item::CobblestoneWall, - Item::MossyCobblestoneWall, - Item::BrickWall, - Item::PrismarineWall, - Item::RedSandstoneWall, - Item::MossyStoneBrickWall, - Item::GraniteWall, - Item::StoneBrickWall, - Item::NetherBrickWall, - Item::AndesiteWall, - Item::RedNetherBrickWall, - Item::SandstoneWall, - Item::EndStoneBrickWall, - Item::DioriteWall, - Item::BlackstoneWall, - Item::PolishedBlackstoneBrickWall, - Item::PolishedBlackstoneWall, - Item::CobbledDeepslateWall, - Item::PolishedDeepslateWall, - Item::DeepslateTileWall, - Item::DeepslateBrickWall, - Item::MudBrickWall, + Item::OakSapling, + Item::SpruceSapling, + Item::BirchSapling, + Item::JungleSapling, + Item::AcaciaSapling, + Item::DarkOakSapling, + Item::Azalea, + Item::FloweringAzalea, + Item::MangrovePropagule, + Item::CherrySapling, ]) }); -pub static LEAVES: Lazy> = Lazy::new(|| { +pub static COPPER_ORES: Lazy> = + Lazy::new(|| HashSet::from_iter(vec![Item::CopperOre, Item::DeepslateCopperOre])); +pub static BIRCH_LOGS: Lazy> = Lazy::new(|| { HashSet::from_iter(vec![ - Item::JungleLeaves, - Item::OakLeaves, - Item::SpruceLeaves, - Item::DarkOakLeaves, - Item::AcaciaLeaves, - Item::BirchLeaves, - Item::AzaleaLeaves, - Item::FloweringAzaleaLeaves, - Item::MangroveLeaves, - Item::CherryLeaves, + Item::BirchLog, + Item::BirchWood, + Item::StrippedBirchLog, + Item::StrippedBirchWood, ]) }); -pub static FENCE_GATES: Lazy> = Lazy::new(|| { +pub static BEDS: Lazy> = Lazy::new(|| { HashSet::from_iter(vec![ - Item::AcaciaFenceGate, - Item::BirchFenceGate, - Item::DarkOakFenceGate, - Item::JungleFenceGate, - Item::OakFenceGate, - Item::SpruceFenceGate, - Item::CrimsonFenceGate, - Item::WarpedFenceGate, - Item::MangroveFenceGate, - Item::BambooFenceGate, - Item::CherryFenceGate, + Item::RedBed, + Item::BlackBed, + Item::BlueBed, + Item::BrownBed, + Item::CyanBed, + Item::GrayBed, + Item::GreenBed, + Item::LightBlueBed, + Item::LightGrayBed, + Item::LimeBed, + Item::MagentaBed, + Item::OrangeBed, + Item::PinkBed, + Item::PurpleBed, + Item::WhiteBed, + Item::YellowBed, ]) }); -pub static LLAMA_TEMPT_ITEMS: Lazy> = - Lazy::new(|| HashSet::from_iter(vec![Item::HayBlock])); pub static DOORS: Lazy> = Lazy::new(|| { HashSet::from_iter(vec![ Item::IronDoor, @@ -1395,269 +1484,233 @@ pub static DOORS: Lazy> = Lazy::new(|| { Item::CherryDoor, ]) }); -pub static WOODEN_PRESSURE_PLATES: Lazy> = Lazy::new(|| { - HashSet::from_iter(vec![ - Item::OakPressurePlate, - Item::SprucePressurePlate, - Item::BirchPressurePlate, - Item::JunglePressurePlate, - Item::AcaciaPressurePlate, - Item::DarkOakPressurePlate, - Item::CrimsonPressurePlate, - Item::WarpedPressurePlate, - Item::MangrovePressurePlate, - Item::BambooPressurePlate, - Item::CherryPressurePlate, - ]) -}); -pub static SPRUCE_LOGS: Lazy> = Lazy::new(|| { - HashSet::from_iter(vec![ - Item::SpruceLog, - Item::SpruceWood, - Item::StrippedSpruceLog, - Item::StrippedSpruceWood, - ]) -}); -pub static BANNERS: Lazy> = Lazy::new(|| { +pub static WOODEN_TRAPDOORS: Lazy> = Lazy::new(|| { HashSet::from_iter(vec![ - Item::WhiteBanner, - Item::OrangeBanner, - Item::MagentaBanner, - Item::LightBlueBanner, - Item::YellowBanner, - Item::LimeBanner, - Item::PinkBanner, - Item::GrayBanner, - Item::LightGrayBanner, - Item::CyanBanner, - Item::PurpleBanner, - Item::BlueBanner, - Item::BrownBanner, - Item::GreenBanner, - Item::RedBanner, - Item::BlackBanner, + Item::AcaciaTrapdoor, + Item::BirchTrapdoor, + Item::DarkOakTrapdoor, + Item::JungleTrapdoor, + Item::OakTrapdoor, + Item::SpruceTrapdoor, + Item::CrimsonTrapdoor, + Item::WarpedTrapdoor, + Item::MangroveTrapdoor, + Item::BambooTrapdoor, + Item::CherryTrapdoor, ]) }); -pub static SKULLS: Lazy> = Lazy::new(|| { +pub static SMALL_FLOWERS: Lazy> = Lazy::new(|| { HashSet::from_iter(vec![ - Item::PlayerHead, - Item::CreeperHead, - Item::ZombieHead, - Item::SkeletonSkull, - Item::WitherSkeletonSkull, - Item::DragonHead, - Item::PiglinHead, + 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, ]) }); -pub static GOLD_ORES: Lazy> = Lazy::new(|| { +pub static SAND: Lazy> = Lazy::new(|| { HashSet::from_iter(vec![ - Item::GoldOre, - Item::NetherGoldOre, - Item::DeepslateGoldOre, + Item::Sand, + Item::RedSand, + Item::SuspiciousSand, + Item::SuspiciousSand, ]) }); -pub static CHICKEN_FOOD: Lazy> = Lazy::new(|| { +pub static WOODEN_STAIRS: Lazy> = Lazy::new(|| { HashSet::from_iter(vec![ - Item::WheatSeeds, - Item::MelonSeeds, - Item::PumpkinSeeds, - Item::BeetrootSeeds, - Item::TorchflowerSeeds, - Item::PitcherPod, + Item::OakStairs, + Item::SpruceStairs, + Item::BirchStairs, + Item::JungleStairs, + Item::AcaciaStairs, + Item::DarkOakStairs, + Item::CrimsonStairs, + Item::WarpedStairs, + Item::MangroveStairs, + Item::BambooStairs, + Item::CherryStairs, ]) }); -pub static SHEEP_FOOD: Lazy> = Lazy::new(|| HashSet::from_iter(vec![Item::Wheat])); -pub static COPPER_ORES: Lazy> = - Lazy::new(|| HashSet::from_iter(vec![Item::CopperOre, Item::DeepslateCopperOre])); -pub static TRIMMABLE_ARMOR: Lazy> = Lazy::new(|| { +pub static WOODEN_SLABS: Lazy> = Lazy::new(|| { HashSet::from_iter(vec![ - Item::LeatherBoots, - Item::ChainmailBoots, - Item::GoldenBoots, - Item::IronBoots, - Item::DiamondBoots, - Item::NetheriteBoots, - Item::LeatherLeggings, - Item::ChainmailLeggings, - Item::GoldenLeggings, - Item::IronLeggings, - Item::DiamondLeggings, - Item::NetheriteLeggings, - Item::LeatherChestplate, - Item::ChainmailChestplate, - Item::GoldenChestplate, - Item::IronChestplate, - Item::DiamondChestplate, - Item::NetheriteChestplate, - Item::LeatherHelmet, - Item::ChainmailHelmet, - Item::GoldenHelmet, - Item::IronHelmet, - Item::DiamondHelmet, - Item::NetheriteHelmet, - Item::TurtleHelmet, + Item::OakSlab, + Item::SpruceSlab, + Item::BirchSlab, + Item::JungleSlab, + Item::AcaciaSlab, + Item::DarkOakSlab, + Item::CrimsonSlab, + Item::WarpedSlab, + Item::MangroveSlab, + Item::BambooSlab, + Item::CherrySlab, ]) }); -pub static AXES: Lazy> = Lazy::new(|| { +pub static DIRT: Lazy> = Lazy::new(|| { HashSet::from_iter(vec![ - Item::DiamondAxe, - Item::StoneAxe, - Item::GoldenAxe, - Item::NetheriteAxe, - Item::WoodenAxe, - Item::IronAxe, + Item::Dirt, + Item::GrassBlock, + Item::Podzol, + Item::CoarseDirt, + Item::Mycelium, + Item::RootedDirt, + Item::MossBlock, + Item::Mud, + Item::MuddyMangroveRoots, ]) }); -pub static HANGING_SIGNS: Lazy> = Lazy::new(|| { +pub static SMELTS_TO_GLASS: Lazy> = + Lazy::new(|| HashSet::from_iter(vec![Item::Sand, Item::RedSand])); +pub static STONE_BRICKS: Lazy> = Lazy::new(|| { HashSet::from_iter(vec![ - Item::OakHangingSign, - Item::SpruceHangingSign, - Item::BirchHangingSign, - Item::AcaciaHangingSign, - Item::CherryHangingSign, - Item::JungleHangingSign, - Item::DarkOakHangingSign, - Item::CrimsonHangingSign, - Item::WarpedHangingSign, - Item::MangroveHangingSign, - Item::BambooHangingSign, + Item::StoneBricks, + Item::MossyStoneBricks, + Item::CrackedStoneBricks, + Item::ChiseledStoneBricks, ]) }); -pub static SAPLINGS: Lazy> = Lazy::new(|| { +pub static ANVIL: Lazy> = + Lazy::new(|| HashSet::from_iter(vec![Item::Anvil, Item::ChippedAnvil, Item::DamagedAnvil])); +pub static SOUL_FIRE_BASE_BLOCKS: Lazy> = + Lazy::new(|| HashSet::from_iter(vec![Item::SoulSand, Item::SoulSoil])); +pub static ACACIA_LOGS: Lazy> = Lazy::new(|| { HashSet::from_iter(vec![ - Item::OakSapling, - Item::SpruceSapling, - Item::BirchSapling, - Item::JungleSapling, - Item::AcaciaSapling, - Item::DarkOakSapling, - Item::Azalea, - Item::FloweringAzalea, - Item::MangrovePropagule, - Item::CherrySapling, + Item::AcaciaLog, + Item::AcaciaWood, + Item::StrippedAcaciaLog, + Item::StrippedAcaciaWood, ]) }); -pub static PIGLIN_LOVED: Lazy> = Lazy::new(|| { +pub static LAPIS_ORES: Lazy> = + Lazy::new(|| HashSet::from_iter(vec![Item::LapisOre, Item::DeepslateLapisOre])); +pub static MANGROVE_LOGS: Lazy> = Lazy::new(|| { HashSet::from_iter(vec![ - Item::GoldBlock, - Item::GildedBlackstone, - Item::LightWeightedPressurePlate, - Item::GoldIngot, - Item::Bell, - Item::Clock, - Item::GoldenCarrot, - Item::GlisteringMelonSlice, - Item::GoldenApple, - Item::EnchantedGoldenApple, - Item::GoldenHelmet, - Item::GoldenChestplate, - Item::GoldenLeggings, - Item::GoldenBoots, - Item::GoldenHorseArmor, - Item::GoldenSword, - Item::GoldenPickaxe, - Item::GoldenShovel, - Item::GoldenAxe, - Item::GoldenHoe, - Item::RawGold, - Item::RawGoldBlock, - Item::GoldOre, - Item::NetherGoldOre, - Item::DeepslateGoldOre, + Item::MangroveLog, + Item::MangroveWood, + Item::StrippedMangroveLog, + Item::StrippedMangroveWood, ]) }); -pub static REDSTONE_ORES: Lazy> = - Lazy::new(|| HashSet::from_iter(vec![Item::RedstoneOre, Item::DeepslateRedstoneOre])); -pub static PLANKS: Lazy> = Lazy::new(|| { +pub static DAMPENS_VIBRATIONS: Lazy> = Lazy::new(|| { HashSet::from_iter(vec![ - Item::OakPlanks, - Item::SprucePlanks, - Item::BirchPlanks, - Item::JunglePlanks, - Item::AcaciaPlanks, - Item::DarkOakPlanks, - Item::CrimsonPlanks, - Item::WarpedPlanks, - Item::MangrovePlanks, - Item::BambooPlanks, - Item::CherryPlanks, + Item::WhiteWool, + Item::OrangeWool, + Item::MagentaWool, + Item::LightBlueWool, + Item::YellowWool, + Item::LimeWool, + Item::PinkWool, + Item::GrayWool, + Item::LightGrayWool, + Item::CyanWool, + Item::PurpleWool, + Item::BlueWool, + Item::BrownWool, + Item::GreenWool, + Item::RedWool, + Item::BlackWool, + Item::WhiteCarpet, + Item::OrangeCarpet, + Item::MagentaCarpet, + Item::LightBlueCarpet, + Item::YellowCarpet, + Item::LimeCarpet, + Item::PinkCarpet, + Item::GrayCarpet, + Item::LightGrayCarpet, + Item::CyanCarpet, + Item::PurpleCarpet, + Item::BlueCarpet, + Item::BrownCarpet, + Item::GreenCarpet, + Item::RedCarpet, + Item::BlackCarpet, ]) }); -pub static BIRCH_LOGS: Lazy> = Lazy::new(|| { +pub static JUNGLE_LOGS: Lazy> = Lazy::new(|| { HashSet::from_iter(vec![ - Item::BirchLog, - Item::BirchWood, - Item::StrippedBirchLog, - Item::StrippedBirchWood, + Item::JungleLog, + Item::JungleWood, + Item::StrippedJungleLog, + Item::StrippedJungleWood, ]) }); -pub static STONE_CRAFTING_MATERIALS: Lazy> = Lazy::new(|| { +pub static WOODEN_PRESSURE_PLATES: Lazy> = Lazy::new(|| { HashSet::from_iter(vec![ - Item::Cobblestone, - Item::Blackstone, - Item::CobbledDeepslate, + Item::OakPressurePlate, + Item::SprucePressurePlate, + Item::BirchPressurePlate, + Item::JunglePressurePlate, + Item::AcaciaPressurePlate, + Item::DarkOakPressurePlate, + Item::CrimsonPressurePlate, + Item::WarpedPressurePlate, + Item::MangrovePressurePlate, + Item::BambooPressurePlate, + Item::CherryPressurePlate, ]) }); -pub static BREAKS_DECORATED_POTS: Lazy> = Lazy::new(|| { +pub static WOOL_CARPETS: Lazy> = Lazy::new(|| { HashSet::from_iter(vec![ - Item::Trident, - Item::DiamondSword, - Item::StoneSword, - Item::GoldenSword, - Item::NetheriteSword, - Item::WoodenSword, - Item::IronSword, - Item::DiamondAxe, - Item::StoneAxe, - Item::GoldenAxe, - Item::NetheriteAxe, - Item::WoodenAxe, - Item::IronAxe, - Item::DiamondPickaxe, - Item::StonePickaxe, - Item::GoldenPickaxe, - Item::NetheritePickaxe, - Item::WoodenPickaxe, - Item::IronPickaxe, - Item::DiamondShovel, - Item::StoneShovel, - Item::GoldenShovel, - Item::NetheriteShovel, - Item::WoodenShovel, - Item::IronShovel, - Item::DiamondHoe, - Item::StoneHoe, - Item::GoldenHoe, - Item::NetheriteHoe, - Item::WoodenHoe, - Item::IronHoe, + Item::WhiteCarpet, + Item::OrangeCarpet, + Item::MagentaCarpet, + Item::LightBlueCarpet, + Item::YellowCarpet, + Item::LimeCarpet, + Item::PinkCarpet, + Item::GrayCarpet, + Item::LightGrayCarpet, + Item::CyanCarpet, + Item::PurpleCarpet, + Item::BlueCarpet, + Item::BrownCarpet, + Item::GreenCarpet, + Item::RedCarpet, + Item::BlackCarpet, ]) }); -pub static PIGLIN_FOOD: Lazy> = - Lazy::new(|| HashSet::from_iter(vec![Item::Porkchop, Item::CookedPorkchop])); -pub static IGNORED_BY_PIGLIN_BABIES: Lazy> = - Lazy::new(|| HashSet::from_iter(vec![Item::Leather])); -pub static TALL_FLOWERS: Lazy> = Lazy::new(|| { +pub static RAILS: Lazy> = Lazy::new(|| { HashSet::from_iter(vec![ - Item::Sunflower, - Item::Lilac, - Item::Peony, - Item::RoseBush, - Item::PitcherPlant, + Item::Rail, + Item::PoweredRail, + Item::DetectorRail, + Item::ActivatorRail, ]) }); -pub static COALS: Lazy> = - Lazy::new(|| HashSet::from_iter(vec![Item::Coal, Item::Charcoal])); -pub static PIG_FOOD: Lazy> = - Lazy::new(|| HashSet::from_iter(vec![Item::Carrot, Item::Potato, Item::Beetroot])); -pub static CRIMSON_STEMS: Lazy> = Lazy::new(|| { +pub static COAL_ORES: Lazy> = + Lazy::new(|| HashSet::from_iter(vec![Item::CoalOre, Item::DeepslateCoalOre])); +pub static WOOL: Lazy> = Lazy::new(|| { HashSet::from_iter(vec![ - Item::CrimsonStem, - Item::StrippedCrimsonStem, - Item::CrimsonHyphae, - Item::StrippedCrimsonHyphae, + Item::WhiteWool, + Item::OrangeWool, + Item::MagentaWool, + Item::LightBlueWool, + Item::YellowWool, + Item::LimeWool, + Item::PinkWool, + Item::GrayWool, + Item::LightGrayWool, + Item::CyanWool, + Item::PurpleWool, + Item::BlueWool, + Item::BrownWool, + Item::GreenWool, + Item::RedWool, + Item::BlackWool, ]) }); +pub static WART_BLOCKS: Lazy> = + Lazy::new(|| HashSet::from_iter(vec![Item::NetherWartBlock, Item::WarpedWartBlock])); pub static WOODEN_BUTTONS: Lazy> = Lazy::new(|| { HashSet::from_iter(vec![ Item::OakButton, @@ -1673,40 +1726,6 @@ pub static WOODEN_BUTTONS: Lazy> = Lazy::new(|| { Item::CherryButton, ]) }); -pub static SOUL_FIRE_BASE_BLOCKS: Lazy> = - Lazy::new(|| HashSet::from_iter(vec![Item::SoulSand, Item::SoulSoil])); -pub static SHOVELS: Lazy> = Lazy::new(|| { - HashSet::from_iter(vec![ - Item::DiamondShovel, - Item::StoneShovel, - Item::GoldenShovel, - Item::NetheriteShovel, - Item::WoodenShovel, - Item::IronShovel, - ]) -}); -pub static DYEABLE: Lazy> = Lazy::new(|| { - HashSet::from_iter(vec![ - Item::LeatherHelmet, - Item::LeatherChestplate, - Item::LeatherLeggings, - Item::LeatherBoots, - Item::LeatherHorseArmor, - Item::WolfArmor, - ]) -}); -pub static SNIFFER_FOOD: Lazy> = - Lazy::new(|| HashSet::from_iter(vec![Item::TorchflowerSeeds])); -pub static FISHES: Lazy> = Lazy::new(|| { - HashSet::from_iter(vec![ - Item::Cod, - Item::CookedCod, - Item::Salmon, - Item::CookedSalmon, - Item::Pufferfish, - Item::TropicalFish, - ]) -}); pub static WOODEN_FENCES: Lazy> = Lazy::new(|| { HashSet::from_iter(vec![ Item::OakFence, @@ -1722,74 +1741,94 @@ pub static WOODEN_FENCES: Lazy> = Lazy::new(|| { Item::CherryFence, ]) }); -pub static TRIM_TEMPLATES: Lazy> = 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, - ]) -}); -pub static COW_FOOD: Lazy> = Lazy::new(|| HashSet::from_iter(vec![Item::Wheat])); -pub static DECORATED_POT_SHERDS: Lazy> = Lazy::new(|| { +pub static EMERALD_ORES: Lazy> = + Lazy::new(|| HashSet::from_iter(vec![Item::EmeraldOre, Item::DeepslateEmeraldOre])); +pub static WOODEN_DOORS: Lazy> = Lazy::new(|| { HashSet::from_iter(vec![ - Item::AnglerPotterySherd, - Item::ArcherPotterySherd, - Item::ArmsUpPotterySherd, - Item::BladePotterySherd, - Item::BrewerPotterySherd, - Item::BurnPotterySherd, - Item::DangerPotterySherd, - Item::ExplorerPotterySherd, - Item::FriendPotterySherd, - Item::HeartPotterySherd, - Item::HeartbreakPotterySherd, - Item::HowlPotterySherd, - Item::MinerPotterySherd, - Item::MournerPotterySherd, - Item::PlentyPotterySherd, - Item::PrizePotterySherd, - Item::SheafPotterySherd, - Item::ShelterPotterySherd, - Item::SkullPotterySherd, - Item::SnortPotterySherd, + Item::OakDoor, + Item::SpruceDoor, + Item::BirchDoor, + Item::JungleDoor, + Item::AcaciaDoor, + Item::DarkOakDoor, + Item::CrimsonDoor, + Item::WarpedDoor, + Item::MangroveDoor, + Item::BambooDoor, + Item::CherryDoor, ]) }); -pub static STONE_TOOL_MATERIALS: Lazy> = Lazy::new(|| { +pub static WARPED_STEMS: Lazy> = Lazy::new(|| { HashSet::from_iter(vec![ - Item::Cobblestone, - Item::Blackstone, - Item::CobbledDeepslate, + Item::WarpedStem, + Item::StrippedWarpedStem, + Item::WarpedHyphae, + Item::StrippedWarpedHyphae, ]) }); -pub static TRIM_MATERIALS: Lazy> = Lazy::new(|| { +pub static SIGNS: Lazy> = 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, + Item::OakSign, + Item::SpruceSign, + Item::BirchSign, + Item::AcaciaSign, + Item::JungleSign, + Item::DarkOakSign, + Item::CrimsonSign, + Item::WarpedSign, + Item::MangroveSign, + Item::BambooSign, + Item::CherrySign, ]) }); -pub static WOODEN_SLABS: Lazy> = Lazy::new(|| { +pub static SLABS: Lazy> = Lazy::new(|| { HashSet::from_iter(vec![ + Item::BambooMosaicSlab, + Item::StoneSlab, + Item::SmoothStoneSlab, + Item::StoneBrickSlab, + Item::SandstoneSlab, + Item::PurpurSlab, + Item::QuartzSlab, + Item::RedSandstoneSlab, + Item::BrickSlab, + Item::CobblestoneSlab, + Item::NetherBrickSlab, + Item::PetrifiedOakSlab, + Item::PrismarineSlab, + Item::PrismarineBrickSlab, + Item::DarkPrismarineSlab, + Item::PolishedGraniteSlab, + Item::SmoothRedSandstoneSlab, + Item::MossyStoneBrickSlab, + Item::PolishedDioriteSlab, + Item::MossyCobblestoneSlab, + Item::EndStoneBrickSlab, + Item::SmoothSandstoneSlab, + Item::SmoothQuartzSlab, + Item::GraniteSlab, + Item::AndesiteSlab, + Item::RedNetherBrickSlab, + Item::PolishedAndesiteSlab, + Item::DioriteSlab, + Item::CutSandstoneSlab, + Item::CutRedSandstoneSlab, + Item::BlackstoneSlab, + Item::PolishedBlackstoneBrickSlab, + Item::PolishedBlackstoneSlab, + Item::CobbledDeepslateSlab, + Item::PolishedDeepslateSlab, + Item::DeepslateTileSlab, + Item::DeepslateBrickSlab, + Item::WaxedWeatheredCutCopperSlab, + Item::WaxedExposedCutCopperSlab, + Item::WaxedCutCopperSlab, + Item::OxidizedCutCopperSlab, + Item::WeatheredCutCopperSlab, + Item::ExposedCutCopperSlab, + Item::CutCopperSlab, + Item::WaxedOxidizedCutCopperSlab, + Item::MudBrickSlab, Item::OakSlab, Item::SpruceSlab, Item::BirchSlab, @@ -1803,19 +1842,17 @@ pub static WOODEN_SLABS: Lazy> = Lazy::new(|| { Item::CherrySlab, ]) }); -pub static ARMADILLO_FOOD: Lazy> = - Lazy::new(|| HashSet::from_iter(vec![Item::SpiderEye])); -pub static VILLAGER_PLANTABLE_SEEDS: Lazy> = Lazy::new(|| { +pub static CHICKEN_FOOD: Lazy> = Lazy::new(|| { HashSet::from_iter(vec![ Item::WheatSeeds, - Item::Potato, - Item::Carrot, + Item::MelonSeeds, + Item::PumpkinSeeds, Item::BeetrootSeeds, Item::TorchflowerSeeds, Item::PitcherPod, ]) }); -pub static FLOWERS: Lazy> = Lazy::new(|| { +pub static BEE_FOOD: Lazy> = Lazy::new(|| { HashSet::from_iter(vec![ Item::FloweringAzaleaLeaves, Item::FloweringAzalea, @@ -1845,65 +1882,28 @@ pub static FLOWERS: Lazy> = Lazy::new(|| { Item::PitcherPlant, ]) }); -pub static CHEST_BOATS: Lazy> = Lazy::new(|| { - HashSet::from_iter(vec![ - Item::OakChestBoat, - Item::SpruceChestBoat, - Item::BirchChestBoat, - Item::JungleChestBoat, - Item::AcaciaChestBoat, - Item::DarkOakChestBoat, - Item::MangroveChestBoat, - Item::BambooChestRaft, - Item::CherryChestBoat, - ]) -}); -pub static CANDLES: Lazy> = Lazy::new(|| { +pub static GOLD_ORES: Lazy> = Lazy::new(|| { HashSet::from_iter(vec![ - Item::Candle, - Item::WhiteCandle, - Item::OrangeCandle, - Item::MagentaCandle, - Item::LightBlueCandle, - Item::YellowCandle, - Item::LimeCandle, - Item::PinkCandle, - Item::GrayCandle, - Item::LightGrayCandle, - Item::CyanCandle, - Item::PurpleCandle, - Item::BlueCandle, - Item::BrownCandle, - Item::GreenCandle, - Item::RedCandle, - Item::BlackCandle, + Item::GoldOre, + Item::NetherGoldOre, + Item::DeepslateGoldOre, ]) }); -pub static CAT_FOOD: Lazy> = - Lazy::new(|| HashSet::from_iter(vec![Item::Cod, Item::Salmon])); -pub static STRIDER_FOOD: Lazy> = - Lazy::new(|| HashSet::from_iter(vec![Item::WarpedFungus])); -pub static EMERALD_ORES: Lazy> = - Lazy::new(|| HashSet::from_iter(vec![Item::EmeraldOre, Item::DeepslateEmeraldOre])); -pub static BEDS: Lazy> = Lazy::new(|| { +pub static FROG_FOOD: Lazy> = Lazy::new(|| HashSet::from_iter(vec![Item::SlimeBall])); +pub static HOGLIN_FOOD: Lazy> = + Lazy::new(|| HashSet::from_iter(vec![Item::CrimsonFungus])); +pub static FENCE_GATES: Lazy> = Lazy::new(|| { HashSet::from_iter(vec![ - Item::RedBed, - Item::BlackBed, - Item::BlueBed, - Item::BrownBed, - Item::CyanBed, - Item::GrayBed, - Item::GreenBed, - Item::LightBlueBed, - Item::LightGrayBed, - Item::LimeBed, - Item::MagentaBed, - Item::OrangeBed, - Item::PinkBed, - Item::PurpleBed, - Item::WhiteBed, - Item::YellowBed, + Item::AcaciaFenceGate, + Item::BirchFenceGate, + Item::DarkOakFenceGate, + Item::JungleFenceGate, + Item::OakFenceGate, + Item::SpruceFenceGate, + Item::CrimsonFenceGate, + Item::WarpedFenceGate, + Item::MangroveFenceGate, + Item::BambooFenceGate, + Item::CherryFenceGate, ]) }); -pub static AXOLOTL_FOOD: Lazy> = - Lazy::new(|| HashSet::from_iter(vec![Item::TropicalFishBucket]));