diff options
| author | mat <27899617+mat-1@users.noreply.github.com> | 2024-04-23 10:34:50 -0500 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-04-23 10:34:50 -0500 |
| commit | 1d80f531b74bc3b31023753acb81b35efcdadd73 (patch) | |
| tree | 675635c7c41fbb456e3e0dd7b9f09c7211d356f0 /azalea-registry/src | |
| parent | 0ddad8bd9c7c0e8846aec8bc90c95416418c9a63 (diff) | |
| download | azalea-drasl-1d80f531b74bc3b31023753acb81b35efcdadd73.tar.xz | |
1.20.5 (#127)
* 23w51b
* make recalculate_near_end_of_path public
so other plugins can do .after(recalculate_near_end_of_path)
* update to 24w03a i think
* start implementing 24w13a
* registries work (but a lot of packets are still broken)
* fix recipes and commands packets
* i love codecs :D i am not going insane :D mojang's java is very readable :D
* item components are "implemented" meowmeowmeowmeowmeowmeowmeowmeowmeowmeowmeowmeowmeowmeowmeowmeowmeowmeow
* update to 1.20.5-pre3
* fix all the broken packets and clippy (mojang please don't do an update like this again or i will murder someone)
* 1.20.5-rc1
* fix failing tests
* 1.20.5
Diffstat (limited to 'azalea-registry/src')
| -rw-r--r-- | azalea-registry/src/extra.rs | 74 | ||||
| -rwxr-xr-x | azalea-registry/src/lib.rs | 385 | ||||
| -rw-r--r-- | azalea-registry/src/tags/blocks.rs | 4086 | ||||
| -rw-r--r-- | azalea-registry/src/tags/fluids.rs | 4 | ||||
| -rw-r--r-- | azalea-registry/src/tags/items.rs | 2384 |
5 files changed, 4047 insertions, 2886 deletions
diff --git a/azalea-registry/src/extra.rs b/azalea-registry/src/extra.rs new file mode 100644 index 00000000..6be981c1 --- /dev/null +++ b/azalea-registry/src/extra.rs @@ -0,0 +1,74 @@ +//! These registries are sent by the server during the configuration state so +//! you should be relying on those if possible, but these are provided for your +//! convenience anyways. + +use crate::Registry; +use azalea_registry_macros::registry; + +registry! { +enum WolfVariant { + Pale => "minecraft:wolf", + Spotted => "minecraft:wolf_spotted", + Snowy => "minecraft:wolf_snowy", + Black => "minecraft:wolf_black", + Ashen => "minecraft:wolf_ashen", + Rusty => "minecraft:wolf_rusty", + Woods => "minecraft:wolf_woods", + Chestnut => "minecraft:wolf_chestnut", + Striped => "minecraft:wolf_striped", +} +} + +#[allow(clippy::derivable_impls)] +impl Default for WolfVariant { + fn default() -> Self { + WolfVariant::Pale + } +} + +registry! { +enum DimensionType { + Overworld => "minecraft:overworld", + Nether => "minecraft:the_nether", + End => "minecraft:the_end", + OverworldCaves => "minecraft:overworld_caves", +} +} + +registry! { +enum TrimMaterial { + Quartz => "minecraft:quartz", + Iron => "minecraft:iron", + Netherite => "minecraft:netherite", + Redstone => "minecraft:redstone", + Copper => "minecraft:copper", + Gold => "minecraft:gold", + Emerald => "minecraft:emerald", + Diamond => "minecraft:diamond", + Lapis => "minecraft:lapis", + Amethyst => "minecraft:amethyst", +} +} + +registry! { +enum TrimPattern { + Sentry => "sentry", + Dune => "dune", + Coast => "coast", + Wild => "wild", + Ward => "ward", + Eye => "eye", + Vex => "vex", + Tide => "tide", + Snout => "snout", + Rib => "rib", + Spire => "spire", + Wayfinder => "wayfinder", + Shaper => "shaper", + Silence => "silence", + Raiser => "raiser", + Host => "host", + Flow => "flow", + Bolt => "bolt", +} +} diff --git a/azalea-registry/src/lib.rs b/azalea-registry/src/lib.rs index 448dd334..63ebdc61 100755 --- a/azalea-registry/src/lib.rs +++ b/azalea-registry/src/lib.rs @@ -5,6 +5,7 @@ // auto-generated (so you can add doc comments to the registry enums if you // want) +mod extra; pub mod tags; use std::io::{Cursor, Write}; @@ -12,7 +13,9 @@ use std::io::{Cursor, Write}; use azalea_buf::{BufReadError, McBufReadable, McBufVarReadable, McBufVarWritable, McBufWritable}; use azalea_registry_macros::registry; -pub trait Registry +pub use extra::*; + +pub trait Registry: McBufReadable + McBufWritable where Self: Sized, { @@ -77,6 +80,58 @@ impl<D: Registry, C: McBufReadable + McBufWritable> McBufWritable for CustomRegi } } +#[derive(Clone, PartialEq)] +pub enum HolderSet<D: Registry, ResourceLocation: McBufReadable + McBufWritable> { + Direct { + contents: Vec<D>, + }, + Named { + key: ResourceLocation, + contents: Vec<ResourceLocation>, + }, +} + +impl<D: Registry, ResourceLocation: McBufReadable + McBufWritable> McBufReadable + for HolderSet<D, ResourceLocation> +{ + fn read_from(buf: &mut Cursor<&[u8]>) -> Result<Self, BufReadError> { + let size = i32::var_read_from(buf)? - 1; + if size == -1 { + let key = ResourceLocation::read_from(buf)?; + Ok(Self::Named { + key, + contents: Vec::new(), + }) + } else { + let mut contents = Vec::new(); + for _ in 0..size { + contents.push(D::read_from(buf)?); + } + Ok(Self::Direct { contents }) + } + } +} + +impl<D: Registry, ResourceLocation: McBufReadable + McBufWritable> McBufWritable + for HolderSet<D, ResourceLocation> +{ + fn write_into(&self, buf: &mut impl Write) -> Result<(), std::io::Error> { + match self { + Self::Direct { contents } => { + (contents.len() as i32 + 1).var_write_into(buf)?; + for item in contents { + item.write_into(buf)?; + } + } + Self::Named { key, .. } => { + 0i32.var_write_into(buf)?; + key.write_into(buf)?; + } + } + Ok(()) + } +} + registry! { /// The AI code that's currently being executed for the entity. enum Activity { @@ -116,15 +171,23 @@ enum Attribute { GenericAttackDamage => "minecraft:generic.attack_damage", GenericAttackKnockback => "minecraft:generic.attack_knockback", GenericAttackSpeed => "minecraft:generic.attack_speed", + PlayerBlockBreakSpeed => "minecraft:player.block_break_speed", + PlayerBlockInteractionRange => "minecraft:player.block_interaction_range", + PlayerEntityInteractionRange => "minecraft:player.entity_interaction_range", + GenericFallDamageMultiplier => "minecraft:generic.fall_damage_multiplier", GenericFlyingSpeed => "minecraft:generic.flying_speed", GenericFollowRange => "minecraft:generic.follow_range", - HorseJumpStrength => "minecraft:horse.jump_strength", + GenericGravity => "minecraft:generic.gravity", + GenericJumpStrength => "minecraft:generic.jump_strength", GenericKnockbackResistance => "minecraft:generic.knockback_resistance", GenericLuck => "minecraft:generic.luck", GenericMaxAbsorption => "minecraft:generic.max_absorption", GenericMaxHealth => "minecraft:generic.max_health", GenericMovementSpeed => "minecraft:generic.movement_speed", + GenericSafeFallDistance => "minecraft:generic.safe_fall_distance", + GenericScale => "minecraft:generic.scale", ZombieSpawnReinforcements => "minecraft:zombie.spawn_reinforcements", + GenericStepHeight => "minecraft:generic.step_height", } } @@ -1239,6 +1302,8 @@ enum Block { DecoratedPot => "minecraft:decorated_pot", Crafter => "minecraft:crafter", TrialSpawner => "minecraft:trial_spawner", + Vault => "minecraft:vault", + HeavyCore => "minecraft:heavy_core", } } @@ -1290,6 +1355,7 @@ enum BlockEntityKind { DecoratedPot => "minecraft:decorated_pot", Crafter => "minecraft:crafter", TrialSpawner => "minecraft:trial_spawner", + Vault => "minecraft:vault", } } @@ -1379,6 +1445,7 @@ enum CommandArgumentKind { Swizzle => "minecraft:swizzle", Team => "minecraft:team", ItemSlot => "minecraft:item_slot", + ItemSlots => "minecraft:item_slots", ResourceLocation => "minecraft:resource_location", Function => "minecraft:function", EntityAnchor => "minecraft:entity_anchor", @@ -1394,6 +1461,9 @@ enum CommandArgumentKind { TemplateMirror => "minecraft:template_mirror", TemplateRotation => "minecraft:template_rotation", Heightmap => "minecraft:heightmap", + LootTable => "minecraft:loot_table", + LootPredicate => "minecraft:loot_predicate", + LootModifier => "minecraft:loot_modifier", Uuid => "minecraft:uuid", } } @@ -1499,7 +1569,7 @@ enum Enchantment { Knockback => "minecraft:knockback", FireAspect => "minecraft:fire_aspect", Looting => "minecraft:looting", - Sweeping => "minecraft:sweeping", + SweepingEdge => "minecraft:sweeping_edge", Efficiency => "minecraft:efficiency", SilkTouch => "minecraft:silk_touch", Unbreaking => "minecraft:unbreaking", @@ -1517,6 +1587,9 @@ enum Enchantment { Multishot => "minecraft:multishot", QuickCharge => "minecraft:quick_charge", Piercing => "minecraft:piercing", + Density => "minecraft:density", + Breach => "minecraft:breach", + WindBurst => "minecraft:wind_burst", Mending => "minecraft:mending", VanishingCurse => "minecraft:vanishing_curse", } @@ -1527,6 +1600,7 @@ registry! { enum EntityKind { Allay => "minecraft:allay", AreaEffectCloud => "minecraft:area_effect_cloud", + Armadillo => "minecraft:armadillo", ArmorStand => "minecraft:armor_stand", Arrow => "minecraft:arrow", Axolotl => "minecraft:axolotl", @@ -1535,7 +1609,9 @@ enum EntityKind { Blaze => "minecraft:blaze", BlockDisplay => "minecraft:block_display", Boat => "minecraft:boat", + Bogged => "minecraft:bogged", Breeze => "minecraft:breeze", + BreezeWindCharge => "minecraft:breeze_wind_charge", Camel => "minecraft:camel", Cat => "minecraft:cat", CaveSpider => "minecraft:cave_spider", @@ -1583,6 +1659,7 @@ enum EntityKind { Item => "minecraft:item", ItemDisplay => "minecraft:item_display", ItemFrame => "minecraft:item_frame", + OminousItemSpawner => "minecraft:ominous_item_spawner", Fireball => "minecraft:fireball", LeashKnot => "minecraft:leash_knot", LightningBolt => "minecraft:lightning_bolt", @@ -1868,6 +1945,7 @@ enum Item { RawIronBlock => "minecraft:raw_iron_block", RawCopperBlock => "minecraft:raw_copper_block", RawGoldBlock => "minecraft:raw_gold_block", + HeavyCore => "minecraft:heavy_core", AmethystBlock => "minecraft:amethyst_block", BuddingAmethyst => "minecraft:budding_amethyst", IronBlock => "minecraft:iron_block", @@ -2577,7 +2655,9 @@ enum Item { StructureBlock => "minecraft:structure_block", Jigsaw => "minecraft:jigsaw", TurtleHelmet => "minecraft:turtle_helmet", - Scute => "minecraft:scute", + TurtleScute => "minecraft:turtle_scute", + ArmadilloScute => "minecraft:armadillo_scute", + WolfArmor => "minecraft:wolf_armor", FlintAndSteel => "minecraft:flint_and_steel", Apple => "minecraft:apple", Bow => "minecraft:bow", @@ -2788,11 +2868,13 @@ enum Item { Cauldron => "minecraft:cauldron", EnderEye => "minecraft:ender_eye", GlisteringMelonSlice => "minecraft:glistering_melon_slice", + ArmadilloSpawnEgg => "minecraft:armadillo_spawn_egg", AllaySpawnEgg => "minecraft:allay_spawn_egg", AxolotlSpawnEgg => "minecraft:axolotl_spawn_egg", BatSpawnEgg => "minecraft:bat_spawn_egg", BeeSpawnEgg => "minecraft:bee_spawn_egg", BlazeSpawnEgg => "minecraft:blaze_spawn_egg", + BoggedSpawnEgg => "minecraft:bogged_spawn_egg", BreezeSpawnEgg => "minecraft:breeze_spawn_egg", CatSpawnEgg => "minecraft:cat_spawn_egg", CamelSpawnEgg => "minecraft:camel_spawn_egg", @@ -2868,8 +2950,10 @@ enum Item { ZombifiedPiglinSpawnEgg => "minecraft:zombified_piglin_spawn_egg", ExperienceBottle => "minecraft:experience_bottle", FireCharge => "minecraft:fire_charge", + WindCharge => "minecraft:wind_charge", WritableBook => "minecraft:writable_book", WrittenBook => "minecraft:written_book", + Mace => "minecraft:mace", ItemFrame => "minecraft:item_frame", GlowItemFrame => "minecraft:glow_item_frame", FlowerPot => "minecraft:flower_pot", @@ -2974,6 +3058,8 @@ enum Item { MojangBannerPattern => "minecraft:mojang_banner_pattern", GlobeBannerPattern => "minecraft:globe_banner_pattern", PiglinBannerPattern => "minecraft:piglin_banner_pattern", + FlowBannerPattern => "minecraft:flow_banner_pattern", + GusterBannerPattern => "minecraft:guster_banner_pattern", GoatHorn => "minecraft:goat_horn", Composter => "minecraft:composter", Barrel => "minecraft:barrel", @@ -3057,6 +3143,8 @@ enum Item { SilenceArmorTrimSmithingTemplate => "minecraft:silence_armor_trim_smithing_template", RaiserArmorTrimSmithingTemplate => "minecraft:raiser_armor_trim_smithing_template", HostArmorTrimSmithingTemplate => "minecraft:host_armor_trim_smithing_template", + FlowArmorTrimSmithingTemplate => "minecraft:flow_armor_trim_smithing_template", + BoltArmorTrimSmithingTemplate => "minecraft:bolt_armor_trim_smithing_template", AnglerPotterySherd => "minecraft:angler_pottery_sherd", ArcherPotterySherd => "minecraft:archer_pottery_sherd", ArmsUpPotterySherd => "minecraft:arms_up_pottery_sherd", @@ -3065,7 +3153,9 @@ enum Item { BurnPotterySherd => "minecraft:burn_pottery_sherd", DangerPotterySherd => "minecraft:danger_pottery_sherd", ExplorerPotterySherd => "minecraft:explorer_pottery_sherd", + FlowPotterySherd => "minecraft:flow_pottery_sherd", FriendPotterySherd => "minecraft:friend_pottery_sherd", + GusterPotterySherd => "minecraft:guster_pottery_sherd", HeartPotterySherd => "minecraft:heart_pottery_sherd", HeartbreakPotterySherd => "minecraft:heartbreak_pottery_sherd", HowlPotterySherd => "minecraft:howl_pottery_sherd", @@ -3073,6 +3163,7 @@ enum Item { MournerPotterySherd => "minecraft:mourner_pottery_sherd", PlentyPotterySherd => "minecraft:plenty_pottery_sherd", PrizePotterySherd => "minecraft:prize_pottery_sherd", + ScrapePotterySherd => "minecraft:scrape_pottery_sherd", SheafPotterySherd => "minecraft:sheaf_pottery_sherd", ShelterPotterySherd => "minecraft:shelter_pottery_sherd", SkullPotterySherd => "minecraft:skull_pottery_sherd", @@ -3095,6 +3186,10 @@ enum Item { WaxedOxidizedCopperBulb => "minecraft:waxed_oxidized_copper_bulb", TrialSpawner => "minecraft:trial_spawner", TrialKey => "minecraft:trial_key", + OminousTrialKey => "minecraft:ominous_trial_key", + Vault => "minecraft:vault", + OminousBottle => "minecraft:ominous_bottle", + BreezeRod => "minecraft:breeze_rod", } } @@ -3124,10 +3219,12 @@ enum LootConditionKind { registry! { enum LootFunctionKind { SetCount => "minecraft:set_count", + SetItem => "minecraft:set_item", EnchantWithLevels => "minecraft:enchant_with_levels", EnchantRandomly => "minecraft:enchant_randomly", SetEnchantments => "minecraft:set_enchantments", - SetNbt => "minecraft:set_nbt", + SetCustomData => "minecraft:set_custom_data", + SetComponents => "minecraft:set_components", FurnaceSmelt => "minecraft:furnace_smelt", LootingEnchant => "minecraft:looting_enchant", SetDamage => "minecraft:set_damage", @@ -3137,19 +3234,30 @@ enum LootFunctionKind { SetStewEffect => "minecraft:set_stew_effect", CopyName => "minecraft:copy_name", SetContents => "minecraft:set_contents", + ModifyContents => "minecraft:modify_contents", + Filtered => "minecraft:filtered", LimitCount => "minecraft:limit_count", ApplyBonus => "minecraft:apply_bonus", SetLootTable => "minecraft:set_loot_table", ExplosionDecay => "minecraft:explosion_decay", SetLore => "minecraft:set_lore", FillPlayerHead => "minecraft:fill_player_head", - CopyNbt => "minecraft:copy_nbt", + CopyCustomData => "minecraft:copy_custom_data", CopyState => "minecraft:copy_state", SetBannerPattern => "minecraft:set_banner_pattern", SetPotion => "minecraft:set_potion", SetInstrument => "minecraft:set_instrument", Reference => "minecraft:reference", Sequence => "minecraft:sequence", + CopyComponents => "minecraft:copy_components", + SetFireworks => "minecraft:set_fireworks", + SetFireworkExplosion => "minecraft:set_firework_explosion", + SetBookCover => "minecraft:set_book_cover", + SetWrittenBookPages => "minecraft:set_written_book_pages", + SetWritableBookPages => "minecraft:set_writable_book_pages", + ToggleTooltips => "minecraft:toggle_tooltips", + SetOminousBottleAmplifier => "minecraft:set_ominous_bottle_amplifier", + SetCustomModelData => "minecraft:set_custom_model_data", } } @@ -3166,6 +3274,7 @@ enum LootNumberProviderKind { Uniform => "minecraft:uniform", Binomial => "minecraft:binomial", Score => "minecraft:score", + Storage => "minecraft:storage", } } @@ -3223,6 +3332,7 @@ enum MemoryModuleKind { HeardBellTime => "minecraft:heard_bell_time", CantReachWalkTargetSince => "minecraft:cant_reach_walk_target_since", GolemDetectedRecently => "minecraft:golem_detected_recently", + DangerDetectedRecently => "minecraft:danger_detected_recently", LastSlept => "minecraft:last_slept", LastWoken => "minecraft:last_woken", LastWorkedAtPoi => "minecraft:last_worked_at_poi", @@ -3295,6 +3405,7 @@ enum MemoryModuleKind { BreezeShootCooldown => "minecraft:breeze_shoot_cooldown", BreezeJumpInhaling => "minecraft:breeze_jump_inhaling", BreezeJumpTarget => "minecraft:breeze_jump_target", + BreezeLeavingWater => "minecraft:breeze_leaving_water", } } @@ -3362,6 +3473,12 @@ enum MobEffect { BadOmen => "minecraft:bad_omen", HeroOfTheVillage => "minecraft:hero_of_the_village", Darkness => "minecraft:darkness", + TrialOmen => "minecraft:trial_omen", + RaidOmen => "minecraft:raid_omen", + WindCharged => "minecraft:wind_charged", + Weaving => "minecraft:weaving", + Oozing => "minecraft:oozing", + Infested => "minecraft:infested", } } @@ -3402,7 +3519,6 @@ enum PaintingVariant { registry! { enum ParticleKind { - AmbientEntityEffect => "minecraft:ambient_entity_effect", AngryVillager => "minecraft:angry_villager", Block => "minecraft:block", BlockMarker => "minecraft:block_marker", @@ -3427,12 +3543,15 @@ enum ParticleKind { ExplosionEmitter => "minecraft:explosion_emitter", Explosion => "minecraft:explosion", Gust => "minecraft:gust", - GustEmitter => "minecraft:gust_emitter", + SmallGust => "minecraft:small_gust", + GustEmitterLarge => "minecraft:gust_emitter_large", + GustEmitterSmall => "minecraft:gust_emitter_small", SonicBoom => "minecraft:sonic_boom", FallingDust => "minecraft:falling_dust", Firework => "minecraft:firework", Fishing => "minecraft:fishing", Flame => "minecraft:flame", + Infested => "minecraft:infested", CherryLeaves => "minecraft:cherry_leaves", SculkSoul => "minecraft:sculk_soul", SculkCharge => "minecraft:sculk_charge", @@ -3447,6 +3566,7 @@ enum ParticleKind { Item => "minecraft:item", Vibration => "minecraft:vibration", ItemSlime => "minecraft:item_slime", + ItemCobweb => "minecraft:item_cobweb", ItemSnowball => "minecraft:item_snowball", LargeSmoke => "minecraft:large_smoke", Lava => "minecraft:lava", @@ -3501,8 +3621,13 @@ enum ParticleKind { Shriek => "minecraft:shriek", EggCrack => "minecraft:egg_crack", DustPlume => "minecraft:dust_plume", - GustDust => "minecraft:gust_dust", TrialSpawnerDetection => "minecraft:trial_spawner_detection", + TrialSpawnerDetectionOminous => "minecraft:trial_spawner_detection_ominous", + VaultConnection => "minecraft:vault_connection", + DustPillar => "minecraft:dust_pillar", + OminousSpawning => "minecraft:ominous_spawning", + RaidOmen => "minecraft:raid_omen", + TrialOmen => "minecraft:trial_omen", } } @@ -3548,7 +3673,6 @@ enum PositionSourceKind { registry! { enum Potion { - Empty => "minecraft:empty", Water => "minecraft:water", Mundane => "minecraft:mundane", Thick => "minecraft:thick", @@ -3591,6 +3715,10 @@ enum Potion { Luck => "minecraft:luck", SlowFalling => "minecraft:slow_falling", LongSlowFalling => "minecraft:long_slow_falling", + WindCharged => "minecraft:wind_charged", + Weaving => "minecraft:weaving", + Oozing => "minecraft:oozing", + Infested => "minecraft:infested", } } @@ -3666,6 +3794,7 @@ enum SensorKind { VillagerBabies => "minecraft:villager_babies", SecondaryPois => "minecraft:secondary_pois", GolemDetected => "minecraft:golem_detected", + ArmadilloScareDetected => "minecraft:armadillo_scare_detected", PiglinSpecificSensor => "minecraft:piglin_specific_sensor", PiglinBruteSpecificSensor => "minecraft:piglin_brute_specific_sensor", HoglinSpecificSensor => "minecraft:hoglin_specific_sensor", @@ -3675,6 +3804,7 @@ enum SensorKind { GoatTemptations => "minecraft:goat_temptations", FrogTemptations => "minecraft:frog_temptations", CamelTemptations => "minecraft:camel_temptations", + ArmadilloTemptations => "minecraft:armadillo_temptations", FrogAttackables => "minecraft:frog_attackables", IsInWater => "minecraft:is_in_water", WardenEntitySensor => "minecraft:warden_entity_sensor", @@ -3739,6 +3869,19 @@ enum SoundEvent { BlockAnvilPlace => "minecraft:block.anvil.place", BlockAnvilStep => "minecraft:block.anvil.step", BlockAnvilUse => "minecraft:block.anvil.use", + EntityArmadilloEat => "minecraft:entity.armadillo.eat", + EntityArmadilloHurt => "minecraft:entity.armadillo.hurt", + EntityArmadilloHurtReduced => "minecraft:entity.armadillo.hurt_reduced", + EntityArmadilloAmbient => "minecraft:entity.armadillo.ambient", + EntityArmadilloStep => "minecraft:entity.armadillo.step", + EntityArmadilloDeath => "minecraft:entity.armadillo.death", + EntityArmadilloRoll => "minecraft:entity.armadillo.roll", + EntityArmadilloLand => "minecraft:entity.armadillo.land", + EntityArmadilloScuteDrop => "minecraft:entity.armadillo.scute_drop", + EntityArmadilloUnrollFinish => "minecraft:entity.armadillo.unroll_finish", + EntityArmadilloPeek => "minecraft:entity.armadillo.peek", + EntityArmadilloUnrollStart => "minecraft:entity.armadillo.unroll_start", + EntityArmadilloBrush => "minecraft:entity.armadillo.brush", ItemArmorEquipChain => "minecraft:item.armor.equip_chain", ItemArmorEquipDiamond => "minecraft:item.armor.equip_diamond", ItemArmorEquipElytra => "minecraft:item.armor.equip_elytra", @@ -3748,6 +3891,8 @@ enum SoundEvent { ItemArmorEquipLeather => "minecraft:item.armor.equip_leather", ItemArmorEquipNetherite => "minecraft:item.armor.equip_netherite", ItemArmorEquipTurtle => "minecraft:item.armor.equip_turtle", + ItemArmorEquipWolf => "minecraft:item.armor.equip_wolf", + ItemArmorUnequipWolf => "minecraft:item.armor.unequip_wolf", EntityArmorStandBreak => "minecraft:entity.armor_stand.break", EntityArmorStandFall => "minecraft:entity.armor_stand.fall", EntityArmorStandHit => "minecraft:entity.armor_stand.hit", @@ -3839,6 +3984,11 @@ enum SoundEvent { EntityBlazeShoot => "minecraft:entity.blaze.shoot", EntityBoatPaddleLand => "minecraft:entity.boat.paddle_land", EntityBoatPaddleWater => "minecraft:entity.boat.paddle_water", + EntityBoggedAmbient => "minecraft:entity.bogged.ambient", + EntityBoggedDeath => "minecraft:entity.bogged.death", + EntityBoggedHurt => "minecraft:entity.bogged.hurt", + EntityBoggedShear => "minecraft:entity.bogged.shear", + EntityBoggedStep => "minecraft:entity.bogged.step", BlockBoneBlockBreak => "minecraft:block.bone_block.break", BlockBoneBlockFall => "minecraft:block.bone_block.fall", BlockBoneBlockHit => "minecraft:block.bone_block.hit", @@ -3851,6 +4001,8 @@ enum SoundEvent { ItemBottleEmpty => "minecraft:item.bottle.empty", ItemBottleFill => "minecraft:item.bottle.fill", ItemBottleFillDragonbreath => "minecraft:item.bottle.fill_dragonbreath", + EntityBreezeCharge => "minecraft:entity.breeze.charge", + EntityBreezeDeflect => "minecraft:entity.breeze.deflect", EntityBreezeInhale => "minecraft:entity.breeze.inhale", EntityBreezeIdleGround => "minecraft:entity.breeze.idle_ground", EntityBreezeIdleAir => "minecraft:entity.breeze.idle_air", @@ -3860,6 +4012,8 @@ enum SoundEvent { EntityBreezeSlide => "minecraft:entity.breeze.slide", EntityBreezeDeath => "minecraft:entity.breeze.death", EntityBreezeHurt => "minecraft:entity.breeze.hurt", + EntityBreezeWhirl => "minecraft:entity.breeze.whirl", + EntityBreezeWindBurst => "minecraft:entity.breeze.wind_burst", BlockBrewingStandBrew => "minecraft:block.brewing_stand.brew", ItemBrushBrushingGeneric => "minecraft:item.brush.brushing.generic", ItemBrushBrushingSand => "minecraft:item.brush.brushing.sand", @@ -3981,6 +4135,11 @@ enum SoundEvent { BlockChorusFlowerDeath => "minecraft:block.chorus_flower.death", BlockChorusFlowerGrow => "minecraft:block.chorus_flower.grow", ItemChorusFruitTeleport => "minecraft:item.chorus_fruit.teleport", + BlockCobwebBreak => "minecraft:block.cobweb.break", + BlockCobwebStep => "minecraft:block.cobweb.step", + BlockCobwebPlace => "minecraft:block.cobweb.place", + BlockCobwebHit => "minecraft:block.cobweb.hit", + BlockCobwebFall => "minecraft:block.cobweb.fall", EntityCodAmbient => "minecraft:entity.cod.ambient", EntityCodDeath => "minecraft:entity.cod.death", EntityCodFlop => "minecraft:entity.cod.flop", @@ -4083,6 +4242,7 @@ enum SoundEvent { EntityDonkeyDeath => "minecraft:entity.donkey.death", EntityDonkeyEat => "minecraft:entity.donkey.eat", EntityDonkeyHurt => "minecraft:entity.donkey.hurt", + EntityDonkeyJump => "minecraft:entity.donkey.jump", BlockDripstoneBlockBreak => "minecraft:block.dripstone_block.break", BlockDripstoneBlockStep => "minecraft:block.dripstone_block.step", BlockDripstoneBlockPlace => "minecraft:block.dripstone_block.place", @@ -4313,6 +4473,11 @@ enum SoundEvent { BlockHangingSignFall => "minecraft:block.hanging_sign.fall", BlockHangingSignHit => "minecraft:block.hanging_sign.hit", BlockHangingSignPlace => "minecraft:block.hanging_sign.place", + BlockHeavyCoreBreak => "minecraft:block.heavy_core.break", + BlockHeavyCoreFall => "minecraft:block.heavy_core.fall", + BlockHeavyCoreHit => "minecraft:block.heavy_core.hit", + BlockHeavyCorePlace => "minecraft:block.heavy_core.place", + BlockHeavyCoreStep => "minecraft:block.heavy_core.step", BlockNetherWoodHangingSignStep => "minecraft:block.nether_wood_hanging_sign.step", BlockNetherWoodHangingSignBreak => "minecraft:block.nether_wood_hanging_sign.break", BlockNetherWoodHangingSignFall => "minecraft:block.nether_wood_hanging_sign.fall", @@ -4329,8 +4494,13 @@ enum SoundEvent { BlockTrialSpawnerHit => "minecraft:block.trial_spawner.hit", BlockTrialSpawnerFall => "minecraft:block.trial_spawner.fall", BlockTrialSpawnerSpawnMob => "minecraft:block.trial_spawner.spawn_mob", + BlockTrialSpawnerAboutToSpawnItem => "minecraft:block.trial_spawner.about_to_spawn_item", + BlockTrialSpawnerSpawnItem => "minecraft:block.trial_spawner.spawn_item", + BlockTrialSpawnerSpawnItemBegin => "minecraft:block.trial_spawner.spawn_item_begin", BlockTrialSpawnerDetectPlayer => "minecraft:block.trial_spawner.detect_player", + BlockTrialSpawnerChargeActivate => "minecraft:block.trial_spawner.charge_activate", BlockTrialSpawnerAmbient => "minecraft:block.trial_spawner.ambient", + BlockTrialSpawnerAmbientCharged => "minecraft:block.trial_spawner.ambient_charged", BlockTrialSpawnerOpenShutter => "minecraft:block.trial_spawner.open_shutter", BlockTrialSpawnerCloseShutter => "minecraft:block.trial_spawner.close_shutter", BlockTrialSpawnerEjectItem => "minecraft:block.trial_spawner.eject_item", @@ -4445,6 +4615,9 @@ enum SoundEvent { BlockLodestoneHit => "minecraft:block.lodestone.hit", BlockLodestoneFall => "minecraft:block.lodestone.fall", ItemLodestoneCompassLock => "minecraft:item.lodestone_compass.lock", + ItemMaceSmashAir => "minecraft:item.mace.smash_air", + ItemMaceSmashGround => "minecraft:item.mace.smash_ground", + ItemMaceSmashGroundHeavy => "minecraft:item.mace.smash_ground_heavy", EntityMagmaCubeDeath => "minecraft:entity.magma_cube.death", EntityMagmaCubeHurt => "minecraft:entity.magma_cube.hurt", EntityMagmaCubeHurtSmall => "minecraft:entity.magma_cube.hurt_small", @@ -4509,6 +4682,7 @@ enum SoundEvent { EntityMuleDeath => "minecraft:entity.mule.death", EntityMuleEat => "minecraft:entity.mule.eat", EntityMuleHurt => "minecraft:entity.mule.hurt", + EntityMuleJump => "minecraft:entity.mule.jump", MusicCreative => "minecraft:music.creative", MusicCredits => "minecraft:music.credits", MusicDisc5 => "minecraft:music_disc.5", @@ -4649,6 +4823,7 @@ enum SoundEvent { EntityOcelotHurt => "minecraft:entity.ocelot.hurt", EntityOcelotAmbient => "minecraft:entity.ocelot.ambient", EntityOcelotDeath => "minecraft:entity.ocelot.death", + ItemOminousBottleDispose => "minecraft:item.ominous_bottle.dispose", EntityPaintingBreak => "minecraft:entity.painting.break", EntityPaintingPlace => "minecraft:entity.painting.place", EntityPandaPreSneeze => "minecraft:entity.panda.pre_sneeze", @@ -4668,6 +4843,7 @@ enum SoundEvent { EntityParrotFly => "minecraft:entity.parrot.fly", EntityParrotHurt => "minecraft:entity.parrot.hurt", EntityParrotImitateBlaze => "minecraft:entity.parrot.imitate.blaze", + EntityParrotImitateBogged => "minecraft:entity.parrot.imitate.bogged", EntityParrotImitateBreeze => "minecraft:entity.parrot.imitate.breeze", EntityParrotImitateCreeper => "minecraft:entity.parrot.imitate.creeper", EntityParrotImitateDrowned => "minecraft:entity.parrot.imitate.drowned", @@ -5072,6 +5248,19 @@ enum SoundEvent { UiToastChallengeComplete => "minecraft:ui.toast.challenge_complete", UiToastIn => "minecraft:ui.toast.in", UiToastOut => "minecraft:ui.toast.out", + BlockVaultActivate => "minecraft:block.vault.activate", + BlockVaultAmbient => "minecraft:block.vault.ambient", + BlockVaultBreak => "minecraft:block.vault.break", + BlockVaultCloseShutter => "minecraft:block.vault.close_shutter", + BlockVaultDeactivate => "minecraft:block.vault.deactivate", + BlockVaultEjectItem => "minecraft:block.vault.eject_item", + BlockVaultFall => "minecraft:block.vault.fall", + BlockVaultHit => "minecraft:block.vault.hit", + BlockVaultInsertItem => "minecraft:block.vault.insert_item", + BlockVaultInsertItemFail => "minecraft:block.vault.insert_item_fail", + BlockVaultOpenShutter => "minecraft:block.vault.open_shutter", + BlockVaultPlace => "minecraft:block.vault.place", + BlockVaultStep => "minecraft:block.vault.step", EntityVexAmbient => "minecraft:entity.vex.ambient", EntityVexCharge => "minecraft:entity.vex.charge", EntityVexDeath => "minecraft:entity.vex.death", @@ -5147,11 +5336,13 @@ enum SoundEvent { BlockWetGrassPlace => "minecraft:block.wet_grass.place", BlockWetGrassStep => "minecraft:block.wet_grass.step", BlockWetSpongeBreak => "minecraft:block.wet_sponge.break", + BlockWetSpongeDries => "minecraft:block.wet_sponge.dries", BlockWetSpongeFall => "minecraft:block.wet_sponge.fall", BlockWetSpongeHit => "minecraft:block.wet_sponge.hit", BlockWetSpongePlace => "minecraft:block.wet_sponge.place", BlockWetSpongeStep => "minecraft:block.wet_sponge.step", - EntityGenericWindBurst => "minecraft:entity.generic.wind_burst", + EntityWindChargeWindBurst => "minecraft:entity.wind_charge.wind_burst", + EntityWindChargeThrow => "minecraft:entity.wind_charge.throw", EntityWitchAmbient => "minecraft:entity.witch.ambient", EntityWitchCelebrate => "minecraft:entity.witch.celebrate", EntityWitchDeath => "minecraft:entity.witch.death", @@ -5168,6 +5359,10 @@ enum SoundEvent { EntityWitherSkeletonHurt => "minecraft:entity.wither_skeleton.hurt", EntityWitherSkeletonStep => "minecraft:entity.wither_skeleton.step", EntityWitherSpawn => "minecraft:entity.wither.spawn", + ItemWolfArmorBreak => "minecraft:item.wolf_armor.break", + ItemWolfArmorCrack => "minecraft:item.wolf_armor.crack", + ItemWolfArmorDamage => "minecraft:item.wolf_armor.damage", + ItemWolfArmorRepair => "minecraft:item.wolf_armor.repair", EntityWolfAmbient => "minecraft:entity.wolf.ambient", EntityWolfDeath => "minecraft:entity.wolf.death", EntityWolfGrowl => "minecraft:entity.wolf.growl", @@ -5224,6 +5419,9 @@ enum SoundEvent { EntityZombieVillagerDeath => "minecraft:entity.zombie_villager.death", EntityZombieVillagerHurt => "minecraft:entity.zombie_villager.hurt", EntityZombieVillagerStep => "minecraft:entity.zombie_villager.step", + EventMobEffectBadOmen => "minecraft:event.mob_effect.bad_omen", + EventMobEffectTrialOmen => "minecraft:event.mob_effect.trial_omen", + EventMobEffectRaidOmen => "minecraft:event.mob_effect.raid_omen", } } @@ -5638,7 +5836,9 @@ enum DecoratedPotPatterns { BurnPotteryPattern => "minecraft:burn_pottery_pattern", DangerPotteryPattern => "minecraft:danger_pottery_pattern", ExplorerPotteryPattern => "minecraft:explorer_pottery_pattern", + FlowPotteryPattern => "minecraft:flow_pottery_pattern", FriendPotteryPattern => "minecraft:friend_pottery_pattern", + GusterPotteryPattern => "minecraft:guster_pottery_pattern", HeartPotteryPattern => "minecraft:heart_pottery_pattern", HeartbreakPotteryPattern => "minecraft:heartbreak_pottery_pattern", HowlPotteryPattern => "minecraft:howl_pottery_pattern", @@ -5646,6 +5846,7 @@ enum DecoratedPotPatterns { MournerPotteryPattern => "minecraft:mourner_pottery_pattern", PlentyPotteryPattern => "minecraft:plenty_pottery_pattern", PrizePotteryPattern => "minecraft:prize_pottery_pattern", + ScrapePotteryPattern => "minecraft:scrape_pottery_pattern", SheafPotteryPattern => "minecraft:sheaf_pottery_pattern", ShelterPotteryPattern => "minecraft:shelter_pottery_pattern", SkullPotteryPattern => "minecraft:skull_pottery_pattern", @@ -5813,6 +6014,7 @@ enum BlockKind { HalfTransparent => "minecraft:half_transparent", HangingRoots => "minecraft:hanging_roots", Hay => "minecraft:hay", + HeavyCore => "minecraft:heavy_core", Honey => "minecraft:honey", Hopper => "minecraft:hopper", HugeMushroom => "minecraft:huge_mushroom", @@ -5928,6 +6130,7 @@ enum BlockKind { TurtleEgg => "minecraft:turtle_egg", TwistingVinesPlant => "minecraft:twisting_vines_plant", TwistingVines => "minecraft:twisting_vines", + Vault => "minecraft:vault", Vine => "minecraft:vine", WallBanner => "minecraft:wall_banner", WallHangingSign => "minecraft:wall_hanging_sign", @@ -6005,6 +6208,8 @@ enum TriggerKind { BeeNestDestroyed => "minecraft:bee_nest_destroyed", TargetHit => "minecraft:target_hit", ItemUsedOnBlock => "minecraft:item_used_on_block", + DefaultBlockUse => "minecraft:default_block_use", + AnyBlockUse => "minecraft:any_block_use", PlayerGeneratesContainerLoot => "minecraft:player_generates_container_loot", ThrownItemPickedUpByEntity => "minecraft:thrown_item_picked_up_by_entity", ThrownItemPickedUpByPlayer => "minecraft:thrown_item_picked_up_by_player", @@ -6018,6 +6223,8 @@ enum TriggerKind { AllayDropItemOnBlock => "minecraft:allay_drop_item_on_block", AvoidVibration => "minecraft:avoid_vibration", RecipeCrafted => "minecraft:recipe_crafted", + CrafterRecipeCrafted => "minecraft:crafter_recipe_crafted", + FallAfterExplosion => "minecraft:fall_after_explosion", } } @@ -6028,3 +6235,159 @@ enum NumberFormatKind { Fixed => "minecraft:fixed", } } + +registry! { +enum ArmorMaterial { + Leather => "minecraft:leather", + Chainmail => "minecraft:chainmail", + Iron => "minecraft:iron", + Gold => "minecraft:gold", + Diamond => "minecraft:diamond", + Turtle => "minecraft:turtle", + Netherite => "minecraft:netherite", + Armadillo => "minecraft:armadillo", +} +} + +registry! { +enum DataComponentKind { + CustomData => "minecraft:custom_data", + MaxStackSize => "minecraft:max_stack_size", + MaxDamage => "minecraft:max_damage", + Damage => "minecraft:damage", + Unbreakable => "minecraft:unbreakable", + CustomName => "minecraft:custom_name", + ItemName => "minecraft:item_name", + Lore => "minecraft:lore", + Rarity => "minecraft:rarity", + Enchantments => "minecraft:enchantments", + CanPlaceOn => "minecraft:can_place_on", + CanBreak => "minecraft:can_break", + AttributeModifiers => "minecraft:attribute_modifiers", + CustomModelData => "minecraft:custom_model_data", + HideAdditionalTooltip => "minecraft:hide_additional_tooltip", + HideTooltip => "minecraft:hide_tooltip", + RepairCost => "minecraft:repair_cost", + CreativeSlotLock => "minecraft:creative_slot_lock", + EnchantmentGlintOverride => "minecraft:enchantment_glint_override", + IntangibleProjectile => "minecraft:intangible_projectile", + Food => "minecraft:food", + FireResistant => "minecraft:fire_resistant", + Tool => "minecraft:tool", + StoredEnchantments => "minecraft:stored_enchantments", + DyedColor => "minecraft:dyed_color", + MapColor => "minecraft:map_color", + MapId => "minecraft:map_id", + MapDecorations => "minecraft:map_decorations", + MapPostProcessing => "minecraft:map_post_processing", + ChargedProjectiles => "minecraft:charged_projectiles", + BundleContents => "minecraft:bundle_contents", + PotionContents => "minecraft:potion_contents", + SuspiciousStewEffects => "minecraft:suspicious_stew_effects", + WritableBookContent => "minecraft:writable_book_content", + WrittenBookContent => "minecraft:written_book_content", + Trim => "minecraft:trim", + DebugStickState => "minecraft:debug_stick_state", + EntityData => "minecraft:entity_data", + BucketEntityData => "minecraft:bucket_entity_data", + BlockEntityData => "minecraft:block_entity_data", + Instrument => "minecraft:instrument", + OminousBottleAmplifier => "minecraft:ominous_bottle_amplifier", + Recipes => "minecraft:recipes", + LodestoneTracker => "minecraft:lodestone_tracker", + FireworkExplosion => "minecraft:firework_explosion", + Fireworks => "minecraft:fireworks", + Profile => "minecraft:profile", + NoteBlockSound => "minecraft:note_block_sound", + BannerPatterns => "minecraft:banner_patterns", + BaseColor => "minecraft:base_color", + PotDecorations => "minecraft:pot_decorations", + Container => "minecraft:container", + BlockState => "minecraft:block_state", + Bees => "minecraft:bees", + Lock => "minecraft:lock", + ContainerLoot => "minecraft:container_loot", +} +} + +registry! { +enum EntitySubPredicateKind { + Lightning => "minecraft:lightning", + FishingHook => "minecraft:fishing_hook", + Player => "minecraft:player", + Slime => "minecraft:slime", + Raider => "minecraft:raider", + Axolotl => "minecraft:axolotl", + Boat => "minecraft:boat", + Fox => "minecraft:fox", + Mooshroom => "minecraft:mooshroom", + Rabbit => "minecraft:rabbit", + Horse => "minecraft:horse", + Llama => "minecraft:llama", + Villager => "minecraft:villager", + Parrot => "minecraft:parrot", + TropicalFish => "minecraft:tropical_fish", + Painting => "minecraft:painting", + Cat => "minecraft:cat", + Frog => "minecraft:frog", + Wolf => "minecraft:wolf", +} +} + +registry! { +enum ItemSubPredicateKind { + Damage => "minecraft:damage", + Enchantments => "minecraft:enchantments", + StoredEnchantments => "minecraft:stored_enchantments", + PotionContents => "minecraft:potion_contents", + CustomData => "minecraft:custom_data", + Container => "minecraft:container", + BundleContents => "minecraft:bundle_contents", + FireworkExplosion => "minecraft:firework_explosion", + Fireworks => "minecraft:fireworks", + WritableBookContent => "minecraft:writable_book_content", + WrittenBookContent => "minecraft:written_book_content", + AttributeModifiers => "minecraft:attribute_modifiers", + Trim => "minecraft:trim", +} +} + +registry! { +enum MapDecorationKind { + Player => "minecraft:player", + Frame => "minecraft:frame", + RedMarker => "minecraft:red_marker", + BlueMarker => "minecraft:blue_marker", + TargetX => "minecraft:target_x", + TargetPoint => "minecraft:target_point", + PlayerOffMap => "minecraft:player_off_map", + PlayerOffLimits => "minecraft:player_off_limits", + Mansion => "minecraft:mansion", + Monument => "minecraft:monument", + BannerWhite => "minecraft:banner_white", + BannerOrange => "minecraft:banner_orange", + BannerMagenta => "minecraft:banner_magenta", + BannerLightBlue => "minecraft:banner_light_blue", + BannerYellow => "minecraft:banner_yellow", + BannerLime => "minecraft:banner_lime", + BannerPink => "minecraft:banner_pink", + BannerGray => "minecraft:banner_gray", + BannerLightGray => "minecraft:banner_light_gray", + BannerCyan => "minecraft:banner_cyan", + BannerPurple => "minecraft:banner_purple", + BannerBlue => "minecraft:banner_blue", + BannerBrown => "minecraft:banner_brown", + BannerGreen => "minecraft:banner_green", + BannerRed => "minecraft:banner_red", + BannerBlack => "minecraft:banner_black", + RedX => "minecraft:red_x", + VillageDesert => "minecraft:village_desert", + VillagePlains => "minecraft:village_plains", + VillageSavanna => "minecraft:village_savanna", + VillageSnowy => "minecraft:village_snowy", + VillageTaiga => "minecraft:village_taiga", + JungleTemple => "minecraft:jungle_temple", + SwampHut => "minecraft:swamp_hut", + TrialChambers => "minecraft:trial_chambers", +} +} diff --git a/azalea-registry/src/tags/blocks.rs b/azalea-registry/src/tags/blocks.rs index 0396eb87..65ddfd4a 100644 --- a/azalea-registry/src/tags/blocks.rs +++ b/azalea-registry/src/tags/blocks.rs @@ -6,6 +6,37 @@ use once_cell::sync::Lazy; use crate::Block; +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_SHOVEL: Lazy<HashSet<Block>> = Lazy::new(|| { HashSet::from_iter(vec![ Block::Clay, @@ -348,37 +379,6 @@ pub static MINEABLE_AXE: Lazy<HashSet<Block>> = Lazy::new(|| { 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, @@ -758,327 +758,131 @@ pub static MINEABLE_PICKAXE: Lazy<HashSet<Block>> = Lazy::new(|| { Block::ActivatorRail, ]) }); -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 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 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 ACACIA_LOGS: Lazy<HashSet<Block>> = Lazy::new(|| { - HashSet::from_iter(vec![ - Block::AcaciaLog, - Block::AcaciaWood, - Block::StrippedAcaciaLog, - Block::StrippedAcaciaWood, - ]) -}); -pub static SMALL_DRIPLEAF_PLACEABLE: Lazy<HashSet<Block>> = - Lazy::new(|| HashSet::from_iter(vec![Block::Clay, Block::MossBlock])); -pub static WALL_CORALS: Lazy<HashSet<Block>> = Lazy::new(|| { +pub static STONE_BUTTONS: Lazy<HashSet<Block>> = + Lazy::new(|| HashSet::from_iter(vec![Block::StoneButton, Block::PolishedBlackstoneButton])); +pub static STONE_BRICKS: Lazy<HashSet<Block>> = Lazy::new(|| { HashSet::from_iter(vec![ - Block::TubeCoralWallFan, - Block::BrainCoralWallFan, - Block::BubbleCoralWallFan, - Block::FireCoralWallFan, - Block::HornCoralWallFan, + Block::StoneBricks, + Block::MossyStoneBricks, + Block::CrackedStoneBricks, + Block::ChiseledStoneBricks, ]) }); -pub static BAMBOO_PLANTABLE_ON: Lazy<HashSet<Block>> = Lazy::new(|| { +pub static WOOL: 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, + 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 SWORD_EFFICIENT: Lazy<HashSet<Block>> = Lazy::new(|| { +pub static PLANKS: 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, + Block::OakPlanks, + Block::SprucePlanks, + Block::BirchPlanks, + Block::JunglePlanks, + Block::AcaciaPlanks, + Block::DarkOakPlanks, + Block::CrimsonPlanks, + Block::WarpedPlanks, + Block::MangrovePlanks, + Block::BambooPlanks, + Block::CherryPlanks, ]) }); -pub static SNOW_LAYER_CANNOT_SURVIVE_ON: Lazy<HashSet<Block>> = - Lazy::new(|| HashSet::from_iter(vec![Block::Ice, Block::PackedIce, Block::Barrier])); -pub static MUSHROOM_GROW_BLOCK: Lazy<HashSet<Block>> = Lazy::new(|| { +pub static WOODEN_BUTTONS: Lazy<HashSet<Block>> = Lazy::new(|| { HashSet::from_iter(vec![ - Block::Mycelium, - Block::Podzol, - Block::CrimsonNylium, - Block::WarpedNylium, + Block::OakButton, + Block::SpruceButton, + Block::BirchButton, + Block::JungleButton, + Block::AcaciaButton, + Block::DarkOakButton, + Block::CrimsonButton, + Block::WarpedButton, + Block::MangroveButton, + Block::BambooButton, + Block::CherryButton, ]) }); -pub static DEAD_BUSH_MAY_PLACE_ON: Lazy<HashSet<Block>> = Lazy::new(|| { +pub static BUTTONS: 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, + 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 CONCRETE_POWDER: Lazy<HashSet<Block>> = Lazy::new(|| { +pub static WOOL_CARPETS: 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, + 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 WOLVES_SPAWNABLE_ON: Lazy<HashSet<Block>> = - Lazy::new(|| HashSet::from_iter(vec![Block::GrassBlock, Block::Snow, Block::SnowBlock])); -pub static LUSH_GROUND_REPLACEABLE: Lazy<HashSet<Block>> = Lazy::new(|| { +pub static WOODEN_DOORS: 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, + Block::OakDoor, + Block::SpruceDoor, + Block::BirchDoor, + Block::JungleDoor, + Block::AcaciaDoor, + Block::DarkOakDoor, + Block::CrimsonDoor, + Block::WarpedDoor, + Block::MangroveDoor, + Block::BambooDoor, + Block::CherryDoor, ]) }); -pub static PARROTS_SPAWNABLE_ON: Lazy<HashSet<Block>> = Lazy::new(|| { +pub static WOODEN_STAIRS: 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, + 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_SLABS: Lazy<HashSet<Block>> = Lazy::new(|| { @@ -1096,61 +900,53 @@ pub static WOODEN_SLABS: Lazy<HashSet<Block>> = Lazy::new(|| { 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 WALL_SIGNS: Lazy<HashSet<Block>> = Lazy::new(|| { +pub static WOODEN_FENCES: 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, + Block::OakFence, + Block::AcaciaFence, + Block::DarkOakFence, + Block::SpruceFence, + Block::BirchFence, + Block::JungleFence, + Block::CrimsonFence, + Block::WarpedFence, + Block::MangroveFence, + Block::BambooFence, + Block::CherryFence, ]) }); -pub static MANGROVE_LOGS: Lazy<HashSet<Block>> = Lazy::new(|| { +pub static DOORS: Lazy<HashSet<Block>> = Lazy::new(|| { HashSet::from_iter(vec![ - Block::MangroveLog, - Block::MangroveWood, - Block::StrippedMangroveLog, - Block::StrippedMangroveWood, + 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 WITHER_IMMUNE: Lazy<HashSet<Block>> = Lazy::new(|| { +pub static SAPLINGS: 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, + 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<HashSet<Block>> = + Lazy::new(|| HashSet::from_iter(vec![Block::BambooBlock, Block::StrippedBambooBlock])); pub static DARK_OAK_LOGS: Lazy<HashSet<Block>> = Lazy::new(|| { HashSet::from_iter(vec![ Block::DarkOakLog, @@ -1159,199 +955,76 @@ pub static DARK_OAK_LOGS: Lazy<HashSet<Block>> = Lazy::new(|| { Block::StrippedDarkOakWood, ]) }); -pub static STONE_ORE_REPLACEABLES: Lazy<HashSet<Block>> = Lazy::new(|| { - HashSet::from_iter(vec![ - Block::Stone, - Block::Granite, - Block::Diorite, - Block::Andesite, - ]) -}); -pub static EMERALD_ORES: Lazy<HashSet<Block>> = - Lazy::new(|| HashSet::from_iter(vec![Block::EmeraldOre, Block::DeepslateEmeraldOre])); -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 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 DOORS: Lazy<HashSet<Block>> = Lazy::new(|| { +pub static OAK_LOGS: Lazy<HashSet<Block>> = 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, + Block::OakLog, + Block::OakWood, + Block::StrippedOakLog, + Block::StrippedOakWood, ]) }); -pub static BEDS: Lazy<HashSet<Block>> = Lazy::new(|| { +pub static ACACIA_LOGS: 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, + Block::AcaciaLog, + Block::AcaciaWood, + Block::StrippedAcaciaLog, + Block::StrippedAcaciaWood, ]) }); -pub static BASE_STONE_OVERWORLD: Lazy<HashSet<Block>> = Lazy::new(|| { +pub static JUNGLE_LOGS: Lazy<HashSet<Block>> = Lazy::new(|| { HashSet::from_iter(vec![ - Block::Stone, - Block::Granite, - Block::Diorite, - Block::Andesite, - Block::Tuff, - Block::Deepslate, + Block::JungleLog, + Block::JungleWood, + Block::StrippedJungleLog, + Block::StrippedJungleWood, ]) }); -pub static SNIFFER_EGG_HATCH_BOOST: Lazy<HashSet<Block>> = - Lazy::new(|| HashSet::from_iter(vec![Block::MossBlock])); -pub static VALID_SPAWN: Lazy<HashSet<Block>> = - Lazy::new(|| HashSet::from_iter(vec![Block::GrassBlock, Block::Podzol])); -pub static NEEDS_STONE_TOOL: Lazy<HashSet<Block>> = Lazy::new(|| { +pub static BIRCH_LOGS: 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::BirchLog, + Block::BirchWood, + Block::StrippedBirchLog, + Block::StrippedBirchWood, ]) }); -pub static SNIFFER_DIGGABLE_BLOCK: Lazy<HashSet<Block>> = Lazy::new(|| { +pub static SPRUCE_LOGS: 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, + Block::SpruceLog, + Block::SpruceWood, + Block::StrippedSpruceLog, + Block::StrippedSpruceWood, ]) }); -pub static ANCIENT_CITY_REPLACEABLE: Lazy<HashSet<Block>> = Lazy::new(|| { +pub static CRIMSON_STEMS: 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, + Block::CrimsonStem, + Block::StrippedCrimsonStem, + Block::CrimsonHyphae, + Block::StrippedCrimsonHyphae, ]) }); -pub static COPPER_ORES: Lazy<HashSet<Block>> = - Lazy::new(|| HashSet::from_iter(vec![Block::CopperOre, Block::DeepslateCopperOre])); -pub static WOODEN_PRESSURE_PLATES: Lazy<HashSet<Block>> = Lazy::new(|| { +pub static WARPED_STEMS: 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, + Block::WarpedStem, + Block::StrippedWarpedStem, + Block::WarpedHyphae, + Block::StrippedWarpedHyphae, ]) }); -pub static NYLIUM: Lazy<HashSet<Block>> = - Lazy::new(|| HashSet::from_iter(vec![Block::CrimsonNylium, Block::WarpedNylium])); -pub static FEATURES_CANNOT_REPLACE: Lazy<HashSet<Block>> = Lazy::new(|| { +pub static MANGROVE_LOGS: Lazy<HashSet<Block>> = Lazy::new(|| { HashSet::from_iter(vec![ - Block::Bedrock, - Block::Spawner, - Block::Chest, - Block::EndPortalFrame, - Block::ReinforcedDeepslate, + Block::MangroveLog, + Block::MangroveWood, + Block::StrippedMangroveLog, + Block::StrippedMangroveWood, ]) }); -pub static SAND: Lazy<HashSet<Block>> = Lazy::new(|| { +pub static CHERRY_LOGS: Lazy<HashSet<Block>> = Lazy::new(|| { HashSet::from_iter(vec![ - Block::Sand, - Block::RedSand, - Block::SuspiciousSand, - Block::SuspiciousSand, + Block::CherryLog, + Block::CherryWood, + Block::StrippedCherryLog, + Block::StrippedCherryWood, ]) }); pub static LOGS_THAT_BURN: Lazy<HashSet<Block>> = Lazy::new(|| { @@ -1390,190 +1063,114 @@ pub static LOGS_THAT_BURN: Lazy<HashSet<Block>> = Lazy::new(|| { Block::StrippedCherryWood, ]) }); -pub static CAMEL_SAND_STEP_SOUND_BLOCKS: Lazy<HashSet<Block>> = Lazy::new(|| { +pub static OVERWORLD_NATURAL_LOGS: 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, + Block::AcaciaLog, + Block::BirchLog, + Block::OakLog, + Block::JungleLog, + Block::SpruceLog, + Block::DarkOakLog, + Block::MangroveLog, + Block::CherryLog, ]) }); -pub static CHERRY_LOGS: Lazy<HashSet<Block>> = Lazy::new(|| { +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 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 DIAMOND_ORES: Lazy<HashSet<Block>> = - Lazy::new(|| HashSet::from_iter(vec![Block::DiamondOre, Block::DeepslateDiamondOre])); -pub static WOOL: Lazy<HashSet<Block>> = Lazy::new(|| { +pub static ANVIL: Lazy<HashSet<Block>> = + Lazy::new(|| HashSet::from_iter(vec![Block::Anvil, Block::ChippedAnvil, Block::DamagedAnvil])); +pub static SMALL_FLOWERS: 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::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 FOXES_SPAWNABLE_ON: Lazy<HashSet<Block>> = Lazy::new(|| { +pub static DIRT: Lazy<HashSet<Block>> = Lazy::new(|| { HashSet::from_iter(vec![ + Block::Dirt, Block::GrassBlock, - Block::Snow, - Block::SnowBlock, Block::Podzol, Block::CoarseDirt, + Block::Mycelium, + Block::RootedDirt, + Block::MossBlock, + Block::Mud, + Block::MuddyMangroveRoots, ]) }); -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 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 DRAGON_TRANSPARENT: Lazy<HashSet<Block>> = - Lazy::new(|| HashSet::from_iter(vec![Block::Light, Block::Fire, Block::SoulFire])); -pub static REPLACEABLE_BY_TREES: Lazy<HashSet<Block>> = Lazy::new(|| { +pub static ENDERMAN_HOLDABLE: 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::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::JungleLeaves, - Block::OakLeaves, - Block::SpruceLeaves, - Block::DarkOakLeaves, - Block::AcaciaLeaves, - Block::BirchLeaves, - Block::AzaleaLeaves, - Block::FloweringAzaleaLeaves, - Block::MangroveLeaves, - Block::CherryLeaves, - ]) -}); -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::WarpedFungus, + Block::WarpedNylium, + Block::WarpedRoots, Block::Dandelion, Block::Poppy, Block::BlueOrchid, @@ -1588,34 +1185,94 @@ pub static FLOWERS: Lazy<HashSet<Block>> = Lazy::new(|| { Block::LilyOfTheValley, Block::WitherRose, Block::Torchflower, - Block::Sunflower, - Block::Lilac, - Block::Peony, - Block::RoseBush, - Block::PitcherPlant, + Block::Dirt, + Block::GrassBlock, + Block::Podzol, + Block::CoarseDirt, + Block::Mycelium, + Block::RootedDirt, + Block::MossBlock, + Block::Mud, + Block::MuddyMangroveRoots, ]) }); -pub static FIRE: Lazy<HashSet<Block>> = - Lazy::new(|| HashSet::from_iter(vec![Block::Fire, Block::SoulFire])); -pub static CANDLE_CAKES: Lazy<HashSet<Block>> = Lazy::new(|| { +pub static FLOWER_POTS: 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, + 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 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 STONE_PRESSURE_PLATES: Lazy<HashSet<Block>> = Lazy::new(|| { + HashSet::from_iter(vec![ + Block::StonePressurePlate, + Block::PolishedBlackstonePressurePlate, + ]) +}); +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 BANNERS: Lazy<HashSet<Block>> = Lazy::new(|| { @@ -1654,191 +1311,61 @@ pub static BANNERS: Lazy<HashSet<Block>> = Lazy::new(|| { Block::BlackWallBanner, ]) }); -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 BIRCH_LOGS: Lazy<HashSet<Block>> = Lazy::new(|| { - HashSet::from_iter(vec![ - Block::BirchLog, - Block::BirchWood, - Block::StrippedBirchLog, - Block::StrippedBirchWood, - ]) -}); -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 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 BEACON_BASE_BLOCKS: Lazy<HashSet<Block>> = Lazy::new(|| { - HashSet::from_iter(vec![ - Block::NetheriteBlock, - Block::EmeraldBlock, - Block::DiamondBlock, - Block::GoldBlock, - Block::IronBlock, - ]) -}); -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::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 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 STANDING_SIGNS: Lazy<HashSet<Block>> = Lazy::new(|| { +pub static STAIRS: 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::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 SLABS: Lazy<HashSet<Block>> = Lazy::new(|| { @@ -1902,298 +1429,39 @@ pub static SLABS: Lazy<HashSet<Block>> = Lazy::new(|| { Block::CherrySlab, ]) }); -pub static ANVIL: Lazy<HashSet<Block>> = - Lazy::new(|| HashSet::from_iter(vec![Block::Anvil, Block::ChippedAnvil, Block::DamagedAnvil])); -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 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::OakStairs, - Block::SpruceStairs, - Block::BirchStairs, - Block::JungleStairs, - Block::AcaciaStairs, - Block::DarkOakStairs, - Block::CrimsonStairs, - Block::WarpedStairs, - Block::MangroveStairs, - Block::BambooStairs, - Block::CherryStairs, - ]) -}); -pub static CAVE_VINES: Lazy<HashSet<Block>> = - Lazy::new(|| HashSet::from_iter(vec![Block::CaveVinesPlant, Block::CaveVines])); -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 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 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 INFINIBURN_END: Lazy<HashSet<Block>> = - Lazy::new(|| HashSet::from_iter(vec![Block::Bedrock, Block::Netherrack, Block::MagmaBlock])); -pub static SOUL_FIRE_BASE_BLOCKS: Lazy<HashSet<Block>> = - Lazy::new(|| HashSet::from_iter(vec![Block::SoulSand, Block::SoulSoil])); -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, - ]) -}); -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 CORAL_BLOCKS: Lazy<HashSet<Block>> = Lazy::new(|| { - HashSet::from_iter(vec![ - Block::TubeCoralBlock, - Block::BrainCoralBlock, - Block::BubbleCoralBlock, - Block::FireCoralBlock, - Block::HornCoralBlock, - ]) -}); -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 COAL_ORES: Lazy<HashSet<Block>> = - Lazy::new(|| HashSet::from_iter(vec![Block::CoalOre, Block::DeepslateCoalOre])); -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 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 GOLD_ORES: Lazy<HashSet<Block>> = Lazy::new(|| { - HashSet::from_iter(vec![ - Block::GoldOre, - Block::NetherGoldOre, - Block::DeepslateGoldOre, - ]) -}); -pub static NEEDS_IRON_TOOL: Lazy<HashSet<Block>> = Lazy::new(|| { +pub static WALLS: 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, + 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 UNSTABLE_BOTTOM_CENTER: Lazy<HashSet<Block>> = Lazy::new(|| { +pub static CORAL_PLANTS: 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, + Block::TubeCoral, + Block::BrainCoral, + Block::BubbleCoral, + Block::FireCoral, + Block::HornCoral, ]) }); pub static CORALS: Lazy<HashSet<Block>> = Lazy::new(|| { @@ -2210,179 +1478,51 @@ pub static CORALS: Lazy<HashSet<Block>> = Lazy::new(|| { Block::HornCoral, ]) }); -pub static WART_BLOCKS: Lazy<HashSet<Block>> = - Lazy::new(|| HashSet::from_iter(vec![Block::NetherWartBlock, Block::WarpedWartBlock])); -pub static BEEHIVES: Lazy<HashSet<Block>> = - Lazy::new(|| HashSet::from_iter(vec![Block::BeeNest, Block::Beehive])); -pub static POLAR_BEARS_SPAWNABLE_ON_ALTERNATE: Lazy<HashSet<Block>> = - Lazy::new(|| HashSet::from_iter(vec![Block::Ice])); -pub static DEEPSLATE_ORE_REPLACEABLES: Lazy<HashSet<Block>> = - Lazy::new(|| HashSet::from_iter(vec![Block::Deepslate, Block::Tuff])); -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 PREVENT_MOB_SPAWNING_INSIDE: Lazy<HashSet<Block>> = Lazy::new(|| { - HashSet::from_iter(vec![ - Block::Rail, - Block::PoweredRail, - Block::DetectorRail, - Block::ActivatorRail, - ]) -}); -pub static CONVERTABLE_TO_MUD: Lazy<HashSet<Block>> = - Lazy::new(|| HashSet::from_iter(vec![Block::Dirt, Block::CoarseDirt, Block::RootedDirt])); -pub static SOUL_SPEED_BLOCKS: Lazy<HashSet<Block>> = - Lazy::new(|| HashSet::from_iter(vec![Block::SoulSand, Block::SoulSoil])); -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 CORAL_PLANTS: Lazy<HashSet<Block>> = Lazy::new(|| { - HashSet::from_iter(vec![ - Block::TubeCoral, - Block::BrainCoral, - Block::BubbleCoral, - Block::FireCoral, - Block::HornCoral, - ]) -}); -pub static PORTALS: Lazy<HashSet<Block>> = Lazy::new(|| { +pub static WALL_CORALS: Lazy<HashSet<Block>> = Lazy::new(|| { HashSet::from_iter(vec![ - Block::NetherPortal, - Block::EndPortal, - Block::EndGateway, + Block::TubeCoralWallFan, + Block::BrainCoralWallFan, + Block::BubbleCoralWallFan, + Block::FireCoralWallFan, + Block::HornCoralWallFan, ]) }); -pub static SCULK_REPLACEABLE_WORLD_GEN: Lazy<HashSet<Block>> = Lazy::new(|| { +pub static SAND: 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, + Block::SuspiciousSand, + Block::SuspiciousSand, ]) }); -pub static SHULKER_BOXES: Lazy<HashSet<Block>> = Lazy::new(|| { +pub static CORAL_BLOCKS: 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, + Block::TubeCoralBlock, + Block::BrainCoralBlock, + Block::BubbleCoralBlock, + Block::FireCoralBlock, + Block::HornCoralBlock, ]) }); -pub static FENCES: Lazy<HashSet<Block>> = Lazy::new(|| { +pub static RAILS: 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, + Block::Rail, + Block::PoweredRail, + Block::DetectorRail, + Block::ActivatorRail, ]) }); -pub static GEODE_INVALID_BLOCKS: Lazy<HashSet<Block>> = Lazy::new(|| { +pub static ICE: Lazy<HashSet<Block>> = Lazy::new(|| { HashSet::from_iter(vec![ - Block::Bedrock, - Block::Water, - Block::Lava, Block::Ice, Block::PackedIce, Block::BlueIce, + Block::FrostedIce, ]) }); -pub static COMPLETES_FIND_TREE_TUTORIAL: Lazy<HashSet<Block>> = Lazy::new(|| { +pub static VALID_SPAWN: Lazy<HashSet<Block>> = + Lazy::new(|| HashSet::from_iter(vec![Block::GrassBlock, Block::Podzol])); +pub static LEAVES: Lazy<HashSet<Block>> = Lazy::new(|| { HashSet::from_iter(vec![ Block::JungleLeaves, Block::OakLeaves, @@ -2394,238 +1534,8 @@ pub static COMPLETES_FIND_TREE_TUTORIAL: Lazy<HashSet<Block>> = Lazy::new(|| { 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 FROG_PREFER_JUMP_TO: Lazy<HashSet<Block>> = - Lazy::new(|| HashSet::from_iter(vec![Block::LilyPad, Block::BigDripleaf])); -pub static INFINIBURN_OVERWORLD: Lazy<HashSet<Block>> = - Lazy::new(|| HashSet::from_iter(vec![Block::Netherrack, Block::MagmaBlock])); -pub static WITHER_SUMMON_BASE_BLOCKS: Lazy<HashSet<Block>> = - Lazy::new(|| HashSet::from_iter(vec![Block::SoulSand, Block::SoulSoil])); -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 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 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 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 STRIDER_WARM_BLOCKS: Lazy<HashSet<Block>> = - Lazy::new(|| HashSet::from_iter(vec![Block::Lava])); -pub static ANIMALS_SPAWNABLE_ON: Lazy<HashSet<Block>> = - Lazy::new(|| HashSet::from_iter(vec![Block::GrassBlock])); -pub static INVALID_SPAWN_INSIDE: Lazy<HashSet<Block>> = - Lazy::new(|| HashSet::from_iter(vec![Block::EndPortal, Block::EndGateway])); -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 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 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 OAK_LOGS: Lazy<HashSet<Block>> = Lazy::new(|| { - HashSet::from_iter(vec![ - Block::OakLog, - Block::OakWood, - Block::StrippedOakLog, - Block::StrippedOakWood, - ]) -}); -pub static STONE_BRICKS: Lazy<HashSet<Block>> = Lazy::new(|| { - HashSet::from_iter(vec![ - Block::StoneBricks, - Block::MossyStoneBricks, - Block::CrackedStoneBricks, - Block::ChiseledStoneBricks, ]) }); -pub static LAPIS_ORES: Lazy<HashSet<Block>> = - Lazy::new(|| HashSet::from_iter(vec![Block::LapisOre, Block::DeepslateLapisOre])); pub static IMPERMEABLE: Lazy<HashSet<Block>> = Lazy::new(|| { HashSet::from_iter(vec![ Block::Glass, @@ -2648,15 +1558,38 @@ pub static IMPERMEABLE: Lazy<HashSet<Block>> = Lazy::new(|| { Block::TintedGlass, ]) }); -pub static ICE: Lazy<HashSet<Block>> = Lazy::new(|| { +pub static WOODEN_TRAPDOORS: Lazy<HashSet<Block>> = Lazy::new(|| { HashSet::from_iter(vec![ - Block::Ice, - Block::PackedIce, - Block::BlueIce, - Block::FrostedIce, + 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_SIGNS: Lazy<HashSet<Block>> = Lazy::new(|| { +pub static TRAPDOORS: Lazy<HashSet<Block>> = 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 SIGNS: Lazy<HashSet<Block>> = Lazy::new(|| { HashSet::from_iter(vec![ Block::OakSign, Block::SpruceSign, @@ -2680,6 +1613,45 @@ pub static ALL_SIGNS: Lazy<HashSet<Block>> = Lazy::new(|| { Block::MangroveWallSign, Block::BambooWallSign, Block::CherryWallSign, + ]) +}); +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 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 ALL_HANGING_SIGNS: Lazy<HashSet<Block>> = Lazy::new(|| { + HashSet::from_iter(vec![ Block::OakHangingSign, Block::SpruceHangingSign, Block::BirchHangingSign, @@ -2704,7 +1676,7 @@ pub static ALL_SIGNS: Lazy<HashSet<Block>> = Lazy::new(|| { Block::BambooWallHangingSign, ]) }); -pub static SIGNS: Lazy<HashSet<Block>> = Lazy::new(|| { +pub static ALL_SIGNS: Lazy<HashSet<Block>> = Lazy::new(|| { HashSet::from_iter(vec![ Block::OakSign, Block::SpruceSign, @@ -2728,184 +1700,219 @@ pub static SIGNS: Lazy<HashSet<Block>> = Lazy::new(|| { 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 INFINIBURN_NETHER: Lazy<HashSet<Block>> = - Lazy::new(|| HashSet::from_iter(vec![Block::Netherrack, Block::MagmaBlock])); -pub static NETHER_CARVER_REPLACEABLES: Lazy<HashSet<Block>> = Lazy::new(|| { +pub static BEDS: 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, + 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 CRYSTAL_SOUND_BLOCKS: Lazy<HashSet<Block>> = - Lazy::new(|| HashSet::from_iter(vec![Block::AmethystBlock, Block::BuddingAmethyst])); -pub static DIRT: Lazy<HashSet<Block>> = Lazy::new(|| { +pub static FENCES: 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, + 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 MOOSHROOMS_SPAWNABLE_ON: Lazy<HashSet<Block>> = - Lazy::new(|| HashSet::from_iter(vec![Block::Mycelium])); -pub static PRESSURE_PLATES: Lazy<HashSet<Block>> = Lazy::new(|| { +pub static DRAGON_IMMUNE: 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, + 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 LOGS: Lazy<HashSet<Block>> = Lazy::new(|| { +pub static DRAGON_TRANSPARENT: Lazy<HashSet<Block>> = + Lazy::new(|| HashSet::from_iter(vec![Block::Light, Block::Fire, Block::SoulFire])); +pub static WITHER_IMMUNE: 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, + 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 MANGROVE_ROOTS_CAN_GROW_THROUGH: Lazy<HashSet<Block>> = Lazy::new(|| { +pub static WITHER_SUMMON_BASE_BLOCKS: Lazy<HashSet<Block>> = + Lazy::new(|| HashSet::from_iter(vec![Block::SoulSand, Block::SoulSoil])); +pub static TALL_FLOWERS: Lazy<HashSet<Block>> = Lazy::new(|| { HashSet::from_iter(vec![ - Block::Mud, - Block::MuddyMangroveRoots, - Block::MangroveRoots, - Block::MossCarpet, - Block::Vine, + Block::Sunflower, + Block::Lilac, + Block::Peony, + Block::RoseBush, + Block::PitcherPlant, + ]) +}); +pub static FLOWERS: Lazy<HashSet<Block>> = Lazy::new(|| { + HashSet::from_iter(vec![ + Block::FloweringAzaleaLeaves, + Block::FloweringAzalea, Block::MangrovePropagule, - Block::Snow, + 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 CLIMBABLE: Lazy<HashSet<Block>> = Lazy::new(|| { +pub static BEEHIVES: Lazy<HashSet<Block>> = + Lazy::new(|| HashSet::from_iter(vec![Block::BeeNest, Block::Beehive])); +pub static BEE_GROWABLES: Lazy<HashSet<Block>> = Lazy::new(|| { HashSet::from_iter(vec![ - Block::Ladder, - Block::Vine, - Block::Scaffolding, - Block::WeepingVines, - Block::WeepingVinesPlant, - Block::TwistingVines, - Block::TwistingVinesPlant, + Block::SweetBerryBush, Block::CaveVines, Block::CaveVinesPlant, + Block::Beetroots, + Block::Carrots, + Block::Potatoes, + Block::Wheat, + Block::MelonStem, + Block::PumpkinStem, + Block::TorchflowerCrop, + Block::PitcherCrop, ]) }); -pub static WOODEN_BUTTONS: Lazy<HashSet<Block>> = Lazy::new(|| { +pub static SHULKER_BOXES: 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::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 ENCHANTMENT_POWER_PROVIDER: Lazy<HashSet<Block>> = - Lazy::new(|| HashSet::from_iter(vec![Block::Bookshelf])); -pub static CAULDRONS: Lazy<HashSet<Block>> = Lazy::new(|| { +pub static CROPS: Lazy<HashSet<Block>> = Lazy::new(|| { HashSet::from_iter(vec![ - Block::Cauldron, - Block::WaterCauldron, - Block::LavaCauldron, - Block::PowderSnowCauldron, + Block::Beetroots, + Block::Carrots, + Block::Potatoes, + Block::Wheat, + Block::MelonStem, + Block::PumpkinStem, + Block::TorchflowerCrop, + Block::PitcherCrop, ]) }); -pub static SMELTS_TO_GLASS: Lazy<HashSet<Block>> = - Lazy::new(|| HashSet::from_iter(vec![Block::Sand, Block::RedSand])); -pub static WALL_HANGING_SIGNS: Lazy<HashSet<Block>> = Lazy::new(|| { +pub static PORTALS: 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, + Block::NetherPortal, + Block::EndPortal, + Block::EndGateway, + ]) +}); +pub static FIRE: Lazy<HashSet<Block>> = + Lazy::new(|| HashSet::from_iter(vec![Block::Fire, Block::SoulFire])); +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 WART_BLOCKS: Lazy<HashSet<Block>> = + Lazy::new(|| HashSet::from_iter(vec![Block::NetherWartBlock, Block::WarpedWartBlock])); +pub static SOUL_SPEED_BLOCKS: Lazy<HashSet<Block>> = + Lazy::new(|| HashSet::from_iter(vec![Block::SoulSand, Block::SoulSoil])); pub static WALL_POST_OVERRIDE: Lazy<HashSet<Block>> = Lazy::new(|| { HashSet::from_iter(vec![ Block::Torch, @@ -2983,6 +1990,34 @@ pub static WALL_POST_OVERRIDE: Lazy<HashSet<Block>> = Lazy::new(|| { Block::PolishedBlackstonePressurePlate, ]) }); +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 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 HOGLIN_REPELLENTS: Lazy<HashSet<Block>> = Lazy::new(|| { HashSet::from_iter(vec![ Block::WarpedFungus, @@ -2991,54 +2026,157 @@ pub static HOGLIN_REPELLENTS: Lazy<HashSet<Block>> = Lazy::new(|| { Block::RespawnAnchor, ]) }); -pub static FLOWER_POTS: Lazy<HashSet<Block>> = Lazy::new(|| { +pub static PIGLIN_REPELLENTS: 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, + Block::SoulFire, + Block::SoulTorch, + Block::SoulLantern, + Block::SoulWallTorch, + Block::SoulCampfire, ]) }); -pub static JUNGLE_LOGS: Lazy<HashSet<Block>> = Lazy::new(|| { +pub static GOLD_ORES: Lazy<HashSet<Block>> = Lazy::new(|| { HashSet::from_iter(vec![ - Block::JungleLog, - Block::JungleWood, - Block::StrippedJungleLog, - Block::StrippedJungleWood, + Block::GoldOre, + Block::NetherGoldOre, + Block::DeepslateGoldOre, ]) }); -pub static DRIPSTONE_REPLACEABLE_BLOCKS: Lazy<HashSet<Block>> = Lazy::new(|| { +pub static IRON_ORES: Lazy<HashSet<Block>> = + Lazy::new(|| HashSet::from_iter(vec![Block::IronOre, Block::DeepslateIronOre])); +pub static DIAMOND_ORES: Lazy<HashSet<Block>> = + Lazy::new(|| HashSet::from_iter(vec![Block::DiamondOre, Block::DeepslateDiamondOre])); +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 COAL_ORES: Lazy<HashSet<Block>> = + Lazy::new(|| HashSet::from_iter(vec![Block::CoalOre, Block::DeepslateCoalOre])); +pub static REDSTONE_ORES: Lazy<HashSet<Block>> = + Lazy::new(|| HashSet::from_iter(vec![Block::RedstoneOre, Block::DeepslateRedstoneOre])); +pub static EMERALD_ORES: Lazy<HashSet<Block>> = + Lazy::new(|| HashSet::from_iter(vec![Block::EmeraldOre, Block::DeepslateEmeraldOre])); +pub static COPPER_ORES: Lazy<HashSet<Block>> = + Lazy::new(|| HashSet::from_iter(vec![Block::CopperOre, Block::DeepslateCopperOre])); +pub static LAPIS_ORES: Lazy<HashSet<Block>> = + Lazy::new(|| HashSet::from_iter(vec![Block::LapisOre, Block::DeepslateLapisOre])); +pub static SOUL_FIRE_BASE_BLOCKS: Lazy<HashSet<Block>> = + Lazy::new(|| HashSet::from_iter(vec![Block::SoulSand, Block::SoulSoil])); +pub static STRIDER_WARM_BLOCKS: Lazy<HashSet<Block>> = + Lazy::new(|| HashSet::from_iter(vec![Block::Lava])); +pub static CAMPFIRES: Lazy<HashSet<Block>> = + Lazy::new(|| HashSet::from_iter(vec![Block::Campfire, Block::SoulCampfire])); +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 PREVENT_MOB_SPAWNING_INSIDE: Lazy<HashSet<Block>> = Lazy::new(|| { + HashSet::from_iter(vec![ + Block::Rail, + Block::PoweredRail, + Block::DetectorRail, + Block::ActivatorRail, + ]) +}); +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 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 MUSHROOM_GROW_BLOCK: Lazy<HashSet<Block>> = Lazy::new(|| { + HashSet::from_iter(vec![ + Block::Mycelium, + Block::Podzol, + Block::CrimsonNylium, + Block::WarpedNylium, + ]) +}); +pub static INFINIBURN_OVERWORLD: Lazy<HashSet<Block>> = + Lazy::new(|| HashSet::from_iter(vec![Block::Netherrack, Block::MagmaBlock])); +pub static INFINIBURN_NETHER: Lazy<HashSet<Block>> = + Lazy::new(|| HashSet::from_iter(vec![Block::Netherrack, Block::MagmaBlock])); +pub static INFINIBURN_END: Lazy<HashSet<Block>> = + Lazy::new(|| HashSet::from_iter(vec![Block::Bedrock, Block::Netherrack, Block::MagmaBlock])); +pub static STONE_ORE_REPLACEABLES: Lazy<HashSet<Block>> = Lazy::new(|| { + HashSet::from_iter(vec![ + Block::Stone, + Block::Granite, + Block::Diorite, + Block::Andesite, + ]) +}); +pub static DEEPSLATE_ORE_REPLACEABLES: Lazy<HashSet<Block>> = + Lazy::new(|| HashSet::from_iter(vec![Block::Deepslate, Block::Tuff])); +pub static BASE_STONE_OVERWORLD: Lazy<HashSet<Block>> = Lazy::new(|| { HashSet::from_iter(vec![ Block::Stone, Block::Granite, @@ -3048,65 +2186,90 @@ pub static DRIPSTONE_REPLACEABLE_BLOCKS: Lazy<HashSet<Block>> = Lazy::new(|| { Block::Deepslate, ]) }); -pub static SNOW: Lazy<HashSet<Block>> = - Lazy::new(|| HashSet::from_iter(vec![Block::Snow, Block::SnowBlock, Block::PowderSnow])); -pub static TRAPDOORS: Lazy<HashSet<Block>> = Lazy::new(|| { +pub static CANDLES: Lazy<HashSet<Block>> = 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, + 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 AXOLOTLS_SPAWNABLE_ON: Lazy<HashSet<Block>> = - Lazy::new(|| HashSet::from_iter(vec![Block::Clay])); -pub static TRAIL_RUINS_REPLACEABLE: Lazy<HashSet<Block>> = - Lazy::new(|| HashSet::from_iter(vec![Block::Gravel])); -pub static WARPED_STEMS: Lazy<HashSet<Block>> = Lazy::new(|| { +pub static STANDING_SIGNS: Lazy<HashSet<Block>> = Lazy::new(|| { HashSet::from_iter(vec![ - 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, ]) }); -pub static SNOW_LAYER_CAN_SURVIVE_ON: Lazy<HashSet<Block>> = - Lazy::new(|| HashSet::from_iter(vec![Block::HoneyBlock, Block::SoulSand, Block::Mud])); -pub static BASE_STONE_NETHER: Lazy<HashSet<Block>> = - Lazy::new(|| HashSet::from_iter(vec![Block::Netherrack, Block::Basalt, Block::Blackstone])); -pub static CAMPFIRES: Lazy<HashSet<Block>> = - Lazy::new(|| HashSet::from_iter(vec![Block::Campfire, Block::SoulCampfire])); -pub static IRON_ORES: Lazy<HashSet<Block>> = - Lazy::new(|| HashSet::from_iter(vec![Block::IronOre, Block::DeepslateIronOre])); -pub static RAILS: Lazy<HashSet<Block>> = Lazy::new(|| { +pub static WALL_SIGNS: Lazy<HashSet<Block>> = Lazy::new(|| { HashSet::from_iter(vec![ - Block::Rail, - Block::PoweredRail, - Block::DetectorRail, - Block::ActivatorRail, + Block::OakWallSign, + Block::SpruceWallSign, + Block::BirchWallSign, + Block::AcaciaWallSign, + Block::JungleWallSign, + Block::DarkOakWallSign, + Block::CrimsonWallSign, + Block::WarpedWallSign, + Block::MangroveWallSign, + Block::BambooWallSign, + Block::CherryWallSign, ]) }); -pub static PLANKS: Lazy<HashSet<Block>> = Lazy::new(|| { +pub static CANDLE_CAKES: 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, + 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<HashSet<Block>> = + Lazy::new(|| HashSet::from_iter(vec![Block::AmethystBlock, Block::BuddingAmethyst])); +pub static SMELTS_TO_GLASS: Lazy<HashSet<Block>> = + Lazy::new(|| HashSet::from_iter(vec![Block::Sand, Block::RedSand])); +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 COMBINATION_STEP_SOUND_BLOCKS: Lazy<HashSet<Block>> = Lazy::new(|| { @@ -3134,20 +2297,75 @@ pub static COMBINATION_STEP_SOUND_BLOCKS: Lazy<HashSet<Block>> = Lazy::new(|| { Block::BlackCarpet, ]) }); -pub static SCULK_REPLACEABLE: Lazy<HashSet<Block>> = Lazy::new(|| { +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 BASE_STONE_NETHER: Lazy<HashSet<Block>> = + Lazy::new(|| HashSet::from_iter(vec![Block::Netherrack, Block::Basalt, Block::Blackstone])); +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 CAVE_VINES: Lazy<HashSet<Block>> = + Lazy::new(|| HashSet::from_iter(vec![Block::CaveVinesPlant, Block::CaveVines])); +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 SMALL_DRIPLEAF_PLACEABLE: Lazy<HashSet<Block>> = + Lazy::new(|| HashSet::from_iter(vec![Block::Clay, Block::MossBlock])); +pub static AZALEA_ROOT_REPLACEABLE: Lazy<HashSet<Block>> = Lazy::new(|| { + HashSet::from_iter(vec![ Block::RedSand, - Block::Gravel, - Block::SoulSand, - Block::SoulSoil, - Block::Calcite, - Block::SmoothBasalt, Block::Clay, - Block::DripstoneBlock, - Block::EndStone, - Block::RedSandstone, - Block::Sandstone, + Block::Gravel, + Block::Sand, + Block::SnowBlock, + Block::PowderSnow, Block::Stone, Block::Granite, Block::Diorite, @@ -3180,25 +2398,13 @@ pub static SCULK_REPLACEABLE: Lazy<HashSet<Block>> = Lazy::new(|| { Block::GreenTerracotta, Block::RedTerracotta, Block::BlackTerracotta, - Block::CrimsonNylium, - Block::WarpedNylium, - Block::Netherrack, - Block::Basalt, - Block::Blackstone, ]) }); -pub static BAMBOO_BLOCKS: Lazy<HashSet<Block>> = - Lazy::new(|| HashSet::from_iter(vec![Block::BambooBlock, Block::StrippedBambooBlock])); -pub static MOSS_REPLACEABLE: Lazy<HashSet<Block>> = Lazy::new(|| { +pub static BIG_DRIPLEAF_PLACEABLE: 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::Farmland, + Block::Clay, + Block::MossBlock, Block::Dirt, Block::GrassBlock, Block::Podzol, @@ -3210,36 +2416,27 @@ pub static MOSS_REPLACEABLE: Lazy<HashSet<Block>> = Lazy::new(|| { Block::MuddyMangroveRoots, ]) }); -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 SPRUCE_LOGS: Lazy<HashSet<Block>> = Lazy::new(|| { +pub static OCCLUDES_VIBRATION_SIGNALS: Lazy<HashSet<Block>> = Lazy::new(|| { HashSet::from_iter(vec![ - Block::SpruceLog, - Block::SpruceWood, - Block::StrippedSpruceLog, - Block::StrippedSpruceWood, + 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 OCCLUDES_VIBRATION_SIGNALS: Lazy<HashSet<Block>> = Lazy::new(|| { +pub static DAMPENS_VIBRATIONS: Lazy<HashSet<Block>> = Lazy::new(|| { HashSet::from_iter(vec![ Block::WhiteWool, Block::OrangeWool, @@ -3257,16 +2454,617 @@ pub static OCCLUDES_VIBRATION_SIGNALS: Lazy<HashSet<Block>> = Lazy::new(|| { 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 AZALEA_ROOT_REPLACEABLE: Lazy<HashSet<Block>> = Lazy::new(|| { +pub static SNOW: Lazy<HashSet<Block>> = + Lazy::new(|| HashSet::from_iter(vec![Block::Snow, Block::SnowBlock, Block::PowderSnow])); +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 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 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 INCORRECT_FOR_NETHERITE_TOOL: Lazy<HashSet<Block>> = + Lazy::new(|| HashSet::from_iter(vec![])); +pub static CAULDRONS: Lazy<HashSet<Block>> = Lazy::new(|| { + HashSet::from_iter(vec![ + Block::Cauldron, + Block::WaterCauldron, + Block::LavaCauldron, + Block::PowderSnowCauldron, + ]) +}); +pub static INCORRECT_FOR_DIAMOND_TOOL: Lazy<HashSet<Block>> = + Lazy::new(|| HashSet::from_iter(vec![])); +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_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_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, + ]) +}); +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, + ]) +}); +pub static FEATURES_CANNOT_REPLACE: Lazy<HashSet<Block>> = Lazy::new(|| { + HashSet::from_iter(vec![ + Block::Bedrock, + Block::Spawner, + Block::Chest, + Block::EndPortalFrame, + Block::ReinforcedDeepslate, + ]) +}); +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::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 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 ANIMALS_SPAWNABLE_ON: Lazy<HashSet<Block>> = + Lazy::new(|| HashSet::from_iter(vec![Block::GrassBlock])); +pub static ARMADILLO_SPAWNABLE_ON: Lazy<HashSet<Block>> = Lazy::new(|| { HashSet::from_iter(vec![ Block::RedSand, - Block::Clay, + 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 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 MOOSHROOMS_SPAWNABLE_ON: Lazy<HashSet<Block>> = + Lazy::new(|| HashSet::from_iter(vec![Block::Mycelium])); +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 POLAR_BEARS_SPAWNABLE_ON_ALTERNATE: Lazy<HashSet<Block>> = + Lazy::new(|| HashSet::from_iter(vec![Block::Ice])); +pub static RABBITS_SPAWNABLE_ON: Lazy<HashSet<Block>> = Lazy::new(|| { + HashSet::from_iter(vec![ + Block::GrassBlock, + Block::Snow, + Block::SnowBlock, Block::Sand, + ]) +}); +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 WOLVES_SPAWNABLE_ON: Lazy<HashSet<Block>> = Lazy::new(|| { + HashSet::from_iter(vec![ + Block::GrassBlock, + Block::Snow, + Block::SnowBlock, + Block::CoarseDirt, + Block::Podzol, + ]) +}); +pub static FROGS_SPAWNABLE_ON: Lazy<HashSet<Block>> = Lazy::new(|| { + HashSet::from_iter(vec![ + Block::GrassBlock, + Block::Mud, + Block::MangroveRoots, + Block::MuddyMangroveRoots, + ]) +}); +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 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 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 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 FROG_PREFER_JUMP_TO: Lazy<HashSet<Block>> = + Lazy::new(|| HashSet::from_iter(vec![Block::LilyPad, Block::BigDripleaf])); +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, @@ -3299,32 +3097,174 @@ pub static AZALEA_ROOT_REPLACEABLE: Lazy<HashSet<Block>> = Lazy::new(|| { Block::GreenTerracotta, Block::RedTerracotta, Block::BlackTerracotta, + Block::CrimsonNylium, + Block::WarpedNylium, + Block::Netherrack, + Block::Basalt, + Block::Blackstone, ]) }); -pub static RABBITS_SPAWNABLE_ON: Lazy<HashSet<Block>> = Lazy::new(|| { +pub static SCULK_REPLACEABLE_WORLD_GEN: Lazy<HashSet<Block>> = Lazy::new(|| { HashSet::from_iter(vec![ - Block::GrassBlock, - Block::Snow, - Block::SnowBlock, + 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 SAPLINGS: Lazy<HashSet<Block>> = Lazy::new(|| { +pub static CONVERTABLE_TO_MUD: Lazy<HashSet<Block>> = + Lazy::new(|| HashSet::from_iter(vec![Block::Dirt, Block::CoarseDirt, Block::RootedDirt])); +pub static VIBRATION_RESONATORS: Lazy<HashSet<Block>> = + Lazy::new(|| HashSet::from_iter(vec![Block::AmethystBlock])); +pub static ANCIENT_CITY_REPLACEABLE: 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::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 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::CherrySapling, + Block::MossCarpet, + Block::Vine, ]) }); -pub static LEAVES: Lazy<HashSet<Block>> = Lazy::new(|| { +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 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 SNOW_LAYER_CANNOT_SURVIVE_ON: Lazy<HashSet<Block>> = + Lazy::new(|| HashSet::from_iter(vec![Block::Ice, Block::PackedIce, Block::Barrier])); +pub static SNOW_LAYER_CAN_SURVIVE_ON: Lazy<HashSet<Block>> = + Lazy::new(|| HashSet::from_iter(vec![Block::HoneyBlock, Block::SoulSand, Block::Mud])); +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, @@ -3337,26 +3277,156 @@ pub static LEAVES: Lazy<HashSet<Block>> = Lazy::new(|| { Block::CherryLeaves, ]) }); -pub static STONE_BUTTONS: Lazy<HashSet<Block>> = - Lazy::new(|| HashSet::from_iter(vec![Block::StoneButton, Block::PolishedBlackstoneButton])); -pub static REDSTONE_ORES: Lazy<HashSet<Block>> = - Lazy::new(|| HashSet::from_iter(vec![Block::RedstoneOre, Block::DeepslateRedstoneOre])); -pub static CRIMSON_STEMS: Lazy<HashSet<Block>> = Lazy::new(|| { +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 FROGS_SPAWNABLE_ON: Lazy<HashSet<Block>> = Lazy::new(|| { +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 TRAIL_RUINS_REPLACEABLE: Lazy<HashSet<Block>> = + Lazy::new(|| HashSet::from_iter(vec![Block::Gravel])); +pub static INVALID_SPAWN_INSIDE: Lazy<HashSet<Block>> = + Lazy::new(|| HashSet::from_iter(vec![Block::EndPortal, Block::EndGateway])); +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::MangroveRoots, Block::MuddyMangroveRoots, ]) }); +pub static SNIFFER_EGG_HATCH_BOOST: Lazy<HashSet<Block>> = + Lazy::new(|| HashSet::from_iter(vec![Block::MossBlock])); +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 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 MAINTAINS_FARMLAND: Lazy<HashSet<Block>> = Lazy::new(|| { HashSet::from_iter(vec![ Block::PumpkinStem, @@ -3372,49 +3442,175 @@ pub static MAINTAINS_FARMLAND: Lazy<HashSet<Block>> = Lazy::new(|| { Block::Wheat, ]) }); -pub static CROPS: Lazy<HashSet<Block>> = Lazy::new(|| { +pub static CAMEL_SAND_STEP_SOUND_BLOCKS: 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, + 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 WALLS: Lazy<HashSet<Block>> = Lazy::new(|| { +pub static DOES_NOT_BLOCK_HOPPERS: Lazy<HashSet<Block>> = + Lazy::new(|| HashSet::from_iter(vec![Block::BeeNest, Block::Beehive])); +pub static NEEDS_STONE_TOOL: 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::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 STONE_PRESSURE_PLATES: Lazy<HashSet<Block>> = Lazy::new(|| { +pub static OVERWORLD_CARVER_REPLACEABLES: Lazy<HashSet<Block>> = Lazy::new(|| { HashSet::from_iter(vec![ - Block::StonePressurePlate, - Block::PolishedBlackstonePressurePlate, + 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 NYLIUM: Lazy<HashSet<Block>> = + Lazy::new(|| HashSet::from_iter(vec![Block::CrimsonNylium, Block::WarpedNylium])); +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 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 VIBRATION_RESONATORS: Lazy<HashSet<Block>> = - Lazy::new(|| HashSet::from_iter(vec![Block::AmethystBlock])); diff --git a/azalea-registry/src/tags/fluids.rs b/azalea-registry/src/tags/fluids.rs index 4f177f95..c29c9eba 100644 --- a/azalea-registry/src/tags/fluids.rs +++ b/azalea-registry/src/tags/fluids.rs @@ -6,7 +6,7 @@ use once_cell::sync::Lazy; use crate::Fluid; -pub static LAVA: Lazy<HashSet<Fluid>> = - Lazy::new(|| HashSet::from_iter(vec![Fluid::Lava, Fluid::FlowingLava])); pub static WATER: Lazy<HashSet<Fluid>> = Lazy::new(|| HashSet::from_iter(vec![Fluid::Water, Fluid::FlowingWater])); +pub static LAVA: Lazy<HashSet<Fluid>> = + Lazy::new(|| HashSet::from_iter(vec![Fluid::Lava, Fluid::FlowingLava])); diff --git a/azalea-registry/src/tags/items.rs b/azalea-registry/src/tags/items.rs index 6d5d3755..71cf247c 100644 --- a/azalea-registry/src/tags/items.rs +++ b/azalea-registry/src/tags/items.rs @@ -6,136 +6,714 @@ use once_cell::sync::Lazy; use crate::Item; -pub static WOODEN_FENCES: Lazy<HashSet<Item>> = Lazy::new(|| { +pub static ENCHANTABLE_FOOT_ARMOR: Lazy<HashSet<Item>> = Lazy::new(|| { HashSet::from_iter(vec![ - Item::OakFence, - Item::AcaciaFence, - Item::DarkOakFence, - Item::SpruceFence, - Item::BirchFence, - Item::JungleFence, - Item::CrimsonFence, - Item::WarpedFence, - Item::MangroveFence, - Item::BambooFence, - Item::CherryFence, + Item::LeatherBoots, + Item::ChainmailBoots, + Item::GoldenBoots, + Item::IronBoots, + Item::DiamondBoots, + Item::NetheriteBoots, ]) }); -pub static ACACIA_LOGS: Lazy<HashSet<Item>> = Lazy::new(|| { +pub static ENCHANTABLE_LEG_ARMOR: Lazy<HashSet<Item>> = Lazy::new(|| { HashSet::from_iter(vec![ - Item::AcaciaLog, - Item::AcaciaWood, - Item::StrippedAcaciaLog, - Item::StrippedAcaciaWood, + Item::LeatherLeggings, + Item::ChainmailLeggings, + Item::GoldenLeggings, + Item::IronLeggings, + Item::DiamondLeggings, + Item::NetheriteLeggings, ]) }); -pub static CREEPER_IGNITERS: Lazy<HashSet<Item>> = - Lazy::new(|| HashSet::from_iter(vec![Item::FlintAndSteel, Item::FireCharge])); -pub static WOODEN_SLABS: Lazy<HashSet<Item>> = Lazy::new(|| { +pub static ENCHANTABLE_CHEST_ARMOR: Lazy<HashSet<Item>> = Lazy::new(|| { HashSet::from_iter(vec![ - Item::OakSlab, - Item::SpruceSlab, - Item::BirchSlab, - Item::JungleSlab, - Item::AcaciaSlab, - Item::DarkOakSlab, - Item::CrimsonSlab, - Item::WarpedSlab, - Item::MangroveSlab, - Item::BambooSlab, - Item::CherrySlab, + Item::LeatherChestplate, + Item::ChainmailChestplate, + Item::GoldenChestplate, + Item::IronChestplate, + Item::DiamondChestplate, + Item::NetheriteChestplate, ]) }); -pub static WOODEN_STAIRS: Lazy<HashSet<Item>> = Lazy::new(|| { +pub static ENCHANTABLE_HEAD_ARMOR: Lazy<HashSet<Item>> = Lazy::new(|| { HashSet::from_iter(vec![ - Item::OakStairs, - Item::SpruceStairs, - Item::BirchStairs, - Item::JungleStairs, - Item::AcaciaStairs, - Item::DarkOakStairs, - Item::CrimsonStairs, - Item::WarpedStairs, - Item::MangroveStairs, - Item::BambooStairs, - Item::CherryStairs, + Item::LeatherHelmet, + Item::ChainmailHelmet, + Item::GoldenHelmet, + Item::IronHelmet, + Item::DiamondHelmet, + Item::NetheriteHelmet, + Item::TurtleHelmet, ]) }); -pub static MANGROVE_LOGS: Lazy<HashSet<Item>> = Lazy::new(|| { +pub static ENCHANTABLE_ARMOR: Lazy<HashSet<Item>> = Lazy::new(|| { HashSet::from_iter(vec![ - Item::MangroveLog, - Item::MangroveWood, - Item::StrippedMangroveLog, - Item::StrippedMangroveWood, + 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 SHOVELS: Lazy<HashSet<Item>> = Lazy::new(|| { +pub static ENCHANTABLE_SWORD: Lazy<HashSet<Item>> = Lazy::new(|| { + HashSet::from_iter(vec![ + Item::DiamondSword, + Item::StoneSword, + Item::GoldenSword, + Item::NetheriteSword, + Item::WoodenSword, + Item::IronSword, + ]) +}); +pub static ENCHANTABLE_FIRE_ASPECT: Lazy<HashSet<Item>> = Lazy::new(|| { + HashSet::from_iter(vec![ + Item::DiamondSword, + Item::StoneSword, + Item::GoldenSword, + Item::NetheriteSword, + Item::WoodenSword, + Item::IronSword, + ]) +}); +pub static ENCHANTABLE_MINING: Lazy<HashSet<Item>> = Lazy::new(|| { HashSet::from_iter(vec![ + Item::Shears, + 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 DARK_OAK_LOGS: Lazy<HashSet<Item>> = Lazy::new(|| { +pub static ENCHANTABLE_FISHING: Lazy<HashSet<Item>> = + Lazy::new(|| HashSet::from_iter(vec![Item::FishingRod])); +pub static ENCHANTABLE_SHARP_WEAPON: Lazy<HashSet<Item>> = Lazy::new(|| { HashSet::from_iter(vec![ - Item::DarkOakLog, - Item::DarkOakWood, - Item::StrippedDarkOakLog, - Item::StrippedDarkOakWood, + 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 EMERALD_ORES: Lazy<HashSet<Item>> = - Lazy::new(|| HashSet::from_iter(vec![Item::EmeraldOre, Item::DeepslateEmeraldOre])); -pub static TALL_FLOWERS: Lazy<HashSet<Item>> = Lazy::new(|| { +pub static ENCHANTABLE_WEAPON: Lazy<HashSet<Item>> = Lazy::new(|| { HashSet::from_iter(vec![ - Item::Sunflower, - Item::Lilac, - Item::Peony, - Item::RoseBush, - Item::PitcherPlant, + 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 DOORS: Lazy<HashSet<Item>> = Lazy::new(|| { +pub static ENCHANTABLE_TRIDENT: Lazy<HashSet<Item>> = + Lazy::new(|| HashSet::from_iter(vec![Item::Trident])); +pub static ENCHANTABLE_DURABILITY: Lazy<HashSet<Item>> = Lazy::new(|| { HashSet::from_iter(vec![ - Item::IronDoor, - Item::OakDoor, - Item::SpruceDoor, - Item::BirchDoor, - Item::JungleDoor, - Item::AcaciaDoor, - Item::DarkOakDoor, + Item::Elytra, + Item::Shield, + Item::Bow, + Item::Crossbow, + Item::Trident, + Item::FlintAndSteel, + Item::Shears, + Item::Brush, + Item::FishingRod, + Item::CarrotOnAStick, + Item::WarpedFungusOnAStick, + 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::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<HashSet<Item>> = Lazy::new(|| HashSet::from_iter(vec![Item::Bow])); +pub static ENCHANTABLE_CROSSBOW: Lazy<HashSet<Item>> = + Lazy::new(|| HashSet::from_iter(vec![Item::Crossbow])); +pub static ENCHANTABLE_EQUIPPABLE: Lazy<HashSet<Item>> = 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_VANISHING: Lazy<HashSet<Item>> = Lazy::new(|| { + HashSet::from_iter(vec![ + Item::Compass, + Item::CarvedPumpkin, + Item::Elytra, + Item::Shield, + Item::Bow, + Item::Crossbow, + Item::Trident, + Item::FlintAndSteel, + Item::Shears, + Item::Brush, + Item::FishingRod, + Item::CarrotOnAStick, + Item::WarpedFungusOnAStick, + Item::PlayerHead, + Item::CreeperHead, + Item::ZombieHead, + Item::SkeletonSkull, + Item::WitherSkeletonSkull, + Item::DragonHead, + Item::PiglinHead, + 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::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_MINING_LOOT: Lazy<HashSet<Item>> = 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 BANNERS: Lazy<HashSet<Item>> = 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, + ]) +}); +pub static FISHES: Lazy<HashSet<Item>> = Lazy::new(|| { + HashSet::from_iter(vec![ + Item::Cod, + Item::CookedCod, + Item::Salmon, + Item::CookedSalmon, + Item::Pufferfish, + Item::TropicalFish, + ]) +}); +pub static CHEST_BOATS: Lazy<HashSet<Item>> = 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 BOATS: Lazy<HashSet<Item>> = 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 CREEPER_DROP_MUSIC_DISCS: Lazy<HashSet<Item>> = 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, + ]) +}); +pub static MUSIC_DISCS: Lazy<HashSet<Item>> = Lazy::new(|| { + HashSet::from_iter(vec![ + Item::MusicDiscPigstep, + Item::MusicDiscOtherside, + Item::MusicDisc5, + Item::MusicDiscRelic, + 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 COALS: Lazy<HashSet<Item>> = + Lazy::new(|| HashSet::from_iter(vec![Item::Coal, Item::Charcoal])); +pub static ARROWS: Lazy<HashSet<Item>> = + Lazy::new(|| HashSet::from_iter(vec![Item::Arrow, Item::TippedArrow, Item::SpectralArrow])); +pub static LECTERN_BOOKS: Lazy<HashSet<Item>> = + Lazy::new(|| HashSet::from_iter(vec![Item::WrittenBook, Item::WritableBook])); +pub static BEACON_PAYMENT_ITEMS: Lazy<HashSet<Item>> = Lazy::new(|| { + HashSet::from_iter(vec![ + Item::NetheriteIngot, + Item::Emerald, + Item::Diamond, + Item::GoldIngot, + Item::IronIngot, + ]) +}); +pub static PIGLIN_REPELLENTS: Lazy<HashSet<Item>> = + Lazy::new(|| HashSet::from_iter(vec![Item::SoulTorch, Item::SoulLantern, Item::SoulCampfire])); +pub static IGNORED_BY_PIGLIN_BABIES: Lazy<HashSet<Item>> = + Lazy::new(|| HashSet::from_iter(vec![Item::Leather])); +pub static PIGLIN_LOVED: Lazy<HashSet<Item>> = 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<HashSet<Item>> = + Lazy::new(|| HashSet::from_iter(vec![Item::Porkchop, Item::CookedPorkchop])); +pub static FOX_FOOD: Lazy<HashSet<Item>> = + Lazy::new(|| HashSet::from_iter(vec![Item::SweetBerries, Item::GlowBerries])); +pub static STONE_TOOL_MATERIALS: Lazy<HashSet<Item>> = Lazy::new(|| { + HashSet::from_iter(vec![ + Item::Cobblestone, + Item::Blackstone, + Item::CobbledDeepslate, + ]) +}); +pub static NON_FLAMMABLE_WOOD: Lazy<HashSet<Item>> = 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::MangroveDoor, - Item::BambooDoor, - Item::CherryDoor, + Item::CrimsonSign, + Item::WarpedSign, + Item::WarpedHangingSign, + Item::CrimsonHangingSign, ]) }); -pub static BEDS: Lazy<HashSet<Item>> = Lazy::new(|| { +pub static STONE_CRAFTING_MATERIALS: Lazy<HashSet<Item>> = 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::Cobblestone, + Item::Blackstone, + Item::CobbledDeepslate, + ]) +}); +pub static FREEZE_IMMUNE_WEARABLES: Lazy<HashSet<Item>> = Lazy::new(|| { + HashSet::from_iter(vec![ + Item::LeatherBoots, + Item::LeatherLeggings, + Item::LeatherChestplate, + Item::LeatherHelmet, + Item::LeatherHorseArmor, + ]) +}); +pub static AXOLOTL_FOOD: Lazy<HashSet<Item>> = + Lazy::new(|| HashSet::from_iter(vec![Item::TropicalFishBucket])); +pub static CLUSTER_MAX_HARVESTABLES: Lazy<HashSet<Item>> = Lazy::new(|| { + HashSet::from_iter(vec![ + Item::DiamondPickaxe, + Item::GoldenPickaxe, + Item::IronPickaxe, + Item::NetheritePickaxe, + Item::StonePickaxe, + Item::WoodenPickaxe, ]) }); pub static COMPASSES: Lazy<HashSet<Item>> = Lazy::new(|| HashSet::from_iter(vec![Item::Compass, Item::RecoveryCompass])); +pub static CREEPER_IGNITERS: Lazy<HashSet<Item>> = + Lazy::new(|| HashSet::from_iter(vec![Item::FlintAndSteel, Item::FireCharge])); +pub static SWORDS: Lazy<HashSet<Item>> = Lazy::new(|| { + HashSet::from_iter(vec![ + Item::DiamondSword, + Item::StoneSword, + Item::GoldenSword, + Item::NetheriteSword, + Item::WoodenSword, + Item::IronSword, + ]) +}); +pub static AXES: Lazy<HashSet<Item>> = Lazy::new(|| { + HashSet::from_iter(vec![ + Item::DiamondAxe, + Item::StoneAxe, + Item::GoldenAxe, + Item::NetheriteAxe, + Item::WoodenAxe, + Item::IronAxe, + ]) +}); +pub static PICKAXES: Lazy<HashSet<Item>> = Lazy::new(|| { + HashSet::from_iter(vec![ + Item::DiamondPickaxe, + Item::StonePickaxe, + Item::GoldenPickaxe, + Item::NetheritePickaxe, + Item::WoodenPickaxe, + Item::IronPickaxe, + ]) +}); +pub static SHOVELS: Lazy<HashSet<Item>> = Lazy::new(|| { + HashSet::from_iter(vec![ + Item::DiamondShovel, + Item::StoneShovel, + Item::GoldenShovel, + Item::NetheriteShovel, + Item::WoodenShovel, + Item::IronShovel, + ]) +}); +pub static HOES: Lazy<HashSet<Item>> = Lazy::new(|| { + HashSet::from_iter(vec![ + Item::DiamondHoe, + Item::StoneHoe, + Item::GoldenHoe, + Item::NetheriteHoe, + Item::WoodenHoe, + Item::IronHoe, + ]) +}); +pub static BREAKS_DECORATED_POTS: Lazy<HashSet<Item>> = 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, + ]) +}); +pub static DECORATED_POT_SHERDS: Lazy<HashSet<Item>> = 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<HashSet<Item>> = Lazy::new(|| { HashSet::from_iter(vec![ Item::Brick, @@ -161,8 +739,101 @@ pub static DECORATED_POT_INGREDIENTS: Lazy<HashSet<Item>> = Lazy::new(|| { Item::SnortPotterySherd, ]) }); -pub static COPPER_ORES: Lazy<HashSet<Item>> = - Lazy::new(|| HashSet::from_iter(vec![Item::CopperOre, Item::DeepslateCopperOre])); +pub static FOOT_ARMOR: Lazy<HashSet<Item>> = Lazy::new(|| { + HashSet::from_iter(vec![ + Item::LeatherBoots, + Item::ChainmailBoots, + Item::GoldenBoots, + Item::IronBoots, + Item::DiamondBoots, + Item::NetheriteBoots, + ]) +}); +pub static LEG_ARMOR: Lazy<HashSet<Item>> = Lazy::new(|| { + HashSet::from_iter(vec![ + Item::LeatherLeggings, + Item::ChainmailLeggings, + Item::GoldenLeggings, + Item::IronLeggings, + Item::DiamondLeggings, + Item::NetheriteLeggings, + ]) +}); +pub static CHEST_ARMOR: Lazy<HashSet<Item>> = Lazy::new(|| { + HashSet::from_iter(vec![ + Item::LeatherChestplate, + Item::ChainmailChestplate, + Item::GoldenChestplate, + Item::IronChestplate, + Item::DiamondChestplate, + Item::NetheriteChestplate, + ]) +}); +pub static HEAD_ARMOR: Lazy<HashSet<Item>> = Lazy::new(|| { + HashSet::from_iter(vec![ + Item::LeatherHelmet, + Item::ChainmailHelmet, + Item::GoldenHelmet, + Item::IronHelmet, + Item::DiamondHelmet, + Item::NetheriteHelmet, + Item::TurtleHelmet, + ]) +}); +pub static SKULLS: Lazy<HashSet<Item>> = Lazy::new(|| { + HashSet::from_iter(vec![ + Item::PlayerHead, + Item::CreeperHead, + Item::ZombieHead, + Item::SkeletonSkull, + Item::WitherSkeletonSkull, + Item::DragonHead, + Item::PiglinHead, + ]) +}); +pub static TRIMMABLE_ARMOR: Lazy<HashSet<Item>> = 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, + ]) +}); +pub static TRIM_MATERIALS: Lazy<HashSet<Item>> = Lazy::new(|| { + HashSet::from_iter(vec![ + Item::IronIngot, + Item::CopperIngot, + Item::GoldIngot, + Item::LapisLazuli, + Item::Emerald, + Item::Diamond, + Item::NetheriteIngot, + Item::Redstone, + Item::Quartz, + Item::AmethystShard, + ]) +}); pub static TRIM_TEMPLATES: Lazy<HashSet<Item>> = Lazy::new(|| { HashSet::from_iter(vec![ Item::WardArmorTrimSmithingTemplate, @@ -183,19 +854,13 @@ pub static TRIM_TEMPLATES: Lazy<HashSet<Item>> = Lazy::new(|| { Item::HostArmorTrimSmithingTemplate, ]) }); -pub static WOODEN_PRESSURE_PLATES: Lazy<HashSet<Item>> = Lazy::new(|| { +pub static BOOKSHELF_BOOKS: Lazy<HashSet<Item>> = 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, + Item::Book, + Item::WrittenBook, + Item::EnchantedBook, + Item::WritableBook, + Item::KnowledgeBook, ]) }); pub static NOTEBLOCK_TOP_INSTRUMENTS: Lazy<HashSet<Item>> = Lazy::new(|| { @@ -209,51 +874,151 @@ pub static NOTEBLOCK_TOP_INSTRUMENTS: Lazy<HashSet<Item>> = Lazy::new(|| { Item::PlayerHead, ]) }); -pub static BREAKS_DECORATED_POTS: Lazy<HashSet<Item>> = Lazy::new(|| { +pub static SNIFFER_FOOD: Lazy<HashSet<Item>> = + Lazy::new(|| HashSet::from_iter(vec![Item::TorchflowerSeeds])); +pub static VILLAGER_PLANTABLE_SEEDS: Lazy<HashSet<Item>> = 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::WheatSeeds, + Item::Potato, + Item::Carrot, + Item::BeetrootSeeds, + Item::TorchflowerSeeds, + Item::PitcherPod, ]) }); -pub static SAND: Lazy<HashSet<Item>> = Lazy::new(|| { +pub static DYEABLE: Lazy<HashSet<Item>> = Lazy::new(|| { HashSet::from_iter(vec![ - Item::Sand, - Item::RedSand, - Item::SuspiciousSand, - Item::SuspiciousSand, + Item::LeatherHelmet, + Item::LeatherChestplate, + Item::LeatherLeggings, + Item::LeatherBoots, + Item::LeatherHorseArmor, + Item::WolfArmor, + ]) +}); +pub static MEAT: Lazy<HashSet<Item>> = 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 CAMEL_FOOD: Lazy<HashSet<Item>> = Lazy::new(|| HashSet::from_iter(vec![Item::Cactus])); +pub static ARMADILLO_FOOD: Lazy<HashSet<Item>> = + Lazy::new(|| HashSet::from_iter(vec![Item::SpiderEye])); +pub static WOLF_FOOD: Lazy<HashSet<Item>> = 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<HashSet<Item>> = + Lazy::new(|| HashSet::from_iter(vec![Item::Wheat, Item::HayBlock])); +pub static OCELOT_FOOD: Lazy<HashSet<Item>> = + Lazy::new(|| HashSet::from_iter(vec![Item::Cod, Item::Salmon])); +pub static LLAMA_TEMPT_ITEMS: Lazy<HashSet<Item>> = + Lazy::new(|| HashSet::from_iter(vec![Item::HayBlock])); +pub static PANDA_FOOD: Lazy<HashSet<Item>> = Lazy::new(|| HashSet::from_iter(vec![Item::Bamboo])); +pub static PIG_FOOD: Lazy<HashSet<Item>> = + Lazy::new(|| HashSet::from_iter(vec![Item::Carrot, Item::Potato, Item::Beetroot])); +pub static RABBIT_FOOD: Lazy<HashSet<Item>> = + Lazy::new(|| HashSet::from_iter(vec![Item::Carrot, Item::GoldenCarrot, Item::Dandelion])); +pub static STRIDER_FOOD: Lazy<HashSet<Item>> = + Lazy::new(|| HashSet::from_iter(vec![Item::WarpedFungus])); +pub static STRIDER_TEMPT_ITEMS: Lazy<HashSet<Item>> = + Lazy::new(|| HashSet::from_iter(vec![Item::WarpedFungusOnAStick, Item::WarpedFungus])); +pub static TURTLE_FOOD: Lazy<HashSet<Item>> = + Lazy::new(|| HashSet::from_iter(vec![Item::Seagrass])); +pub static PARROT_FOOD: Lazy<HashSet<Item>> = Lazy::new(|| { + HashSet::from_iter(vec![ + Item::WheatSeeds, + Item::MelonSeeds, + Item::PumpkinSeeds, + Item::BeetrootSeeds, + Item::TorchflowerSeeds, + Item::PitcherPod, ]) }); -pub static LOGS_THAT_BURN: Lazy<HashSet<Item>> = Lazy::new(|| { +pub static PARROT_POISONOUS_FOOD: Lazy<HashSet<Item>> = + Lazy::new(|| HashSet::from_iter(vec![Item::Cookie])); +pub static COW_FOOD: Lazy<HashSet<Item>> = Lazy::new(|| HashSet::from_iter(vec![Item::Wheat])); +pub static SHEEP_FOOD: Lazy<HashSet<Item>> = Lazy::new(|| HashSet::from_iter(vec![Item::Wheat])); +pub static GOAT_FOOD: Lazy<HashSet<Item>> = Lazy::new(|| HashSet::from_iter(vec![Item::Wheat])); +pub static FENCES: Lazy<HashSet<Item>> = Lazy::new(|| { HashSet::from_iter(vec![ + Item::NetherBrickFence, + Item::OakFence, + Item::AcaciaFence, + Item::DarkOakFence, + Item::SpruceFence, + Item::BirchFence, + Item::JungleFence, + Item::CrimsonFence, + Item::WarpedFence, + Item::MangroveFence, + Item::BambooFence, + Item::CherryFence, + ]) +}); +pub static CAT_FOOD: Lazy<HashSet<Item>> = + Lazy::new(|| HashSet::from_iter(vec![Item::Cod, Item::Salmon])); +pub static LEAVES: Lazy<HashSet<Item>> = 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 DIAMOND_ORES: Lazy<HashSet<Item>> = + Lazy::new(|| HashSet::from_iter(vec![Item::DiamondOre, Item::DeepslateDiamondOre])); +pub static IRON_ORES: Lazy<HashSet<Item>> = + Lazy::new(|| HashSet::from_iter(vec![Item::IronOre, Item::DeepslateIronOre])); +pub static COMPLETES_FIND_TREE_TUTORIAL: Lazy<HashSet<Item>> = 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::NetherWartBlock, + Item::WarpedWartBlock, + Item::CrimsonStem, + Item::StrippedCrimsonStem, + Item::CrimsonHyphae, + Item::StrippedCrimsonHyphae, + Item::WarpedStem, + Item::StrippedWarpedStem, + Item::WarpedHyphae, + Item::StrippedWarpedHyphae, Item::DarkOakLog, Item::DarkOakWood, Item::StrippedDarkOakLog, @@ -288,85 +1053,19 @@ pub static LOGS_THAT_BURN: Lazy<HashSet<Item>> = Lazy::new(|| { Item::StrippedCherryWood, ]) }); -pub static CHERRY_LOGS: Lazy<HashSet<Item>> = Lazy::new(|| { - HashSet::from_iter(vec![ - Item::CherryLog, - Item::CherryWood, - Item::StrippedCherryLog, - Item::StrippedCherryWood, - ]) -}); -pub static DAMPENS_VIBRATIONS: Lazy<HashSet<Item>> = 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, - ]) -}); -pub static DIAMOND_ORES: Lazy<HashSet<Item>> = - Lazy::new(|| HashSet::from_iter(vec![Item::DiamondOre, Item::DeepslateDiamondOre])); -pub static WOOL: Lazy<HashSet<Item>> = 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, - ]) -}); -pub static WOODEN_TRAPDOORS: Lazy<HashSet<Item>> = Lazy::new(|| { +pub static PLANKS: Lazy<HashSet<Item>> = Lazy::new(|| { HashSet::from_iter(vec![ - Item::AcaciaTrapdoor, - Item::BirchTrapdoor, - Item::DarkOakTrapdoor, - Item::JungleTrapdoor, - Item::OakTrapdoor, - Item::SpruceTrapdoor, - Item::CrimsonTrapdoor, - Item::WarpedTrapdoor, - Item::MangroveTrapdoor, - Item::BambooTrapdoor, - Item::CherryTrapdoor, + Item::OakPlanks, + Item::SprucePlanks, + Item::BirchPlanks, + Item::JunglePlanks, + Item::AcaciaPlanks, + Item::DarkOakPlanks, + Item::CrimsonPlanks, + Item::WarpedPlanks, + Item::MangrovePlanks, + Item::BambooPlanks, + Item::CherryPlanks, ]) }); pub static FLOWERS: Lazy<HashSet<Item>> = Lazy::new(|| { @@ -399,24 +1098,58 @@ pub static FLOWERS: Lazy<HashSet<Item>> = Lazy::new(|| { Item::PitcherPlant, ]) }); -pub static BANNERS: Lazy<HashSet<Item>> = Lazy::new(|| { +pub static TRAPDOORS: Lazy<HashSet<Item>> = 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::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 CHERRY_LOGS: Lazy<HashSet<Item>> = Lazy::new(|| { + HashSet::from_iter(vec![ + Item::CherryLog, + Item::CherryWood, + Item::StrippedCherryLog, + Item::StrippedCherryWood, + ]) +}); +pub static STONE_BUTTONS: Lazy<HashSet<Item>> = + Lazy::new(|| HashSet::from_iter(vec![Item::StoneButton, Item::PolishedBlackstoneButton])); +pub static BUTTONS: Lazy<HashSet<Item>> = 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<HashSet<Item>> = Lazy::new(|| { + HashSet::from_iter(vec![ + Item::Wheat, + Item::Sugar, + Item::HayBlock, + Item::Apple, + Item::GoldenCarrot, + Item::GoldenApple, + Item::EnchantedGoldenApple, ]) }); pub static TERRACOTTA: Lazy<HashSet<Item>> = Lazy::new(|| { @@ -440,97 +1173,6 @@ pub static TERRACOTTA: Lazy<HashSet<Item>> = Lazy::new(|| { Item::BlackTerracotta, ]) }); -pub static COALS: Lazy<HashSet<Item>> = - Lazy::new(|| HashSet::from_iter(vec![Item::Coal, Item::Charcoal])); -pub static BIRCH_LOGS: Lazy<HashSet<Item>> = Lazy::new(|| { - HashSet::from_iter(vec![ - Item::BirchLog, - Item::BirchWood, - Item::StrippedBirchLog, - Item::StrippedBirchWood, - ]) -}); -pub static PIGLIN_REPELLENTS: Lazy<HashSet<Item>> = - Lazy::new(|| HashSet::from_iter(vec![Item::SoulTorch, Item::SoulLantern, Item::SoulCampfire])); -pub static CREEPER_DROP_MUSIC_DISCS: Lazy<HashSet<Item>> = 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, - ]) -}); -pub static SLABS: Lazy<HashSet<Item>> = 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, - ]) -}); -pub static ANVIL: Lazy<HashSet<Item>> = - Lazy::new(|| HashSet::from_iter(vec![Item::Anvil, Item::ChippedAnvil, Item::DamagedAnvil])); pub static STAIRS: Lazy<HashSet<Item>> = Lazy::new(|| { HashSet::from_iter(vec![ Item::BambooMosaicStairs, @@ -588,219 +1230,25 @@ pub static STAIRS: Lazy<HashSet<Item>> = Lazy::new(|| { Item::CherryStairs, ]) }); -pub static STONE_CRAFTING_MATERIALS: Lazy<HashSet<Item>> = Lazy::new(|| { - HashSet::from_iter(vec![ - Item::Cobblestone, - Item::Blackstone, - Item::CobbledDeepslate, - ]) -}); -pub static FISHES: Lazy<HashSet<Item>> = Lazy::new(|| { - HashSet::from_iter(vec![ - Item::Cod, - Item::CookedCod, - Item::Salmon, - Item::CookedSalmon, - Item::Pufferfish, - Item::TropicalFish, - ]) -}); -pub static SOUL_FIRE_BASE_BLOCKS: Lazy<HashSet<Item>> = - Lazy::new(|| HashSet::from_iter(vec![Item::SoulSand, Item::SoulSoil])); -pub static AXOLOTL_TEMPT_ITEMS: Lazy<HashSet<Item>> = - Lazy::new(|| HashSet::from_iter(vec![Item::TropicalFishBucket])); -pub static WOOL_CARPETS: Lazy<HashSet<Item>> = 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 VILLAGER_PLANTABLE_SEEDS: Lazy<HashSet<Item>> = Lazy::new(|| { - HashSet::from_iter(vec![ - Item::WheatSeeds, - Item::Potato, - Item::Carrot, - Item::BeetrootSeeds, - Item::TorchflowerSeeds, - Item::PitcherPod, - ]) -}); -pub static WOODEN_DOORS: Lazy<HashSet<Item>> = 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 COAL_ORES: Lazy<HashSet<Item>> = - Lazy::new(|| HashSet::from_iter(vec![Item::CoalOre, Item::DeepslateCoalOre])); -pub static TOOLS: Lazy<HashSet<Item>> = 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, - ]) -}); -pub static BUTTONS: Lazy<HashSet<Item>> = 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 GOLD_ORES: Lazy<HashSet<Item>> = Lazy::new(|| { - HashSet::from_iter(vec![ - Item::GoldOre, - Item::NetherGoldOre, - Item::DeepslateGoldOre, - ]) -}); -pub static WART_BLOCKS: Lazy<HashSet<Item>> = - Lazy::new(|| HashSet::from_iter(vec![Item::NetherWartBlock, Item::WarpedWartBlock])); -pub static NON_FLAMMABLE_WOOD: Lazy<HashSet<Item>> = 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 PICKAXES: Lazy<HashSet<Item>> = Lazy::new(|| { - HashSet::from_iter(vec![ - Item::DiamondPickaxe, - Item::StonePickaxe, - Item::GoldenPickaxe, - Item::NetheritePickaxe, - Item::WoodenPickaxe, - Item::IronPickaxe, - ]) -}); -pub static HOES: Lazy<HashSet<Item>> = Lazy::new(|| { +pub static REDSTONE_ORES: Lazy<HashSet<Item>> = + Lazy::new(|| HashSet::from_iter(vec![Item::RedstoneOre, Item::DeepslateRedstoneOre])); +pub static SPRUCE_LOGS: Lazy<HashSet<Item>> = Lazy::new(|| { HashSet::from_iter(vec![ - Item::DiamondHoe, - Item::StoneHoe, - Item::GoldenHoe, - Item::NetheriteHoe, - Item::WoodenHoe, - Item::IronHoe, + Item::SpruceLog, + Item::SpruceWood, + Item::StrippedSpruceLog, + Item::StrippedSpruceWood, ]) }); -pub static FENCES: Lazy<HashSet<Item>> = Lazy::new(|| { +pub static HORSE_TEMPT_ITEMS: Lazy<HashSet<Item>> = Lazy::new(|| { HashSet::from_iter(vec![ - Item::NetherBrickFence, - Item::OakFence, - Item::AcaciaFence, - Item::DarkOakFence, - Item::SpruceFence, - Item::BirchFence, - Item::JungleFence, - Item::CrimsonFence, - Item::WarpedFence, - Item::MangroveFence, - Item::BambooFence, - Item::CherryFence, + Item::GoldenCarrot, + Item::GoldenApple, + Item::EnchantedGoldenApple, ]) }); -pub static COMPLETES_FIND_TREE_TUTORIAL: Lazy<HashSet<Item>> = Lazy::new(|| { +pub static LOGS: Lazy<HashSet<Item>> = 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::NetherWartBlock, - Item::WarpedWartBlock, Item::CrimsonStem, Item::StrippedCrimsonStem, Item::CrimsonHyphae, @@ -843,39 +1291,30 @@ pub static COMPLETES_FIND_TREE_TUTORIAL: Lazy<HashSet<Item>> = Lazy::new(|| { Item::StrippedCherryWood, ]) }); -pub static SMALL_FLOWERS: Lazy<HashSet<Item>> = 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, - ]) -}); -pub static PIGLIN_FOOD: Lazy<HashSet<Item>> = - Lazy::new(|| HashSet::from_iter(vec![Item::Porkchop, Item::CookedPorkchop])); -pub static FENCE_GATES: Lazy<HashSet<Item>> = Lazy::new(|| { +pub static WALLS: Lazy<HashSet<Item>> = 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::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 OAK_LOGS: Lazy<HashSet<Item>> = Lazy::new(|| { @@ -886,75 +1325,71 @@ pub static OAK_LOGS: Lazy<HashSet<Item>> = Lazy::new(|| { Item::StrippedOakWood, ]) }); -pub static TRIM_MATERIALS: Lazy<HashSet<Item>> = Lazy::new(|| { - HashSet::from_iter(vec![ - Item::IronIngot, - Item::CopperIngot, - Item::GoldIngot, - Item::LapisLazuli, - Item::Emerald, - Item::Diamond, - Item::NetheriteIngot, - Item::Redstone, - Item::Quartz, - Item::AmethystShard, - ]) -}); -pub static STONE_BRICKS: Lazy<HashSet<Item>> = Lazy::new(|| { +pub static TALL_FLOWERS: Lazy<HashSet<Item>> = Lazy::new(|| { HashSet::from_iter(vec![ - Item::StoneBricks, - Item::MossyStoneBricks, - Item::CrackedStoneBricks, - Item::ChiseledStoneBricks, + Item::Sunflower, + Item::Lilac, + Item::Peony, + Item::RoseBush, + Item::PitcherPlant, ]) }); -pub static STONE_TOOL_MATERIALS: Lazy<HashSet<Item>> = Lazy::new(|| { +pub static DARK_OAK_LOGS: Lazy<HashSet<Item>> = Lazy::new(|| { HashSet::from_iter(vec![ - Item::Cobblestone, - Item::Blackstone, - Item::CobbledDeepslate, + Item::DarkOakLog, + Item::DarkOakWood, + Item::StrippedDarkOakLog, + Item::StrippedDarkOakWood, ]) }); -pub static LAPIS_ORES: Lazy<HashSet<Item>> = - Lazy::new(|| HashSet::from_iter(vec![Item::LapisOre, Item::DeepslateLapisOre])); -pub static SIGNS: Lazy<HashSet<Item>> = Lazy::new(|| { +pub static HANGING_SIGNS: Lazy<HashSet<Item>> = 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, + Item::OakHangingSign, + Item::SpruceHangingSign, + Item::BirchHangingSign, + Item::AcaciaHangingSign, + Item::CherryHangingSign, + Item::JungleHangingSign, + Item::DarkOakHangingSign, + Item::CrimsonHangingSign, + Item::WarpedHangingSign, + Item::MangroveHangingSign, + Item::BambooHangingSign, ]) }); -pub static DIRT: Lazy<HashSet<Item>> = Lazy::new(|| { +pub static CANDLES: Lazy<HashSet<Item>> = 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::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 LOGS: Lazy<HashSet<Item>> = Lazy::new(|| { +pub static BAMBOO_BLOCKS: Lazy<HashSet<Item>> = + Lazy::new(|| HashSet::from_iter(vec![Item::BambooBlock, Item::StrippedBambooBlock])); +pub static CRIMSON_STEMS: Lazy<HashSet<Item>> = Lazy::new(|| { HashSet::from_iter(vec![ Item::CrimsonStem, Item::StrippedCrimsonStem, Item::CrimsonHyphae, Item::StrippedCrimsonHyphae, - Item::WarpedStem, - Item::StrippedWarpedStem, - Item::WarpedHyphae, - Item::StrippedWarpedHyphae, + ]) +}); +pub static LOGS_THAT_BURN: Lazy<HashSet<Item>> = Lazy::new(|| { + HashSet::from_iter(vec![ Item::DarkOakLog, Item::DarkOakWood, Item::StrippedDarkOakLog, @@ -989,97 +1424,68 @@ pub static LOGS: Lazy<HashSet<Item>> = Lazy::new(|| { Item::StrippedCherryWood, ]) }); -pub static AXES: Lazy<HashSet<Item>> = Lazy::new(|| { - HashSet::from_iter(vec![ - Item::DiamondAxe, - Item::StoneAxe, - Item::GoldenAxe, - Item::NetheriteAxe, - Item::WoodenAxe, - Item::IronAxe, - ]) -}); -pub static CHEST_BOATS: Lazy<HashSet<Item>> = 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 BOOKSHELF_BOOKS: Lazy<HashSet<Item>> = Lazy::new(|| { +pub static SAPLINGS: Lazy<HashSet<Item>> = Lazy::new(|| { HashSet::from_iter(vec![ - Item::Book, - Item::WrittenBook, - Item::EnchantedBook, - Item::WritableBook, - Item::KnowledgeBook, + Item::OakSapling, + Item::SpruceSapling, + Item::BirchSapling, + Item::JungleSapling, + Item::AcaciaSapling, + Item::DarkOakSapling, + Item::Azalea, + Item::FloweringAzalea, + Item::MangrovePropagule, + Item::CherrySapling, ]) }); -pub static ARROWS: Lazy<HashSet<Item>> = - Lazy::new(|| HashSet::from_iter(vec![Item::Arrow, Item::TippedArrow, Item::SpectralArrow])); -pub static PIGLIN_LOVED: Lazy<HashSet<Item>> = Lazy::new(|| { +pub static COPPER_ORES: Lazy<HashSet<Item>> = + Lazy::new(|| HashSet::from_iter(vec![Item::CopperOre, Item::DeepslateCopperOre])); +pub static BIRCH_LOGS: Lazy<HashSet<Item>> = 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::BirchLog, + Item::BirchWood, + Item::StrippedBirchLog, + Item::StrippedBirchWood, ]) }); -pub static WOODEN_BUTTONS: Lazy<HashSet<Item>> = Lazy::new(|| { +pub static BEDS: Lazy<HashSet<Item>> = 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::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 SMELTS_TO_GLASS: Lazy<HashSet<Item>> = - Lazy::new(|| HashSet::from_iter(vec![Item::Sand, Item::RedSand])); -pub static JUNGLE_LOGS: Lazy<HashSet<Item>> = Lazy::new(|| { +pub static DOORS: Lazy<HashSet<Item>> = Lazy::new(|| { HashSet::from_iter(vec![ - Item::JungleLog, - Item::JungleWood, - Item::StrippedJungleLog, - Item::StrippedJungleWood, + Item::IronDoor, + Item::OakDoor, + Item::SpruceDoor, + Item::BirchDoor, + Item::JungleDoor, + Item::AcaciaDoor, + Item::DarkOakDoor, + Item::CrimsonDoor, + Item::WarpedDoor, + Item::MangroveDoor, + Item::BambooDoor, + Item::CherryDoor, ]) }); -pub static TRAPDOORS: Lazy<HashSet<Item>> = Lazy::new(|| { +pub static WOODEN_TRAPDOORS: Lazy<HashSet<Item>> = Lazy::new(|| { HashSet::from_iter(vec![ - Item::IronTrapdoor, Item::AcaciaTrapdoor, Item::BirchTrapdoor, Item::DarkOakTrapdoor, @@ -1093,289 +1499,411 @@ pub static TRAPDOORS: Lazy<HashSet<Item>> = Lazy::new(|| { Item::CherryTrapdoor, ]) }); -pub static IGNORED_BY_PIGLIN_BABIES: Lazy<HashSet<Item>> = - Lazy::new(|| HashSet::from_iter(vec![Item::Leather])); -pub static WARPED_STEMS: Lazy<HashSet<Item>> = Lazy::new(|| { +pub static SMALL_FLOWERS: Lazy<HashSet<Item>> = Lazy::new(|| { HashSet::from_iter(vec![ - Item::WarpedStem, - Item::StrippedWarpedStem, - Item::WarpedHyphae, - Item::StrippedWarpedHyphae, + 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 BEACON_PAYMENT_ITEMS: Lazy<HashSet<Item>> = Lazy::new(|| { +pub static SAND: Lazy<HashSet<Item>> = Lazy::new(|| { HashSet::from_iter(vec![ - Item::NetheriteIngot, - Item::Emerald, - Item::Diamond, - Item::GoldIngot, - Item::IronIngot, + Item::Sand, + Item::RedSand, + Item::SuspiciousSand, + Item::SuspiciousSand, ]) }); -pub static IRON_ORES: Lazy<HashSet<Item>> = - Lazy::new(|| HashSet::from_iter(vec![Item::IronOre, Item::DeepslateIronOre])); -pub static BOATS: Lazy<HashSet<Item>> = Lazy::new(|| { +pub static WOODEN_STAIRS: Lazy<HashSet<Item>> = 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, + Item::OakStairs, + Item::SpruceStairs, + Item::BirchStairs, + Item::JungleStairs, + Item::AcaciaStairs, + Item::DarkOakStairs, + Item::CrimsonStairs, + Item::WarpedStairs, + Item::MangroveStairs, + Item::BambooStairs, + Item::CherryStairs, ]) }); -pub static RAILS: Lazy<HashSet<Item>> = Lazy::new(|| { +pub static WOODEN_SLABS: Lazy<HashSet<Item>> = Lazy::new(|| { HashSet::from_iter(vec![ - Item::Rail, - Item::PoweredRail, - Item::DetectorRail, - Item::ActivatorRail, + Item::OakSlab, + Item::SpruceSlab, + Item::BirchSlab, + Item::JungleSlab, + Item::AcaciaSlab, + Item::DarkOakSlab, + Item::CrimsonSlab, + Item::WarpedSlab, + Item::MangroveSlab, + Item::BambooSlab, + Item::CherrySlab, ]) }); -pub static TRIMMABLE_ARMOR: Lazy<HashSet<Item>> = Lazy::new(|| { +pub static DIRT: Lazy<HashSet<Item>> = Lazy::new(|| { HashSet::from_iter(vec![ - Item::NetheriteHelmet, - Item::NetheriteChestplate, - Item::NetheriteLeggings, - Item::NetheriteBoots, - Item::DiamondHelmet, - Item::DiamondChestplate, - Item::DiamondLeggings, - Item::DiamondBoots, - Item::GoldenHelmet, - Item::GoldenChestplate, - Item::GoldenLeggings, - Item::GoldenBoots, - Item::IronHelmet, - Item::IronChestplate, - Item::IronLeggings, - Item::IronBoots, - Item::ChainmailHelmet, - Item::ChainmailChestplate, - Item::ChainmailLeggings, - Item::ChainmailBoots, - Item::LeatherHelmet, - Item::LeatherChestplate, - Item::LeatherLeggings, - Item::LeatherBoots, - Item::TurtleHelmet, + Item::Dirt, + Item::GrassBlock, + Item::Podzol, + Item::CoarseDirt, + Item::Mycelium, + Item::RootedDirt, + Item::MossBlock, + Item::Mud, + Item::MuddyMangroveRoots, ]) }); -pub static PLANKS: Lazy<HashSet<Item>> = Lazy::new(|| { +pub static SMELTS_TO_GLASS: Lazy<HashSet<Item>> = + Lazy::new(|| HashSet::from_iter(vec![Item::Sand, Item::RedSand])); +pub static STONE_BRICKS: Lazy<HashSet<Item>> = 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::StoneBricks, + Item::MossyStoneBricks, + Item::CrackedStoneBricks, + Item::ChiseledStoneBricks, ]) }); -pub static FOX_FOOD: Lazy<HashSet<Item>> = - Lazy::new(|| HashSet::from_iter(vec![Item::SweetBerries, Item::GlowBerries])); -pub static BAMBOO_BLOCKS: Lazy<HashSet<Item>> = - Lazy::new(|| HashSet::from_iter(vec![Item::BambooBlock, Item::StrippedBambooBlock])); -pub static SNIFFER_FOOD: Lazy<HashSet<Item>> = - Lazy::new(|| HashSet::from_iter(vec![Item::TorchflowerSeeds])); -pub static CANDLES: Lazy<HashSet<Item>> = Lazy::new(|| { +pub static ANVIL: Lazy<HashSet<Item>> = + Lazy::new(|| HashSet::from_iter(vec![Item::Anvil, Item::ChippedAnvil, Item::DamagedAnvil])); +pub static SOUL_FIRE_BASE_BLOCKS: Lazy<HashSet<Item>> = + Lazy::new(|| HashSet::from_iter(vec![Item::SoulSand, Item::SoulSoil])); +pub static ACACIA_LOGS: Lazy<HashSet<Item>> = 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::AcaciaLog, + Item::AcaciaWood, + Item::StrippedAcaciaLog, + Item::StrippedAcaciaWood, ]) }); -pub static SPRUCE_LOGS: Lazy<HashSet<Item>> = Lazy::new(|| { +pub static LAPIS_ORES: Lazy<HashSet<Item>> = + Lazy::new(|| HashSet::from_iter(vec![Item::LapisOre, Item::DeepslateLapisOre])); +pub static MANGROVE_LOGS: Lazy<HashSet<Item>> = Lazy::new(|| { HashSet::from_iter(vec![ - Item::SpruceLog, - Item::SpruceWood, - Item::StrippedSpruceLog, - Item::StrippedSpruceWood, + Item::MangroveLog, + Item::MangroveWood, + Item::StrippedMangroveLog, + Item::StrippedMangroveWood, ]) }); -pub static SWORDS: Lazy<HashSet<Item>> = Lazy::new(|| { +pub static DAMPENS_VIBRATIONS: Lazy<HashSet<Item>> = Lazy::new(|| { HashSet::from_iter(vec![ - Item::DiamondSword, - Item::StoneSword, - Item::GoldenSword, - Item::NetheriteSword, - Item::WoodenSword, - Item::IronSword, + 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 LECTERN_BOOKS: Lazy<HashSet<Item>> = - Lazy::new(|| HashSet::from_iter(vec![Item::WrittenBook, Item::WritableBook])); -pub static DECORATED_POT_SHERDS: Lazy<HashSet<Item>> = Lazy::new(|| { +pub static JUNGLE_LOGS: Lazy<HashSet<Item>> = 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::JungleLog, + Item::JungleWood, + Item::StrippedJungleLog, + Item::StrippedJungleWood, ]) }); -pub static SAPLINGS: Lazy<HashSet<Item>> = Lazy::new(|| { +pub static WOODEN_PRESSURE_PLATES: Lazy<HashSet<Item>> = 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::OakPressurePlate, + Item::SprucePressurePlate, + Item::BirchPressurePlate, + Item::JunglePressurePlate, + Item::AcaciaPressurePlate, + Item::DarkOakPressurePlate, + Item::CrimsonPressurePlate, + Item::WarpedPressurePlate, + Item::MangrovePressurePlate, + Item::BambooPressurePlate, + Item::CherryPressurePlate, ]) }); -pub static LEAVES: Lazy<HashSet<Item>> = Lazy::new(|| { +pub static WOOL_CARPETS: Lazy<HashSet<Item>> = 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::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 STONE_BUTTONS: Lazy<HashSet<Item>> = - Lazy::new(|| HashSet::from_iter(vec![Item::StoneButton, Item::PolishedBlackstoneButton])); -pub static REDSTONE_ORES: Lazy<HashSet<Item>> = - Lazy::new(|| HashSet::from_iter(vec![Item::RedstoneOre, Item::DeepslateRedstoneOre])); -pub static CRIMSON_STEMS: Lazy<HashSet<Item>> = Lazy::new(|| { +pub static RAILS: Lazy<HashSet<Item>> = Lazy::new(|| { HashSet::from_iter(vec![ - Item::CrimsonStem, - Item::StrippedCrimsonStem, - Item::CrimsonHyphae, - Item::StrippedCrimsonHyphae, + Item::Rail, + Item::PoweredRail, + Item::DetectorRail, + Item::ActivatorRail, ]) }); -pub static HANGING_SIGNS: Lazy<HashSet<Item>> = Lazy::new(|| { +pub static COAL_ORES: Lazy<HashSet<Item>> = + Lazy::new(|| HashSet::from_iter(vec![Item::CoalOre, Item::DeepslateCoalOre])); +pub static WOOL: Lazy<HashSet<Item>> = 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::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 WALLS: Lazy<HashSet<Item>> = Lazy::new(|| { +pub static WART_BLOCKS: Lazy<HashSet<Item>> = + Lazy::new(|| HashSet::from_iter(vec![Item::NetherWartBlock, Item::WarpedWartBlock])); +pub static WOODEN_BUTTONS: Lazy<HashSet<Item>> = 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::OakButton, + Item::SpruceButton, + Item::BirchButton, + Item::JungleButton, + Item::AcaciaButton, + Item::DarkOakButton, + Item::CrimsonButton, + Item::WarpedButton, + Item::MangroveButton, + Item::BambooButton, + Item::CherryButton, ]) }); -pub static CLUSTER_MAX_HARVESTABLES: Lazy<HashSet<Item>> = Lazy::new(|| { +pub static WOODEN_FENCES: Lazy<HashSet<Item>> = Lazy::new(|| { HashSet::from_iter(vec![ - Item::DiamondPickaxe, - Item::GoldenPickaxe, - Item::IronPickaxe, - Item::NetheritePickaxe, - Item::StonePickaxe, - Item::WoodenPickaxe, + Item::OakFence, + Item::AcaciaFence, + Item::DarkOakFence, + Item::SpruceFence, + Item::BirchFence, + Item::JungleFence, + Item::CrimsonFence, + Item::WarpedFence, + Item::MangroveFence, + Item::BambooFence, + Item::CherryFence, ]) }); -pub static MUSIC_DISCS: Lazy<HashSet<Item>> = Lazy::new(|| { +pub static EMERALD_ORES: Lazy<HashSet<Item>> = + Lazy::new(|| HashSet::from_iter(vec![Item::EmeraldOre, Item::DeepslateEmeraldOre])); +pub static WOODEN_DOORS: Lazy<HashSet<Item>> = Lazy::new(|| { HashSet::from_iter(vec![ - Item::MusicDiscPigstep, - Item::MusicDiscOtherside, - Item::MusicDisc5, - Item::MusicDiscRelic, - 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::OakDoor, + Item::SpruceDoor, + Item::BirchDoor, + Item::JungleDoor, + Item::AcaciaDoor, + Item::DarkOakDoor, + Item::CrimsonDoor, + Item::WarpedDoor, + Item::MangroveDoor, + Item::BambooDoor, + Item::CherryDoor, ]) }); -pub static FREEZE_IMMUNE_WEARABLES: Lazy<HashSet<Item>> = Lazy::new(|| { +pub static WARPED_STEMS: Lazy<HashSet<Item>> = Lazy::new(|| { HashSet::from_iter(vec![ - Item::LeatherBoots, - Item::LeatherLeggings, - Item::LeatherChestplate, - Item::LeatherHelmet, - Item::LeatherHorseArmor, + Item::WarpedStem, + Item::StrippedWarpedStem, + Item::WarpedHyphae, + Item::StrippedWarpedHyphae, + ]) +}); +pub static SIGNS: Lazy<HashSet<Item>> = 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 SLABS: Lazy<HashSet<Item>> = 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, + ]) +}); +pub static CHICKEN_FOOD: Lazy<HashSet<Item>> = Lazy::new(|| { + HashSet::from_iter(vec![ + Item::WheatSeeds, + Item::MelonSeeds, + Item::PumpkinSeeds, + Item::BeetrootSeeds, + Item::TorchflowerSeeds, + Item::PitcherPod, + ]) +}); +pub static BEE_FOOD: Lazy<HashSet<Item>> = Lazy::new(|| { + HashSet::from_iter(vec![ + Item::FloweringAzaleaLeaves, + Item::FloweringAzalea, + Item::MangrovePropagule, + Item::CherryLeaves, + Item::PinkPetals, + Item::ChorusFlower, + Item::SporeBlossom, + Item::Dandelion, + Item::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 GOLD_ORES: Lazy<HashSet<Item>> = Lazy::new(|| { + HashSet::from_iter(vec![ + Item::GoldOre, + Item::NetherGoldOre, + Item::DeepslateGoldOre, + ]) +}); +pub static FROG_FOOD: Lazy<HashSet<Item>> = Lazy::new(|| HashSet::from_iter(vec![Item::SlimeBall])); +pub static HOGLIN_FOOD: Lazy<HashSet<Item>> = + Lazy::new(|| HashSet::from_iter(vec![Item::CrimsonFungus])); +pub static FENCE_GATES: Lazy<HashSet<Item>> = 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, ]) }); |
