use std::collections::HashSet;
use once_cell::sync::Lazy;
use crate::Block;
pub static ACACIA_LOGS: Lazy<HashSet<Block>> = Lazy::new(|| {
HashSet::from_iter(vec![
Block::AcaciaLog,
Block::AcaciaWood,
Block::StrippedAcaciaLog,
Block::StrippedAcaciaWood,
])
});
pub static AIR: Lazy<HashSet<Block>> =
Lazy::new(|| HashSet::from_iter(vec![Block::Air, Block::VoidAir, Block::CaveAir]));
pub static ALL_HANGING_SIGNS: Lazy<HashSet<Block>> = 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<HashSet<Block>> = 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,
])
});
pub static ANCIENT_CITY_REPLACEABLE: Lazy<HashSet<Block>> = 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,
])
});
pub static ANIMALS_SPAWNABLE_ON: Lazy<HashSet<Block>> =
Lazy::new(|| HashSet::from_iter(vec![Block::GrassBlock]));
pub static ANVIL: Lazy<HashSet<Block>> =
Lazy::new(|| HashSet::from_iter(vec![Block::Anvil, Block::ChippedAnvil, Block::DamagedAnvil]));
pub static ARMADILLO_SPAWNABLE_ON: Lazy<HashSet<Block>> = 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,
])
});
pub static AXOLOTLS_SPAWNABLE_ON: Lazy<HashSet<Block>> =
Lazy::new(|| HashSet::from_iter(vec![Block::Clay]));
pub static AZALEA_GROWS_ON: Lazy<HashSet<Block>> = Lazy::new(|| {
HashSet::from_iter(vec![
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 AZALEA_ROOT_REPLACEABLE: Lazy<HashSet<Block>> = 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::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 BADLANDS_TERRACOTTA: Lazy<HashSet<Block>> = Lazy::new(|| {
HashSet::from_iter(vec![
Block::Terracotta,
Block::WhiteTerracotta,
Block::YellowTerracotta,
Block::OrangeTerracotta,
Block::RedTerracotta,
Block::BrownTerracotta,
Block::LightGrayTerracotta,
])
});
pub static BAMBOO_BLOCKS: Lazy<HashSet<Block>> =
Lazy::new(|| HashSet::from_iter(vec![Block::BambooBlock, Block::StrippedBambooBlock]));
pub static BAMBOO_PLANTABLE_ON: Lazy<HashSet<Block>> = 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,
Block::CoarseDirt,
Block::Mycelium,
Block::RootedDirt,
Block::MossBlock,
Block::Mud,
Block::MuddyMangroveRoots,
])
});
pub static BANNERS: Lazy<HashSet<Block>> = 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,
])
});
pub static BASE_STONE_NETHER: Lazy<HashSet<Block>> =
Lazy::new(|| HashSet::from_iter(vec![Block::Netherrack, Block::Basalt, Block::Blackstone]));
pub static BASE_STONE_OVERWORLD: Lazy<HashSet<Block>> = Lazy::new(|| {
HashSet::from_iter(vec![
Block::Stone,
Block::Granite,
Block::Diorite,
Block::Andesite,
Block::Tuff,
Block::Deepslate,
])
});
pub static BATS_SPAWNABLE_ON: Lazy<HashSet<Block>> = Lazy::new(|| {
HashSet::from_iter(vec![
Block::Stone,
Block::Granite,
Block::Diorite,
Block::Andesite,
Block::Tuff,
Block::Deepslate,
])
});
pub static BEACON_BASE_BLOCKS: Lazy<HashSet<Block>> = Lazy::new(|| {
HashSet::from_iter(vec![
Block::NetheriteBlock,
Block::EmeraldBlock,
Block::DiamondBlock,
Block::GoldBlock,
Block::IronBlock,
])
});
pub static BEDS: Lazy<HashSet<Block>> = 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 BEE_GROWABLES: Lazy<HashSet<Block>> = Lazy::new(|| {
HashSet::from_iter(vec![
Block::SweetBerryBush,
Block::CaveVines,
Block::CaveVinesPlant,
Block::Beetroots,
Block::Carrots,
Block::Potatoes,
Block::Wheat,
Block::MelonStem,
Block::PumpkinStem,
Block::TorchflowerCrop,
Block::PitcherCrop,
])
});
pub static BEEHIVES: Lazy<HashSet<Block>> =
Lazy::new(|| HashSet::from_iter(vec![Block::BeeNest, Block::Beehive]));
pub static BIG_DRIPLEAF_PLACEABLE: Lazy<HashSet<Block>> = Lazy::new(|| {
HashSet::from_iter(vec![
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 BIRCH_LOGS: Lazy<HashSet<Block>> = Lazy::new(|| {
HashSet::from_iter(vec![
Block::BirchLog,
Block::BirchWood,
Block::StrippedBirchLog,
Block::StrippedBirchWood,
])
});
pub static BLOCKS_WIND_CHARGE_EXPLOSIONS: Lazy<HashSet<Block>> =
Lazy::new(|| HashSet::from_iter(vec![Block::Barrier, Block::Bedrock]));
pub static BUTTONS: Lazy<HashSet<Block>> = 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,
])
});
pub static CAMEL_SAND_STEP_SOUND_BLOCKS: Lazy<HashSet<Block>> = 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,
])
});
pub static CAMPFIRES: Lazy<HashSet<Block>> =
Lazy::new(|| HashSet::from_iter(vec![Block::Campfire, Block::SoulCampfire]));
pub static CANDLE_CAKES: Lazy<HashSet<Block>> = 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 CANDLES: Lazy<HashSet<Block>> = 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,
])
});
pub static CAULDRONS: Lazy<HashSet<Block>> = Lazy::new(|| {
HashSet::from_iter(vec![
Block::Cauldron,
Block::WaterCauldron,
Block::LavaCauldron,
Block::PowderSnowCauldron,
])
});
pub static CAVE_VINES: Lazy<HashSet<Block>> =
Lazy::new(|| HashSet::from_iter(vec![Block::CaveVinesPlant, Block::CaveVines]));
pub static CEILING_HANGING_SIGNS: Lazy<HashSet<Block>> = 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 CHERRY_LOGS: Lazy<HashSet<Block>> = Lazy::new(|| {
HashSet::from_iter(vec![
Block::CherryLog,
Block::CherryWood,
Block::StrippedCherryLog,
Block::StrippedCherryWood,
])
});
pub static CLIMBABLE: Lazy<HashSet<Block>> = 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 COAL_ORES: Lazy<HashSet<Block>> =
Lazy::new(|| HashSet::from_iter(vec![Block::CoalOre, Block::DeepslateCoalOre]));
pub static COMBINATION_STEP_SOUND_BLOCKS: Lazy<HashSet<Block>> = Lazy::new(|| {
HashSet::from_iter(vec![
Block::MossCarpet,
Block::Snow,
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 COMPLETES_FIND_TREE_TUTORIAL: Lazy<HashSet<Block>> = 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,
])
});
pub static CONCRETE_POWDER: Lazy<HashSet<Block>> = 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,
])
});
pub static CONVERTABLE_TO_MUD: Lazy<HashSet<Block>> =
Lazy::new(|| HashSet::from_iter(vec![Block::Dirt, Block::CoarseDirt, Block::RootedDirt]));
pub static COPPER_ORES: Lazy<HashSet<Block>> =
Lazy::new(|| HashSet::from_iter(vec![Block::CopperOre, Block::DeepslateCopperOre]));
pub static CORAL_BLOCKS: Lazy<HashSet<Block>> = Lazy::new(|| {
HashSet::from_iter(vec![
Block::TubeCoralBlock,
Block::BrainCoralBlock,
Block::BubbleCoralBlock,
Block::FireCoralBlock,
Block::HornCoralBlock,
])
});
pub static CORAL_PLANTS: Lazy<HashSet<Block>> = Lazy::new(|| {
HashSet::from_iter(vec![
Block::TubeCoral,
Block::BrainCoral,
Block::BubbleCoral,
Block::FireCoral,
Block::HornCoral,
])
});
pub static CORALS: Lazy<HashSet<Block>> = 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 CRIMSON_STEMS: Lazy<HashSet<Block>> = Lazy::new(|| {
HashSet::from_iter(vec![
Block::CrimsonStem,
Block::StrippedCrimsonStem,
Block::CrimsonHyphae,
Block::StrippedCrimsonHyphae,
])
});
pub static CROPS: Lazy<HashSet<Block>> = Lazy::new(|| {
HashSet::from_iter(vec![
Block::Beetroots,
Block::Carrots,
Block::Potatoes,
Block::Wheat,
Block::MelonStem,
Block::PumpkinStem,
Block::TorchflowerCrop,
Block::PitcherCrop,
])
});
pub static CRYSTAL_SOUND_BLOCKS: Lazy<HashSet<Block>> =
Lazy::new(|| HashSet::from_iter(vec![Block::AmethystBlock, Block::BuddingAmethyst]));
pub static DAMPENS_VIBRATIONS: Lazy<HashSet<Block>> = 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 DARK_OAK_LOGS: Lazy<HashSet<Block>> = Lazy::new(|| {
HashSet::from_iter(vec![
Block::DarkOakLog,
Block::DarkOakWood,
Block::StrippedDarkOakLog,
Block::StrippedDarkOakWood,
])
});
pub static DEAD_BUSH_MAY_PLACE_ON: Lazy<HashSet<Block>> = Lazy::new(|| {
HashSet::from_iter(vec![
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,
Block::CoarseDirt,
Block::Mycelium,
Block::RootedDirt,
Block::MossBlock,
Block::Mud,
Block::MuddyMangroveRoots,
])
});
pub static DEEPSLATE_ORE_REPLACEABLES: Lazy<HashSet<Block>> =
Lazy::new(|| HashSet::from_iter(vec![Block::Deepslate, Block::Tuff]));
pub static DIAMOND_ORES: Lazy<HashSet<Block>> =
Lazy::new(|| HashSet::from_iter(vec![Block::DiamondOre, Block::DeepslateDiamondOre]));
pub static DIRT: Lazy<HashSet<Block>> = Lazy::new(|| {
HashSet::from_iter(vec![
Block::Dirt,
Block::GrassBlock,
Block::Podzol,
Block::CoarseDirt,
Block::Mycelium,
Block::RootedDirt,
Block::MossBlock,
Block::Mud,
Block::MuddyMangroveRoots,
])
});
pub static DOES_NOT_BLOCK_HOPPERS: Lazy<HashSet<Block>> =
Lazy::new(|| HashSet::from_iter(vec![Block::BeeNest, Block::Beehive]));
pub static DOORS: Lazy<HashSet<Block>> = Lazy::new(|| {
HashSet::from_iter(vec![
Block::CopperDoor,
Block::ExposedCopperDoor,
Block::WeatheredCopperDoor,
Block::OxidizedCopperDoor,
Block::WaxedCopperDoor,
Block::WaxedExposedCopperDoor,
Block::WaxedWeatheredCopperDoor,
Block::WaxedOxidizedCopperDoor,
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 DRAGON_IMMUNE: Lazy<HashSet<Block>> = 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<HashSet<Block>> =
Lazy::new(|| HashSet::from_iter(vec![Block::Light, Block::Fire, Block::SoulFire]));
pub static DRIPSTONE_REPLACEABLE_BLOCKS: Lazy<HashSet<Block>> = Lazy::new(|| {
HashSet::from_iter(vec![
Block::Stone,
Block::Granite,
Block::Diorite,
Block::Andesite,
Block::Tuff,
Block::Deepslate,
])
});
pub static EMERALD_ORES: Lazy<HashSet<Block>> =
Lazy::new(|| HashSet::from_iter(vec![Block::EmeraldOre, Block::DeepslateEmeraldOre]));
pub static ENCHANTMENT_POWER_PROVIDER: Lazy<HashSet<Block>> =
Lazy::new(|| HashSet::from_iter(vec![Block::Bookshelf]));
pub static ENCHANTMENT_POWER_TRANSMITTER: Lazy<HashSet<Block>> = 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 ENDERMAN_HOLDABLE: Lazy<HashSet<Block>> = 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,
])
});
pub static FALL_DAMAGE_RESETTING: Lazy<HashSet<Block>> = Lazy::new(|| {
HashSet::from_iter(vec![
Block::SweetBerryBush,
Block::Cobweb,
Block::Ladder,
Block::Vine,
Block::Scaffolding,
Block::WeepingVines,
Block::WeepingVinesPlant,
Block::TwistingVines,
Block::TwistingVinesPlant,
Block::CaveVines,
Block::CaveVinesPlant,
])
});
pub static FEATURES_CANNOT_REPLACE: Lazy<HashSet<Block>> = Lazy::new(|| {
HashSet::from_iter(vec![
Block::Bedrock,
Block::Spawner,
Block::Chest,
Block::EndPortalFrame,
Block::ReinforcedDeepslate,
Block::TrialSpawner,
Block::Vault,
])
});
pub static FENCE_GATES: Lazy<HashSet<Block>> = 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 FENCES: Lazy<HashSet<Block>> = 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 FIRE: Lazy<HashSet<Block>> =
Lazy::new(|| HashSet::from_iter(vec![Block::Fire, Block::SoulFire]));
pub static FLOWER_POTS: Lazy<HashSet<Block>> = 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,
])
});
pub static FLOWERS: Lazy<HashSet<Block>> = 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 FOXES_SPAWNABLE_ON: Lazy<HashSet<Block>> = Lazy::new(|| {
HashSet::from_iter(vec![
Block::GrassBlock,
Block::Snow,
Block::SnowBlock,
Block::Podzol,
Block::CoarseDirt,
])
});
pub static FROG_PREFER_JUMP_TO: Lazy<HashSet<Block>> =
Lazy::new(|| HashSet::from_iter(vec![Block::LilyPad, Block::BigDripleaf]));
pub static FROGS_SPAWNABLE_ON: Lazy<HashSet<Block>> = Lazy::new(|| {
HashSet::from_iter(vec![
Block::GrassBlock,
Block::Mud,
Block::MangroveRoots,
Block::MuddyMangroveRoots,
])
});
pub static GEODE_INVALID_BLOCKS: Lazy<HashSet<Block>> = Lazy::new(|| {
HashSet::from_iter(vec![
Block::Bedrock,
Block::Water,
Block::Lava,
Block::Ice,
Block::PackedIce,
Block::BlueIce,
])
});
pub static GOATS_SPAWNABLE_ON: Lazy<HashSet<Block>> = Lazy::new(|| {
HashSet::from_iter(vec![
Block::Stone,
Block::Snow,
Block::SnowBlock,
Block::PackedIce,
Block::Gravel,
Block::GrassBlock,
])
});
pub static GOLD_ORES: Lazy<HashSet<Block>> = Lazy::new(|| {
HashSet::from_iter(vec![
Block::GoldOre,
Block::NetherGoldOre,
Block::DeepslateGoldOre,
])
});
pub static GUARDED_BY_PIGLINS: Lazy<HashSet<Block>> = 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 HOGLIN_REPELLENTS: Lazy<HashSet<Block>> = Lazy::new(|| {
HashSet::from_iter(vec![
Block::WarpedFungus,
Block::PottedWarpedFungus,
Block::NetherPortal,
Block::RespawnAnchor,
])
});
pub static ICE: Lazy<HashSet<Block>> = Lazy::new(|| {
HashSet::from_iter(vec![
Block::Ice,
Block::PackedIce,
Block::BlueIce,
Block::FrostedIce,
])
});
pub static IMPERMEABLE: Lazy<HashSet<Block>> = 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,
])
});
pub static INCORRECT_FOR_DIAMOND_TOOL: Lazy<HashSet<Block>> =
Lazy::new(|| HashSet::from_iter(vec![]));
pub static INCORRECT_FOR_GOLD_TOOL: Lazy<HashSet<Block>> = 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::Crafter,
Block::ChiseledCopper,
Block::ExposedChiseledCopper,
Block::WeatheredChiseledCopper,
Block::OxidizedChiseledCopper,
Block::WaxedChiseledCopper,
Block::WaxedExposedChiseledCopper,
Block::WaxedWeatheredChiseledCopper,
Block::WaxedOxidizedChiseledCopper,
Block::CopperGrate,
Block::ExposedCopperGrate,
Block::WeatheredCopperGrate,
Block::OxidizedCopperGrate,
Block::WaxedCopperGrate,
Block::WaxedExposedCopperGrate,
Block::WaxedWeatheredCopperGrate,
Block::WaxedOxidizedCopperGrate,
Block::CopperBulb,
Block::ExposedCopperBulb,
Block::WeatheredCopperBulb,
Block::OxidizedCopperBulb,
Block::WaxedCopperBulb,
Block::WaxedExposedCopperBulb,
Block::WaxedWeatheredCopperBulb,
Block::WaxedOxidizedCopperBulb,
Block::CopperTrapdoor,
Block::ExposedCopperTrapdoor,
Block::WeatheredCopperTrapdoor,
Block::OxidizedCopperTrapdoor,
Block::WaxedCopperTrapdoor,
Block::WaxedExposedCopperTrapdoor,
Block::WaxedWeatheredCopperTrapdoor,
Block::WaxedOxidizedCopperTrapdoor,
Block::CopperDoor,
Block::ExposedCopperDoor,
Block::WeatheredCopperDoor,
Block::OxidizedCopperDoor,
Block::WaxedCopperDoor,
Block::WaxedExposedCopperDoor,
Block::WaxedWeatheredCopperDoor,
Block::WaxedOxidizedCopperDoor,
])
});
pub static INCORRECT_FOR_IRON_TOOL: Lazy<HashSet<Block>> = Lazy::new(|| {
HashSet::from_iter(vec![
Block::Obsidian,
Block::CryingObsidian,
Block::NetheriteBlock,
Block::RespawnAnchor,
Block::AncientDebris,
])
});
pub static INCORRECT_FOR_NETHERITE_TOOL: Lazy<HashSet<Block>> =
Lazy::new(|| HashSet::from_iter(vec![]));
pub static INCORRECT_FOR_STONE_TOOL: Lazy<HashSet<Block>> = 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 INCORRECT_FOR_WOODEN_TOOL: Lazy<HashSet<Block>> = 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::Crafter,
Block::ChiseledCopper,
Block::ExposedChiseledCopper,
Block::WeatheredChiseledCopper,
Block::OxidizedChiseledCopper,
Block::WaxedChiseledCopper,
Block::WaxedExposedChiseledCopper,
Block::WaxedWeatheredChiseledCopper,
Block::WaxedOxidizedChiseledCopper,
Block::CopperGrate,
Block::ExposedCopperGrate,
Block::WeatheredCopperGrate,
Block::OxidizedCopperGrate,
Block::WaxedCopperGrate,
Block::WaxedExposedCopperGrate,
Block::WaxedWeatheredCopperGrate,
Block::WaxedOxidizedCopperGrate,
Block::CopperBulb,
Block::ExposedCopperBulb,
Block::WeatheredCopperBulb,
Block::OxidizedCopperBulb,
Block::WaxedCopperBulb,
Block::WaxedExposedCopperBulb,
Block::WaxedWeatheredCopperBulb,
Block::WaxedOxidizedCopperBulb,
Block::CopperTrapdoor,
Block::ExposedCopperTrapdoor,
Block::WeatheredCopperTrapdoor,
Block::OxidizedCopperTrapdoor,
Block::WaxedCopperTrapdoor,
Block::WaxedExposedCopperTrapdoor,
Block::WaxedWeatheredCopperTrapdoor,
Block::WaxedOxidizedCopperTrapdoor,
Block::CopperDoor,
Block::ExposedCopperDoor,
Block::WeatheredCopperDoor,
Block::OxidizedCopperDoor,
Block::WaxedCopperDoor,
Block::WaxedExposedCopperDoor,
Block::WaxedWeatheredCopperDoor,
Block::WaxedOxidizedCopperDoor,
])
});
pub static INFINIBURN_END: Lazy<HashSet<Block>> =
Lazy::new(|| HashSet::from_iter(vec![Block::Bedrock, Block::Netherrack, Block::MagmaBlock]));
pub static INFINIBURN_NETHER: Lazy<HashSet<Block>> =
Lazy::new(|| HashSet::from_iter(vec![Block::Netherrack, Block::MagmaBlock]));
pub static INFINIBURN_OVERWORLD: Lazy<HashSet<Block>> =
Lazy::new(|| HashSet::from_iter(vec![Block::Netherrack, Block::MagmaBlock]));
pub static INSIDE_STEP_SOUND_BLOCKS: Lazy<HashSet<Block>> = Lazy::new(|| {
HashSet::from_iter(vec![
Block::PowderSnow,
Block::SculkVein,
Block::GlowLichen,
Block::LilyPad,
Block::SmallAmethystBud,
Block::PinkPetals,
])
});
pub static INVALID_SPAWN_INSIDE: Lazy<HashSet<Block>> =
Lazy::new(|| HashSet::from_iter(vec![Block::EndPortal, Block::EndGateway]));
pub static IRON_ORES: Lazy<HashSet<Block>> =
Lazy::new(|| HashSet::from_iter(vec![Block::IronOre, Block::DeepslateIronOre]));
pub static JUNGLE_LOGS: Lazy<HashSet<Block>> = Lazy::new(|| {
HashSet::from_iter(vec![
Block::JungleLog,
Block::JungleWood,
Block::StrippedJungleLog,
Block::StrippedJungleWood,
])
});
pub static LAPIS_ORES: Lazy<HashSet<Block>> =
Lazy::new(|| HashSet::from_iter(vec![Block::LapisOre, Block::DeepslateLapisOre]));
pub static LAVA_POOL_STONE_CANNOT_REPLACE: Lazy<HashSet<Block>> = Lazy::new(|| {
HashSet::from_iter(vec![
Block::Bedrock,
Block::Spawner,
Block::Chest,
Block::EndPortalFrame,
Block::ReinforcedDeepslate,
Block::TrialSpawner,
Block::Vault,
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 LEAVES: Lazy<HashSet<Block>> = 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 LOGS: Lazy<HashSet<Block>> = 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 LOGS_THAT_BURN: Lazy<HashSet<Block>> = 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 LUSH_GROUND_REPLACEABLE: Lazy<HashSet<Block>> = 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 MAINTAINS_FARMLAND: Lazy<HashSet<Block>> = 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 MANGROVE_LOGS: Lazy<HashSet<Block>> = Lazy::new(|| {
HashSet::from_iter(vec![
Block::MangroveLog,
Block::MangroveWood,
Block::StrippedMangroveLog,
Block::StrippedMangroveWood,
])
});
pub static MANGROVE_LOGS_CAN_GROW_THROUGH: Lazy<HashSet<Block>> = Lazy::new(|| {
HashSet::from_iter(vec![
Block::Mud,
Block::MuddyMangroveRoots,
Block::MangroveRoots,
Block::MangroveLeaves,
Block::MangroveLog,
Block::MangrovePropagule,
Block::MossCarpet,
Block::Vine,
])
});
pub static MANGROVE_ROOTS_CAN_GROW_THROUGH: Lazy<HashSet<Block>> = Lazy::new(|| {
HashSet::from_iter(vec![
Block::Mud,
Block::MuddyMangroveRoots,
Block::MangroveRoots,
Block::MossCarpet,
Block::Vine,
Block::MangrovePropagule,
Block::Snow,
])
});
pub static MINEABLE_AXE: Lazy<HashSet<Block>> = Lazy::new(|| {
HashSet::from_iter(vec![
Block::NoteBlock,
Block::AttachedMelonStem,
Block::AttachedPumpkinStem,
Block::Azalea,
Block::Bamboo,
Block::Barrel,
Block::BeeNest,
Block::Beehive,
Block::Beetroots,
Block::BigDripleafStem,
Block::BigDripleaf,
Block::Bookshelf,
Block::BrownMushroomBlock,
Block::BrownMushroom,
Block::Campfire,
Block::Carrots,
Block::CartographyTable,
Block::CarvedPumpkin,
Block::CaveVinesPlant,
Block::CaveVines,
Block::Chest,
Block::ChorusFlower,
Block::ChorusPlant,
Block::Cocoa,
Block::Composter,
Block::CraftingTable,
Block::CrimsonFungus,
Block::DaylightDetector,
Block::DeadBush,
Block::Fern,
Block::FletchingTable,
Block::GlowLichen,
Block::ShortGrass,
Block::HangingRoots,
Block::JackOLantern,
Block::Jukebox,
Block::Ladder,
Block::LargeFern,
Block::Lectern,
Block::LilyPad,
Block::Loom,
Block::MelonStem,
Block::Melon,
Block::MushroomStem,
Block::NetherWart,
Block::Potatoes,
Block::PumpkinStem,
Block::Pumpkin,
Block::RedMushroomBlock,
Block::RedMushroom,
Block::Scaffolding,
Block::SmallDripleaf,
Block::SmithingTable,
Block::SoulCampfire,
Block::SporeBlossom,
Block::SugarCane,
Block::SweetBerryBush,
Block::TallGrass,
Block::TrappedChest,
Block::TwistingVinesPlant,
Block::TwistingVines,
Block::Vine,
Block::WarpedFungus,
Block::WeepingVinesPlant,
Block::WeepingVines,
Block::Wheat,
Block::MangroveRoots,
Block::BambooMosaic,
Block::BambooMosaicSlab,
Block::BambooMosaicStairs,
Block::ChiseledBookshelf,
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::AcaciaFenceGate,
Block::BirchFenceGate,
Block::DarkOakFenceGate,
Block::JungleFenceGate,
Block::OakFenceGate,
Block::SpruceFenceGate,
Block::CrimsonFenceGate,
Block::WarpedFenceGate,
Block::MangroveFenceGate,
Block::BambooFenceGate,
Block::CherryFenceGate,
Block::OakPlanks,
Block::SprucePlanks,
Block::BirchPlanks,
Block::JunglePlanks,
Block::AcaciaPlanks,
Block::DarkOakPlanks,
Block::CrimsonPlanks,
Block::WarpedPlanks,
Block::MangrovePlanks,
Block::BambooPlanks,
Block::CherryPlanks,
Block::OakSapling,
Block::SpruceSapling,
Block::BirchSapling,
Block::JungleSapling,
Block::AcaciaSapling,
Block::DarkOakSapling,
Block::Azalea,
Block::FloweringAzalea,
Block::MangrovePropagule,
Block::CherrySapling,
Block::OakButton,
Block::SpruceButton,
Block::BirchButton,
Block::JungleButton,
Block::AcaciaButton,
Block::DarkOakButton,
Block::CrimsonButton,
Block::WarpedButton,
Block::MangroveButton,
Block::BambooButton,
Block::CherryButton,
Block::OakDoor,
Block::SpruceDoor,
Block::BirchDoor,
Block::JungleDoor,
Block::AcaciaDoor,
Block::DarkOakDoor,
Block::CrimsonDoor,
Block::WarpedDoor,
Block::MangroveDoor,
Block::BambooDoor,
Block::CherryDoor,
Block::OakFence,
Block::AcaciaFence,
Block::DarkOakFence,
Block::SpruceFence,
Block::BirchFence,
Block::JungleFence,
Block::CrimsonFence,
Block::WarpedFence,
Block::MangroveFence,
Block::BambooFence,
Block::CherryFence,
Block::OakPressurePlate,
Block::SprucePressurePlate,
Block::BirchPressurePlate,
Block::JunglePressurePlate,
Block::AcaciaPressurePlate,
Block::DarkOakPressurePlate,
Block::CrimsonPressurePlate,
Block::WarpedPressurePlate,
Block::MangrovePressurePlate,
Block::BambooPressurePlate,
Block::CherryPressurePlate,
Block::OakSlab,
Block::SpruceSlab,
Block::BirchSlab,
Block::JungleSlab,
Block::AcaciaSlab,
Block::DarkOakSlab,
Block::CrimsonSlab,
Block::WarpedSlab,
Block::MangroveSlab,
Block::BambooSlab,
Block::CherrySlab,
Block::OakStairs,
Block::SpruceStairs,
Block::BirchStairs,
Block::JungleStairs,
Block::AcaciaStairs,
Block::DarkOakStairs,
Block::CrimsonStairs,
Block::WarpedStairs,
Block::MangroveStairs,
Block::BambooStairs,
Block::CherryStairs,
Block::AcaciaTrapdoor,
Block::BirchTrapdoor,
Block::DarkOakTrapdoor,
Block::JungleTrapdoor,
Block::OakTrapdoor,
Block::SpruceTrapdoor,
Block::CrimsonTrapdoor,
Block::WarpedTrapdoor,
Block::MangroveTrapdoor,
Block::BambooTrapdoor,
Block::CherryTrapdoor,
Block::BambooBlock,
Block::StrippedBambooBlock,
Block::CrimsonStem,
Block::StrippedCrimsonStem,
Block::CrimsonHyphae,
Block::StrippedCrimsonHyphae,
Block::WarpedStem,
Block::StrippedWarpedStem,
Block::WarpedHyphae,
Block::StrippedWarpedHyphae,
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::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 MINEABLE_HOE: Lazy<HashSet<Block>> = Lazy::new(|| {
HashSet::from_iter(vec![
Block::NetherWartBlock,
Block::WarpedWartBlock,
Block::HayBlock,
Block::DriedKelpBlock,
Block::Target,
Block::Shroomlight,
Block::Sponge,
Block::WetSponge,
Block::JungleLeaves,
Block::OakLeaves,
Block::SpruceLeaves,
Block::DarkOakLeaves,
Block::AcaciaLeaves,
Block::BirchLeaves,
Block::AzaleaLeaves,
Block::FloweringAzaleaLeaves,
Block::MangroveLeaves,
Block::SculkSensor,
Block::CalibratedSculkSensor,
Block::MossBlock,
Block::MossCarpet,
Block::Sculk,
Block::SculkCatalyst,
Block::SculkVein,
Block::SculkShrieker,
Block::PinkPetals,
Block::CherryLeaves,
])
});
pub static MINEABLE_PICKAXE: Lazy<HashSet<Block>> = Lazy::new(|| {
HashSet::from_iter(vec![
Block::Stone,
Block::Granite,
Block::PolishedGranite,
Block::Diorite,
Block::PolishedDiorite,
Block::Andesite,
Block::PolishedAndesite,
Block::Cobblestone,
Block::GoldOre,
Block::DeepslateGoldOre,
Block::IronOre,
Block::DeepslateIronOre,
Block::CoalOre,
Block::DeepslateCoalOre,
Block::NetherGoldOre,
Block::LapisOre,
Block::DeepslateLapisOre,
Block::LapisBlock,
Block::Dispenser,
Block::Sandstone,
Block::ChiseledSandstone,
Block::CutSandstone,
Block::GoldBlock,
Block::IronBlock,
Block::Bricks,
Block::MossyCobblestone,
Block::Obsidian,
Block::Spawner,
Block::DiamondOre,
Block::DeepslateDiamondOre,
Block::DiamondBlock,
Block::Furnace,
Block::CobblestoneStairs,
Block::StonePressurePlate,
Block::IronDoor,
Block::RedstoneOre,
Block::DeepslateRedstoneOre,
Block::Netherrack,
Block::Basalt,
Block::PolishedBasalt,
Block::StoneBricks,
Block::MossyStoneBricks,
Block::CrackedStoneBricks,
Block::ChiseledStoneBricks,
Block::IronBars,
Block::Chain,
Block::BrickStairs,
Block::StoneBrickStairs,
Block::NetherBricks,
Block::NetherBrickFence,
Block::NetherBrickStairs,
Block::EnchantingTable,
Block::BrewingStand,
Block::EndStone,
Block::SandstoneStairs,
Block::EmeraldOre,
Block::DeepslateEmeraldOre,
Block::EnderChest,
Block::EmeraldBlock,
Block::LightWeightedPressurePlate,
Block::HeavyWeightedPressurePlate,
Block::RedstoneBlock,
Block::NetherQuartzOre,
Block::Hopper,
Block::QuartzBlock,
Block::ChiseledQuartzBlock,
Block::QuartzPillar,
Block::QuartzStairs,
Block::Dropper,
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::IronTrapdoor,
Block::Prismarine,
Block::PrismarineBricks,
Block::DarkPrismarine,
Block::PrismarineStairs,
Block::PrismarineBrickStairs,
Block::DarkPrismarineStairs,
Block::PrismarineSlab,
Block::PrismarineBrickSlab,
Block::DarkPrismarineSlab,
Block::Terracotta,
Block::CoalBlock,
Block::RedSandstone,
Block::ChiseledRedSandstone,
Block::CutRedSandstone,
Block::RedSandstoneStairs,
Block::StoneSlab,
Block::SmoothStoneSlab,
Block::SandstoneSlab,
Block::CutSandstoneSlab,
Block::PetrifiedOakSlab,
Block::CobblestoneSlab,
Block::BrickSlab,
Block::StoneBrickSlab,
Block::NetherBrickSlab,
Block::QuartzSlab,
Block::RedSandstoneSlab,
Block::CutRedSandstoneSlab,
Block::PurpurSlab,
Block::SmoothStone,
Block::SmoothSandstone,
Block::SmoothQuartz,
Block::SmoothRedSandstone,
Block::PurpurBlock,
Block::PurpurPillar,
Block::PurpurStairs,
Block::EndStoneBricks,
Block::MagmaBlock,
Block::RedNetherBricks,
Block::BoneBlock,
Block::Observer,
Block::WhiteGlazedTerracotta,
Block::OrangeGlazedTerracotta,
Block::MagentaGlazedTerracotta,
Block::LightBlueGlazedTerracotta,
Block::YellowGlazedTerracotta,
Block::LimeGlazedTerracotta,
Block::PinkGlazedTerracotta,
Block::GrayGlazedTerracotta,
Block::LightGrayGlazedTerracotta,
Block::CyanGlazedTerracotta,
Block::PurpleGlazedTerracotta,
Block::BlueGlazedTerracotta,
Block::BrownGlazedTerracotta,
Block::GreenGlazedTerracotta,
Block::RedGlazedTerracotta,
Block::BlackGlazedTerracotta,
Block::WhiteConcrete,
Block::OrangeConcrete,
Block::MagentaConcrete,
Block::LightBlueConcrete,
Block::YellowConcrete,
Block::LimeConcrete,
Block::PinkConcrete,
Block::GrayConcrete,
Block::LightGrayConcrete,
Block::CyanConcrete,
Block::PurpleConcrete,
Block::BlueConcrete,
Block::BrownConcrete,
Block::GreenConcrete,
Block::RedConcrete,
Block::BlackConcrete,
Block::DeadTubeCoralBlock,
Block::DeadBrainCoralBlock,
Block::DeadBubbleCoralBlock,
Block::DeadFireCoralBlock,
Block::DeadHornCoralBlock,
Block::TubeCoralBlock,
Block::BrainCoralBlock,
Block::BubbleCoralBlock,
Block::FireCoralBlock,
Block::HornCoralBlock,
Block::DeadTubeCoral,
Block::DeadBrainCoral,
Block::DeadBubbleCoral,
Block::DeadFireCoral,
Block::DeadHornCoral,
Block::DeadTubeCoralFan,
Block::DeadBrainCoralFan,
Block::DeadBubbleCoralFan,
Block::DeadFireCoralFan,
Block::DeadHornCoralFan,
Block::DeadTubeCoralWallFan,
Block::DeadBrainCoralWallFan,
Block::DeadBubbleCoralWallFan,
Block::DeadFireCoralWallFan,
Block::DeadHornCoralWallFan,
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::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::Smoker,
Block::BlastFurnace,
Block::Grindstone,
Block::Stonecutter,
Block::Bell,
Block::Lantern,
Block::SoulLantern,
Block::WarpedNylium,
Block::CrimsonNylium,
Block::NetheriteBlock,
Block::AncientDebris,
Block::CryingObsidian,
Block::RespawnAnchor,
Block::Lodestone,
Block::Blackstone,
Block::BlackstoneStairs,
Block::BlackstoneSlab,
Block::PolishedBlackstone,
Block::PolishedBlackstoneBricks,
Block::CrackedPolishedBlackstoneBricks,
Block::ChiseledPolishedBlackstone,
Block::PolishedBlackstoneBrickSlab,
Block::PolishedBlackstoneBrickStairs,
Block::GildedBlackstone,
Block::PolishedBlackstoneStairs,
Block::PolishedBlackstoneSlab,
Block::PolishedBlackstonePressurePlate,
Block::ChiseledNetherBricks,
Block::CrackedNetherBricks,
Block::QuartzBricks,
Block::Tuff,
Block::Calcite,
Block::OxidizedCopper,
Block::WeatheredCopper,
Block::ExposedCopper,
Block::CopperBlock,
Block::CopperOre,
Block::DeepslateCopperOre,
Block::OxidizedCutCopper,
Block::WeatheredCutCopper,
Block::ExposedCutCopper,
Block::CutCopper,
Block::OxidizedCutCopperStairs,
Block::WeatheredCutCopperStairs,
Block::ExposedCutCopperStairs,
Block::CutCopperStairs,
Block::OxidizedCutCopperSlab,
Block::WeatheredCutCopperSlab,
Block::ExposedCutCopperSlab,
Block::CutCopperSlab,
Block::WaxedCopperBlock,
Block::WaxedWeatheredCopper,
Block::WaxedExposedCopper,
Block::WaxedOxidizedCopper,
Block::WaxedOxidizedCutCopper,
Block::WaxedWeatheredCutCopper,
Block::WaxedExposedCutCopper,
Block::WaxedCutCopper,
Block::WaxedOxidizedCutCopperStairs,
Block::WaxedWeatheredCutCopperStairs,
Block::WaxedExposedCutCopperStairs,
Block::WaxedCutCopperStairs,
Block::WaxedOxidizedCutCopperSlab,
Block::WaxedWeatheredCutCopperSlab,
Block::WaxedExposedCutCopperSlab,
Block::WaxedCutCopperSlab,
Block::LightningRod,
Block::PointedDripstone,
Block::DripstoneBlock,
Block::Deepslate,
Block::CobbledDeepslate,
Block::CobbledDeepslateStairs,
Block::CobbledDeepslateSlab,
Block::PolishedDeepslate,
Block::PolishedDeepslateStairs,
Block::PolishedDeepslateSlab,
Block::DeepslateTiles,
Block::DeepslateTileStairs,
Block::DeepslateTileSlab,
Block::DeepslateBricks,
Block::DeepslateBrickStairs,
Block::DeepslateBrickSlab,
Block::ChiseledDeepslate,
Block::CrackedDeepslateBricks,
Block::CrackedDeepslateTiles,
Block::SmoothBasalt,
Block::RawIronBlock,
Block::RawCopperBlock,
Block::RawGoldBlock,
Block::Ice,
Block::PackedIce,
Block::BlueIce,
Block::Piston,
Block::StickyPiston,
Block::PistonHead,
Block::AmethystCluster,
Block::SmallAmethystBud,
Block::MediumAmethystBud,
Block::LargeAmethystBud,
Block::AmethystBlock,
Block::BuddingAmethyst,
Block::InfestedCobblestone,
Block::InfestedChiseledStoneBricks,
Block::InfestedCrackedStoneBricks,
Block::InfestedDeepslate,
Block::InfestedStone,
Block::InfestedMossyStoneBricks,
Block::InfestedStoneBricks,
Block::Conduit,
Block::MudBricks,
Block::MudBrickStairs,
Block::MudBrickSlab,
Block::PackedMud,
Block::Crafter,
Block::TuffSlab,
Block::TuffStairs,
Block::TuffWall,
Block::ChiseledTuff,
Block::PolishedTuff,
Block::PolishedTuffSlab,
Block::PolishedTuffStairs,
Block::PolishedTuffWall,
Block::TuffBricks,
Block::TuffBrickSlab,
Block::TuffBrickStairs,
Block::TuffBrickWall,
Block::ChiseledTuffBricks,
Block::ChiseledCopper,
Block::ExposedChiseledCopper,
Block::WeatheredChiseledCopper,
Block::OxidizedChiseledCopper,
Block::WaxedChiseledCopper,
Block::WaxedExposedChiseledCopper,
Block::WaxedWeatheredChiseledCopper,
Block::WaxedOxidizedChiseledCopper,
Block::CopperGrate,
Block::ExposedCopperGrate,
Block::WeatheredCopperGrate,
Block::OxidizedCopperGrate,
Block::WaxedCopperGrate,
Block::WaxedExposedCopperGrate,
Block::WaxedWeatheredCopperGrate,
Block::WaxedOxidizedCopperGrate,
Block::CopperBulb,
Block::ExposedCopperBulb,
Block::WeatheredCopperBulb,
Block::OxidizedCopperBulb,
Block::WaxedCopperBulb,
Block::WaxedExposedCopperBulb,
Block::WaxedWeatheredCopperBulb,
Block::WaxedOxidizedCopperBulb,
Block::CopperDoor,
Block::ExposedCopperDoor,
Block::WeatheredCopperDoor,
Block::OxidizedCopperDoor,
Block::WaxedCopperDoor,
Block::WaxedExposedCopperDoor,
Block::WaxedWeatheredCopperDoor,
Block::WaxedOxidizedCopperDoor,
Block::CopperTrapdoor,
Block::ExposedCopperTrapdoor,
Block::WeatheredCopperTrapdoor,
Block::OxidizedCopperTrapdoor,
Block::WaxedCopperTrapdoor,
Block::WaxedExposedCopperTrapdoor,
Block::WaxedWeatheredCopperTrapdoor,
Block::WaxedOxidizedCopperTrapdoor,
Block::HeavyCore,
Block::StoneButton,
Block::PolishedBlackstoneButton,
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::TuffWall,
Block::PolishedTuffWall,
Block::TuffBrickWall,
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::Anvil,
Block::ChippedAnvil,
Block::DamagedAnvil,
Block::Cauldron,
Block::WaterCauldron,
Block::LavaCauldron,
Block::PowderSnowCauldron,
Block::Rail,
Block::PoweredRail,
Block::DetectorRail,
Block::ActivatorRail,
])
});
pub static MINEABLE_SHOVEL: Lazy<HashSet<Block>> = 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 MOB_INTERACTABLE_DOORS: Lazy<HashSet<Block>> = Lazy::new(|| {
HashSet::from_iter(vec![
Block::CopperDoor,
Block::ExposedCopperDoor,
Block::WeatheredCopperDoor,
Block::OxidizedCopperDoor,
Block::WaxedCopperDoor,
Block::WaxedExposedCopperDoor,
Block::WaxedWeatheredCopperDoor,
Block::WaxedOxidizedCopperDoor,
Block::OakDoor,
Block::SpruceDoor,
Block::BirchDoor,
Block::JungleDoor,
Block::AcaciaDoor,
Block::DarkOakDoor,
Block::CrimsonDoor,
Block::WarpedDoor,
Block::MangroveDoor,
Block::BambooDoor,
Block::CherryDoor,
])
});
pub static MOOSHROOMS_SPAWNABLE_ON: Lazy<HashSet<Block>> =
Lazy::new(|| HashSet::from_iter(vec![Block::Mycelium]));
pub static MOSS_REPLACEABLE: Lazy<HashSet<Block>> = 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,
])
});
pub static MUSHROOM_GROW_BLOCK: Lazy<HashSet<Block>> = Lazy::new(|| {
HashSet::from_iter(vec![
Block::Mycelium,
Block::Podzol,
Block::CrimsonNylium,
Block::WarpedNylium,
])
});
pub static NEEDS_DIAMOND_TOOL: Lazy<HashSet<Block>> = Lazy::new(|| {
HashSet::from_iter(vec![
Block::Obsidian,
Block::CryingObsidian,
Block::NetheriteBlock,
Block::RespawnAnchor,
Block::AncientDebris,
])
});
pub static NEEDS_IRON_TOOL: Lazy<HashSet<Block>> = 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,
])
});
pub static NEEDS_STONE_TOOL: Lazy<HashSet<Block>> = Lazy::new(|| {
HashSet::from_iter(vec![
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::Crafter,
Block::ChiseledCopper,
Block::ExposedChiseledCopper,
Block::WeatheredChiseledCopper,
Block::OxidizedChiseledCopper,
Block::WaxedChiseledCopper,
Block::WaxedExposedChiseledCopper,
Block::WaxedWeatheredChiseledCopper,
Block::WaxedOxidizedChiseledCopper,
Block::CopperGrate,
Block::ExposedCopperGrate,
Block::WeatheredCopperGrate,
Block::OxidizedCopperGrate,
Block::WaxedCopperGrate,
Block::WaxedExposedCopperGrate,
Block::WaxedWeatheredCopperGrate,
Block::WaxedOxidizedCopperGrate,
Block::CopperBulb,
Block::ExposedCopperBulb,
Block::WeatheredCopperBulb,
Block::OxidizedCopperBulb,
Block::WaxedCopperBulb,
Block::WaxedExposedCopperBulb,
Block::WaxedWeatheredCopperBulb,
Block::WaxedOxidizedCopperBulb,
Block::CopperTrapdoor,
Block::ExposedCopperTrapdoor,
Block::WeatheredCopperTrapdoor,
Block::OxidizedCopperTrapdoor,
Block::WaxedCopperTrapdoor,
Block::WaxedExposedCopperTrapdoor,
Block::WaxedWeatheredCopperTrapdoor,
Block::WaxedOxidizedCopperTrapdoor,
Block::CopperDoor,
Block::ExposedCopperDoor,
Block::WeatheredCopperDoor,
Block::OxidizedCopperDoor,
Block::WaxedCopperDoor,
Block::WaxedExposedCopperDoor,
Block::WaxedWeatheredCopperDoor,
Block::WaxedOxidizedCopperDoor,
])
});
pub static NETHER_CARVER_REPLACEABLES: Lazy<HashSet<Block>> = Lazy::new(|| {
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,
])
});
pub static NYLIUM: Lazy<HashSet<Block>> =
Lazy::new(|| HashSet::from_iter(vec![Block::CrimsonNylium, Block::WarpedNylium]));
pub static OAK_LOGS: Lazy<HashSet<Block>> = Lazy::new(|| {
HashSet::from_iter(vec![
Block::OakLog,
Block::OakWood,
Block::StrippedOakLog,
Block::StrippedOakWood,
])
});
pub static OCCLUDES_VIBRATION_SIGNALS: Lazy<HashSet<Block>> = 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,
])
});
pub static OVERWORLD_CARVER_REPLACEABLES: Lazy<HashSet<Block>> = Lazy::new(|| {
HashSet::from_iter(vec![
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 OVERWORLD_NATURAL_LOGS: Lazy<HashSet<Block>> = Lazy::new(|| {
HashSet::from_iter(vec![
Block::AcaciaLog,
Block::BirchLog,
Block::OakLog,
Block::JungleLog,
Block::SpruceLog,
Block::DarkOakLog,
Block::MangroveLog,
Block::CherryLog,
])
});
pub static PARROTS_SPAWNABLE_ON: Lazy<HashSet<Block>> = 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 PIGLIN_REPELLENTS: Lazy<HashSet<Block>> = Lazy::new(|| {
HashSet::from_iter(vec![
Block::SoulFire,
Block::SoulTorch,
Block::SoulLantern,
Block::SoulWallTorch,
Block::SoulCampfire,
])
});
pub static PLANKS: Lazy<HashSet<Block>> = 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,
])
});
pub static POLAR_BEARS_SPAWNABLE_ON_ALTERNATE: Lazy<HashSet<Block>> =
Lazy::new(|| HashSet::from_iter(vec![Block::Ice]));
pub static PORTALS: Lazy<HashSet<Block>> = Lazy::new(|| {
HashSet::from_iter(vec![
Block::NetherPortal,
Block::EndPortal,
Block::EndGateway,
])
});
pub static PRESSURE_PLATES: Lazy<HashSet<Block>> = 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,
])
});
pub static PREVENT_MOB_SPAWNING_INSIDE: Lazy<HashSet<Block>> = Lazy::new(|| {
HashSet::from_iter(vec![
Block::Rail,
Block::PoweredRail,
Block::DetectorRail,
Block::ActivatorRail,
])
});
pub static RABBITS_SPAWNABLE_ON: Lazy<HashSet<Block>> = Lazy::new(|| {
HashSet::from_iter(vec![
Block::GrassBlock,
Block::Snow,
Block::SnowBlock,
Block::Sand,
])
});
pub static RAILS: Lazy<HashSet<Block>> = Lazy::new(|| {
HashSet::from_iter(vec![
Block::Rail,
Block::PoweredRail,
Block::DetectorRail,
Block::ActivatorRail,
])
});
pub static REDSTONE_ORES: Lazy<HashSet<Block>> =
Lazy::new(|| HashSet::from_iter(vec![Block::RedstoneOre, Block::DeepslateRedstoneOre]));
pub static REPLACEABLE: Lazy<HashSet<Block>> = 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 REPLACEABLE_BY_TREES: Lazy<HashSet<Block>> = Lazy::new(|| {
HashSet::from_iter(vec![
Block::ShortGrass,
Block::Fern,
Block::DeadBush,
Block::Vine,
Block::GlowLichen,
Block::Sunflower,
Block::Lilac,
Block::RoseBush,
Block::Peony,
Block::TallGrass,
Block::LargeFern,
Block::HangingRoots,
Block::PitcherPlant,
Block::Water,
Block::Seagrass,
Block::TallSeagrass,
Block::WarpedRoots,
Block::NetherSprouts,
Block::CrimsonRoots,
Block::JungleLeaves,
Block::OakLeaves,
Block::SpruceLeaves,
Block::DarkOakLeaves,
Block::AcaciaLeaves,
Block::BirchLeaves,
Block::AzaleaLeaves,
Block::FloweringAzaleaLeaves,
Block::MangroveLeaves,
Block::CherryLeaves,
])
});
pub static SAND: Lazy<HashSet<Block>> = Lazy::new(|| {
HashSet::from_iter(vec![
Block::Sand,
Block::RedSand,
Block::SuspiciousSand,
Block::SuspiciousSand,
])
});
pub static SAPLINGS: Lazy<HashSet<Block>> = 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 SCULK_REPLACEABLE: Lazy<HashSet<Block>> = 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,
])
});
pub static SCULK_REPLACEABLE_WORLD_GEN: Lazy<HashSet<Block>> = 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 SHULKER_BOXES: Lazy<HashSet<Block>> = 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,
])
});
pub static SIGNS: Lazy<HashSet<Block>> = 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,
])
});
pub static SLABS: Lazy<HashSet<Block>> = 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::TuffSlab,
Block::PolishedTuffSlab,
Block::TuffBrickSlab,
Block::OakSlab,
Block::SpruceSlab,
Block::BirchSlab,
Block::JungleSlab,
Block::AcaciaSlab,
Block::DarkOakSlab,
Block::CrimsonSlab,
Block::WarpedSlab,
Block::MangroveSlab,
Block::BambooSlab,
Block::CherrySlab,
])
});
pub static SMALL_DRIPLEAF_PLACEABLE: Lazy<HashSet<Block>> =
Lazy::new(|| HashSet::from_iter(vec![Block::Clay, Block::MossBlock]));
pub static SMALL_FLOWERS: Lazy<HashSet<Block>> = 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 SMELTS_TO_GLASS: Lazy<HashSet<Block>> =
Lazy::new(|| HashSet::from_iter(vec![Block::Sand, Block::RedSand]));
pub static SNAPS_GOAT_HORN: Lazy<HashSet<Block>> = 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,
])
});
pub static SNIFFER_DIGGABLE_BLOCK: Lazy<HashSet<Block>> = Lazy::new(|| {
HashSet::from_iter(vec![
Block::Dirt,
Block::GrassBlock,
Block::Podzol,
Block::CoarseDirt,
Block::RootedDirt,
Block::MossBlock,
Block::Mud,
Block::MuddyMangroveRoots,
])
});
pub static SNIFFER_EGG_HATCH_BOOST: Lazy<HashSet<Block>> =
Lazy::new(|| HashSet::from_iter(vec![Block::MossBlock]));
pub static SNOW: Lazy<HashSet<Block>> =
Lazy::new(|| HashSet::from_iter(vec![Block::Snow, Block::SnowBlock, Block::PowderSnow]));
pub static SNOW_LAYER_CAN_SURVIVE_ON: Lazy<HashSet<Block>> =
Lazy::new(|| HashSet::from_iter(vec![Block::HoneyBlock, Block::SoulSand, Block::Mud]));
pub static SNOW_LAYER_CANNOT_SURVIVE_ON: Lazy<HashSet<Block>> =
Lazy::new(|| HashSet::from_iter(vec![Block::Ice, Block::PackedIce, Block::Barrier]));
pub static SOUL_FIRE_BASE_BLOCKS: Lazy<HashSet<Block>> =
Lazy::new(|| HashSet::from_iter(vec![Block::SoulSand, Block::SoulSoil]));
pub static SOUL_SPEED_BLOCKS: Lazy<HashSet<Block>> =
Lazy::new(|| HashSet::from_iter(vec![Block::SoulSand, Block::SoulSoil]));
pub static SPRUCE_LOGS: Lazy<HashSet<Block>> = Lazy::new(|| {
HashSet::from_iter(vec![
Block::SpruceLog,
Block::SpruceWood,
Block::StrippedSpruceLog,
Block::StrippedSpruceWood,
])
});
pub static STAIRS: Lazy<HashSet<Block>> = 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::TuffStairs,
Block::PolishedTuffStairs,
Block::TuffBrickStairs,
Block::OakStairs,
Block::SpruceStairs,
Block::BirchStairs,
Block::JungleStairs,
Block::AcaciaStairs,
Block::DarkOakStairs,
Block::CrimsonStairs,
Block::WarpedStairs,
Block::MangroveStairs,
Block::BambooStairs,
Block::CherryStairs,
])
});
pub static STANDING_SIGNS: Lazy<HashSet<Block>> = 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,
])
});
pub static STONE_BRICKS: Lazy<HashSet<Block>> = Lazy::new(|| {
HashSet::from_iter(vec![
Block::StoneBricks,
Block::MossyStoneBricks,
Block::CrackedStoneBricks,
Block::ChiseledStoneBricks,
])
});
pub static STONE_BUTTONS: Lazy<HashSet<Block>> =
Lazy::new(|| HashSet::from_iter(vec![Block::StoneButton, Block::PolishedBlackstoneButton]));
pub static STONE_ORE_REPLACEABLES: Lazy<HashSet<Block>> = Lazy::new(|| {
HashSet::from_iter(vec![
Block::Stone,
Block::Granite,
Block::Diorite,
Block::Andesite,
])
});
pub static STONE_PRESSURE_PLATES: Lazy<HashSet<Block>> = Lazy::new(|| {
HashSet::from_iter(vec![
Block::StonePressurePlate,
Block::PolishedBlackstonePressurePlate,
])
});
pub static STRIDER_WARM_BLOCKS: Lazy<HashSet<Block>> =
Lazy::new(|| HashSet::from_iter(vec![Block::Lava]));
pub static SWORD_EFFICIENT: Lazy<HashSet<Block>> = Lazy::new(|| {
HashSet::from_iter(vec![
Block::ShortGrass,
Block::Fern,
Block::DeadBush,
Block::Vine,
Block::GlowLichen,
Block::Sunflower,
Block::Lilac,
Block::RoseBush,
Block::Peony,
Block::TallGrass,
Block::LargeFern,
Block::HangingRoots,
Block::PitcherPlant,
Block::BrownMushroom,
Block::RedMushroom,
Block::SugarCane,
Block::Pumpkin,
Block::CarvedPumpkin,
Block::JackOLantern,
Block::Melon,
Block::AttachedPumpkinStem,
Block::AttachedMelonStem,
Block::LilyPad,
Block::Cocoa,
Block::PitcherCrop,
Block::SweetBerryBush,
Block::CaveVines,
Block::CaveVinesPlant,
Block::SporeBlossom,
Block::MossCarpet,
Block::PinkPetals,
Block::BigDripleaf,
Block::BigDripleafStem,
Block::SmallDripleaf,
Block::NetherWart,
Block::WarpedFungus,
Block::WarpedRoots,
Block::NetherSprouts,
Block::CrimsonFungus,
Block::WeepingVines,
Block::WeepingVinesPlant,
Block::TwistingVines,
Block::TwistingVinesPlant,
Block::CrimsonRoots,
Block::ChorusPlant,
Block::ChorusFlower,
Block::JungleLeaves,
Block::OakLeaves,
Block::SpruceLeaves,
Block::DarkOakLeaves,
Block::AcaciaLeaves,
Block::BirchLeaves,
Block::AzaleaLeaves,
Block::FloweringAzaleaLeaves,
Block::MangroveLeaves,
Block::CherryLeaves,
Block::OakSapling,
Block::SpruceSapling,
Block::BirchSapling,
Block::JungleSapling,
Block::AcaciaSapling,
Block::DarkOakSapling,
Block::Azalea,
Block::FloweringAzalea,
Block::MangrovePropagule,
Block::CherrySapling,
Block::Dandelion,
Block::Poppy,
Block::BlueOrchid,
Block::Allium,
Block::AzureBluet,
Block::RedTulip,
Block::OrangeTulip,
Block::WhiteTulip,
Block::PinkTulip,
Block::OxeyeDaisy,
Block::Cornflower,
Block::LilyOfTheValley,
Block::WitherRose,
Block::Torchflower,
Block::Beetroots,
Block::Carrots,
Block::Potatoes,
Block::Wheat,
Block::MelonStem,
Block::PumpkinStem,
Block::TorchflowerCrop,
Block::PitcherCrop,
])
});
pub static TALL_FLOWERS: Lazy<HashSet<Block>> = Lazy::new(|| {
HashSet::from_iter(vec![
Block::Sunflower,
Block::Lilac,
Block::Peony,
Block::RoseBush,
Block::PitcherPlant,
])
});
pub static TERRACOTTA: Lazy<HashSet<Block>> = Lazy::new(|| {
HashSet::from_iter(vec![
Block::Terracotta,
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 TRAIL_RUINS_REPLACEABLE: Lazy<HashSet<Block>> =
Lazy::new(|| HashSet::from_iter(vec![Block::Gravel]));
pub static TRAPDOORS: Lazy<HashSet<Block>> = Lazy::new(|| {
HashSet::from_iter(vec![
Block::IronTrapdoor,
Block::CopperTrapdoor,
Block::ExposedCopperTrapdoor,
Block::WeatheredCopperTrapdoor,
Block::OxidizedCopperTrapdoor,
Block::WaxedCopperTrapdoor,
Block::WaxedExposedCopperTrapdoor,
Block::WaxedWeatheredCopperTrapdoor,
Block::WaxedOxidizedCopperTrapdoor,
Block::AcaciaTrapdoor,
Block::BirchTrapdoor,
Block::DarkOakTrapdoor,
Block::JungleTrapdoor,
Block::OakTrapdoor,
Block::SpruceTrapdoor,
Block::CrimsonTrapdoor,
Block::WarpedTrapdoor,
Block::MangroveTrapdoor,
Block::BambooTrapdoor,
Block::CherryTrapdoor,
])
});
pub static UNDERWATER_BONEMEALS: Lazy<HashSet<Block>> = 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,
])
});
pub static UNSTABLE_BOTTOM_CENTER: Lazy<HashSet<Block>> = 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 VALID_SPAWN: Lazy<HashSet<Block>> =
Lazy::new(|| HashSet::from_iter(vec![Block::GrassBlock, Block::Podzol]));
pub static VIBRATION_RESONATORS: Lazy<HashSet<Block>> =
Lazy::new(|| HashSet::from_iter(vec![Block::AmethystBlock]));
pub static WALL_CORALS: Lazy<HashSet<Block>> = Lazy::new(|| {
HashSet::from_iter(vec![
Block::TubeCoralWallFan,
Block::BrainCoralWallFan,
Block::BubbleCoralWallFan,
Block::FireCoralWallFan,
Block::HornCoralWallFan,
])
});
pub static WALL_HANGING_SIGNS: Lazy<HashSet<Block>> = 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 WALL_POST_OVERRIDE: Lazy<HashSet<Block>> = 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 WALL_SIGNS: Lazy<HashSet<Block>> = 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 WALLS: Lazy<HashSet<Block>> = 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::TuffWall,
Block::PolishedTuffWall,
Block::TuffBrickWall,
])
});
pub static WARPED_STEMS: Lazy<HashSet<Block>> = Lazy::new(|| {
HashSet::from_iter(vec![
Block::WarpedStem,
Block::StrippedWarpedStem,
Block::WarpedHyphae,
Block::StrippedWarpedHyphae,
])
});
pub static WART_BLOCKS: Lazy<HashSet<Block>> =
Lazy::new(|| HashSet::from_iter(vec![Block::NetherWartBlock, Block::WarpedWartBlock]));
pub static WITHER_IMMUNE: Lazy<HashSet<Block>> = 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<HashSet<Block>> =
Lazy::new(|| HashSet::from_iter(vec![Block::SoulSand, Block::SoulSoil]));
pub static WOLVES_SPAWNABLE_ON: Lazy<HashSet<Block>> = Lazy::new(|| {
HashSet::from_iter(vec![
Block::GrassBlock,
Block::Snow,
Block::SnowBlock,
Block::CoarseDirt,
Block::Podzol,
])
});
pub static WOODEN_BUTTONS: Lazy<HashSet<Block>> = 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 WOODEN_DOORS: Lazy<HashSet<Block>> = 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,
])
});
pub static WOODEN_FENCES: Lazy<HashSet<Block>> = 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,
])
});
pub static WOODEN_PRESSURE_PLATES: Lazy<HashSet<Block>> = 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,
])
});
pub static WOODEN_SLABS: Lazy<HashSet<Block>> = 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 WOODEN_STAIRS: Lazy<HashSet<Block>> = 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 WOODEN_TRAPDOORS: Lazy<HashSet<Block>> = 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 WOOL: Lazy<HashSet<Block>> = 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,
])
});
pub static WOOL_CARPETS: Lazy<HashSet<Block>> = 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,
])
});